حاويات تطبيق ASP.NET وترحيلها إلى Azure App Service

في هذه المقالة، ستتعرف على كيفية تعبئة تطبيقات ASP.NET في حاويات وترحيلها إلى (Azure App Service) باستخدام أداة Azure Migrate App Containerization. لا تتطلب عملية التعبئة في حاويات الوصول إلى قاعدة التعليمات البرمجية لديك وتوفر طريقة سهلة لتجميع التطبيقات الحالية في حاويات. تعمل الأداة باستخدام حالة التشغيل للتطبيقات على خادم لتحديد مكونات التطبيق. ثم يساعدك على ترتيبهم في صورة حاوية. يمكنك بعد ذلك نشر التطبيق الحاوي على Azure App Service.

Azure Migrate: تدعم أداة حاوية التطبيقات حاليًّا:

تساعدك أداة App Containerization على:

  • قم باكتشاف مكونات التطبيق. تتصل الأداة عن بُعد بخوادم التطبيقات التي تشغل تطبيق ASP.NET وتكتشف مكونات التطبيق. تقوم بإنشاء Dockerfile الذي يمكن استخدامه لإنشاء صورة حاوية للتطبيق.
  • بناء صورة الحاوية. يُمكنك فحص Dockerfile وتخصيصها وفقًا لمتطلبات تطبيقك واستخدام ذلك لإنشاء صورة حاوية لحاوية التطبيق. يتم ضغط صورة حاوية التطبيق فيAzure Container Registry التي تقوم بتحديدها.
  • قم بالنشر إلى Azure App Service. تقوم الأداة بعد ذلك بإنشاء ملفات النشر اللازمة لنشر التطبيق الذي تم وضعه في حاوية إلى Azure App Service.

إشعار

تساعدك أداة The Azure Migrate App Containerization tool على اكتشاف أنواع تطبيقات محددة (ASP.NET وتطبيقات الويب Java على Apache Tomcat) ومكوناتها على خادم التطبيقات. لاكتشاف الخوادم وحصر التطبيقات والأدوار والسمات التي تعمل على الآلات الموجودة، استخدم Azure Migrate Discovery وأداة تقييم.

لن تستفيد جميع التطبيقات من التحول المستقيم إلى الحاويات دون إعادة تجهيز كبيرة. ولكن بعض الفوائد المترتبة على نقل التطبيقات القائمة إلى حاويات من دون إعادة الكتابة تشمل:

  • تحسين استخدام البنية التحتية. باستخدام حاويات يمكن لتطبيقات متعددة مشاركة الموارد واستضافتها على نفس البنية التحتية. يُمكن أن يساعد ذلك على تعزيز البنية التحتية وتحسين استخدامها.
  • الإدارة المبسطة من خلال استضافة تطبيقاتك على نظام أساسي مُدار حديث مثل AKS وApp Service، يمكنك تبسيط ممارسات الإدارة في شركتك. يمكنك تحقيق ذلك التبسيط عن طريق إنهاء أو تقليل عمليات صيانة وإدارة البنية التحتية التي كنت تقوم بها تقليديًّا باستخدام البنية التحتية المملوكة.
  • إمكانية نقل التطبيق. مع زيادة الاعتماد والتوحيد القياسي لتنسيقات وأنظمة مواصفات الحاويات، لم تعد قابلية التطبيقات للنقل تمثل مصدرًا للقلق.
  • قم باعتماد الإدارة الحديثة باستخدام DevOps. باستخدام حاويات يساعدك على تبني الممارسات الحديثة وتوحيدها للإدارة والأمان والانتقال إلى DevOps.

ستتعلم في هذه البرنامج التعليمي كيفية:

  • إنشاء حساب Azure.
  • قم بتثبيت أداة Azure Migrate: App Containerization.
  • اكتشف تطبيق ASP.NET الخاص بك.
  • بناء صورة الحاوية.
  • نشر التطبيق المعبأ في حاوية على خدمة التطبيقات.

إشعار

توضح البرامج التعليمية أبسط مسار لتوزيع سيناريو بحيث يمكنك إعداد إثبات المبدأ بسرعة. تستخدم البرامج التعليمية الخيارات الافتراضية عندما يكون ذلك ممكنًا، ولا تعرض جميع الإعدادات والمسارات.

المتطلبات الأساسية

قبل البدء في هذا البرنامج التعليمي، يجب أن يكون لديك:

المتطلب التفاصيل
قم بتحديد الجهاز الذي يستخدم لتثبيت الأداة تحتاج إلى جهاز Windows لتثبيت وتشغيل أداة Azure Migrate App Containerization tool. يُمكن أن يكون جهاز Windows بمثابة خادم (Windows Server 2016 أو أحدث) أو نظام تشغيل العميل (Windows 10). (يمكن تشغيل الأداة على سطح المكتب.)

يجب أن يكون لجهاز Windows الذي يقوم بتشغيل الأداة اتصال بالشبكة بالخوادم أو الأجهزة الظاهرية التي تستضيف تطبيقات ASP.NET ليتم تعبئتها في حاويات.

تأكد من توفر مساحة 6 جيجا بايت على جهاز Windows الذي يقوم بتشغيل أداة Azure Migrate App Containerization. هذه المساحة لتخزين البيانات الاصطناعية للتطبيق.

يجب أن يتمتع جهاز Windows بإمكانية الوصول إلى الإنترنت، مباشرةً أو عبر وكيل.

إذا لم تكن أداة نشر ويب Microsoft مثبتة مسبقًا على الجهاز الذي يقوم بتشغيل أداة "حاويات التطبيقات" وخادم التطبيق، قم بتثبيتها. يمكنك تنزيل الأداة .
خوادم التطبيقات تمكين الاتصال عن بُعد لـ PowerShell على خوادم التطبيق: سجّل الدخول إلى خادم التطبيق واتبع هذه الإرشادات لتشغيل الاتصال عن بُعد في PowerShell.

تأكد من تثبيت PowerShell 5.1 على خادم التطبيق. اتبع الإرشادات الواردة في تثبيت وتكوين WMF 5.1 على خادم التطبيق.

إذا لم تكن أداة نشر ويب Microsoft مثبتة مسبقًا على الجهاز الذي يقوم بتشغيل أداة "حاويات التطبيقات" وخادم التطبيق، قم بتثبيتها. يمكنك تنزيل الأداة .
ASP.NET application تدعم الأداة حاليا:
  • ASP.NET التطبيقات التي تستخدم .NET Framework 3.5 أو أحدث.
  • خوادم التطبيقات التي تقوم بتشغيل Windows Server 2012 R2 أو أحدث. (يجب أن تقوم خوادم التطبيقات بتشغيل PowerShell 5.1.)
  • - التطبيقات التي تعمل على خدمات معلومات الإنترنت (IIS) 7.5 أو أحدث.


لا تدعم الأداة حاليا:
  • التطبيقات التي تتطلب مصادقة Windows. (AKS لا يدعم حاليا gMSA.)
  • التطبيقات التي تعتمد على خدمات Windows الأخرى المستضافة خارج خدمات معلومات الإنترنت.

قم بإعداد حساب مستخدم Azure

إذا لم يكن لديك اشتراك Azure، فأنشئ حسابًا مجانيًا قبل أن تبدأ.

بعد إعداد اشتراكك، ستحتاج إلى حساب مستخدم Azure مع:

  • أذونات المالك على اشتراك Azure.
  • أذونات تسجيل تطبيقات Microsoft Entra.

إذا أنشأت حساب Azure مجانيًا، فأنت مالك اشتراكك. إذا لم تكن مالك الاشتراك، فاعمل مع المالك لتعيين الأذونات على النحو التالي:

  1. في مدخل Microsoft Azure، ابحث عن "الاشتراكات". ضمن الخدمات، حدد الاشتراكات:

    لقطة شاشة تعرض مربع البحث للبحث عن اشتراك Azure.

  2. في صفحةSubscriptions، حدد الاشتراك الذي تريد إنشاء مشروعAzure Migrate فيه.

  3. في الاشتراك، حدد "Access control (IAM)"في اللوحة اليسرى

  4. في علامة تبويب"Check access"، ابحث عن حساب المستخدم ذي الصلة.

  5. فيAdd role assignment، حددAdd:

    تُظهر لقطة الشاشة البحث عن حساب مستخدم للتحقق من الوصول وتعيين دور.

  6. في صفحة"Add role assignment"، حدد دور المالك وحدد الحساب (azmigrateuser، في المثال لدينا). ثم حدد حفظ.

    لقطة شاشة تعرض صفحة إضافة تعيين دور.

    يحتاج حساب Azure أيضا إلى أذونات لتسجيل تطبيقات Microsoft Entra.

  7. في مدخل Microsoft Azure، انتقل إلى Microsoft Entra ID>Users>User Settings.

  8. في إعدادات المستخدم، تحقق من أن مستخدمي Microsoft Entra يمكنهم تسجيل التطبيقات. (يتم تعيين هذا الخيار إلى نعم بشكل افتراضي.)

    لقطة شاشة تظهر صفحة الإعدادات الخاصة بالمستخدم.

    هام

    توصي Microsoft باستخدام الأدوار بأقل عدد من الأذونات. يساعد هذا في تحسين الأمان لمؤسستك. المسؤول العام هو دور متميز للغاية يجب أن يقتصر على سيناريوهات الطوارئ عندما لا يمكنك استخدام دور موجود.

  9. في حال تعيين خيارتسجيلات التطبيقات إلى لا، اطلب من المسؤول المستأجر/ المسؤول العام تعيين الأذون المطلوبة. بدلا من ذلك، يمكن للمستأجر/المسؤول العام تعيين دور مطور التطبيق إلى حساب للسماح بتسجيل تطبيقات Microsoft Entra. لمزيد من المعلومات، راجع تعيين أدوار للمستخدمين.

قم بتثبيت وتحميل Azure Migrate: أداة حاوية التطبيقات App Containerization

  1. نَزِّل أداة Azure Migrate: وهي أداة تثبيت أداة إعداد حاوية التطبيقات App Containerization على الجهاز الذي يعمل بنظام Windows.

  2. قم بفتح PowerShell في وضع المسؤول وغَيِّر دليل PowerShell إلى المجلد الذي يحتوي على المثبت.

  3. شَغِّل برنامج التثبيت النصي باستخدام هذا الأمر:

    .\AppContainerizationInstaller.ps1
    

إشعار

بالنسبة إلى Windows Server 2022، قم بتحرير السطر 135 والإزالة PowerShell-ISE من قائمة الميزات، حيث لم يعد مدعوما.

قم بفتح أداة App Containerization

  1. افتَح متصفحًا على أي جهاز يمكنه الاتصال بجهاز يعمل بنظام التشغيل Windows لتشغيل أداة App Containerization. انتقل إلى عنوان URL الأداة: https:// اسم الجهاز أو عنوانIP: 44369.

    بالتناوب، يمكنك فتح التطبيق من سطح المكتب الخاص بك عن طريق استخدام اختصار التطبيق.

  2. إذا رأيت تحذيراً يقول: إن اتصالك ليس خاصًّا، انقر فوق Advancedوانتقل إلى الموقع. يظهر هذا التحذير عندما تستخدم واجهة الويب شهادة TLS / SSL موقعة ذاتيًّا.

  3. في شاشة تسجيل الدخول، استخدم حساب المسؤول المحلي لتسجيل الدخول.

  4. حدد تطبيقات الويب ASP.NET كنوع التطبيق الذي تريد وضعه في حاويات.

  5. في قائمة Target Azure service حدد خدمة Containers on Azure App:

    لقطة شاشة تعرض نوع التطبيق والقوائم المستهدفة.

إكمال متطلبات الأداة

  1. قبول شروط الترخيص وقراءة معلومات الجهة الخارجية.
  2. في تطبيق ويب الأداة إعداد المتطلبات الأساسية، أكمل الخطوات التالية:
    • قابلية التوصيل. تتحقق الأداة مما إذا كان الجهاز الذي يعمل بنظام Windows متصلًا بالإنترنت. إذا كان الجهاز يستخدم وكيلاً:

      1. اختر إعداد الوكيل لتحديد عنوان الوكيل (في شكل عنوان IP أو FQDN) ومنفذ الاستماع.

      2. حدد بيانات الاعتماد إذا احتاج الوكيل إلى مصادقة.

      3. إذا أضفت تفاصيل الوكيل أو عطلت الوكيل أو أجريت المصادقة، اختر حفظ لبدء التحقق من الاتصال مرة أخرى.

      يكون وكيل HTTP فقط مدعومًا.

    • قم بتثبيت التحديثات. تقوم الأداة تلقائيًّا بالتحقق من آخر التحديثات وتثبيتها. يمكنك أيضًا تثبيت أحدث إصدار من الأداة يدويًّا.

    • تثبيت أداة نشر ويب Microsoft. ستتحقق الأداة من تثبيت أداة Microsoft Web Deploymen على جهاز يعمل بنظام التشغيل Windows يقوم بتشغيل أداة Azure Migrate: App Containerization.

    • تمكين الاتصال عن بعد لـPowerShell. ستطالبك الأداة بالتأكد من تمكين الاتصال عن بُعد في PowerShell على خوادم التطبيقات التي تشغل تطبيقات ASP.NET التي تريد وضعها في حاويات.

تسجيل الدخول إلى Azure

  1. حدد "Sign in" لتقم بتسجيل الدخول إلى حساب Azure الخاص بك.

    تحتاج إلى رمز جهاز للمصادقة مع Azure. يجب أن يؤدي تحديد Sign in إلى فتح إطار يحتوي على رمز الجهاز. إذا لم تظهر النافذة، فتأكد من تعطيل مانع الإطارات المنبثقة في المستعرض.

  2. حدد Copy code وSign in لنسخ رمز الجهاز وفتح موجه تسجيل الدخول Azure في علامة تبويب مستعرض جديد:

    لقطة شاشة تعرض رمز الجهاز لنافذة تسجيل الدخول Azure.

  3. في علامة التبويب الجديدة، ألصق في رمز الجهاز وأكمل تسجيل الدخول باستخدام بيانات اعتماد حساب Azure. بعد تسجيل دخولك، يمكنك إغلاق علامة تبويب المتصفح والعودة إلى واجهة الويب الخاصة بأداة App Containerization.

  4. حدد Azure tenant الذي تريد استخدامه.

  5. حدد اشتراك Azure الذي تريد استخدامه.

اكتشف تطبيقات ASP.NET

تتصل أداة App Containerization عن بُعد بخوادم التطبيقات باستخدام بيانات الاعتماد المقدمة، وتحاول اكتشاف تطبيقات ASP.NET المستضافة على خوادم التطبيق.

  1. حدد عنوان IP / FQDN وبيانات الاعتماد للخادم الذي يقوم بتشغيل تطبيق ASP.NET والذي يجب استخدامه للاتصال بالخادم عن بُعد لاكتشاف التطبيق.

    • يجب أن تكون بيانات الاعتماد المقدمة لمسؤول محلي (Windows) على خادم التطبيق.
    • بالنسبة لحسابات المجال (يجب أن يكون المستخدم مسؤولا على خادم التطبيق)، قم ببادئة اسم المستخدم باسم المجال بهذا التنسيق: <domain\user name>.
    • بالنسبة للحسابات المحلية (يجب أن يكون المستخدم مسؤولا على خادم التطبيق)، قم ببادئة اسم المستخدم باسم المضيف بهذا التنسيق: <اسم المضيف\اسم> المستخدم.
    • يمكنك تشغيل اكتشاف التطبيق لخمسة خوادم في كل مرة.
  2. اختر "Validate" للتحقق من إمكانية الوصول إلى خادم التطبيق من الجهاز الذي يقوم بتشغيل الأداة، ومن أن بيانات الاعتماد صالحة. بعد نجاح التحقق، سيظهر عمود Status الحالة كـMapped:

    لقطة شاشة تظهر حالة الخادم كما تم تعيينها.

  3. اختر "Continue" لبدء اكتشاف التطبيق على خوادم التطبيق المحددة.

  4. عند الانتهاء من اكتشاف التطبيق، حدد التطبيقات التي تريد حاوية:

    لقطة شاشة تظهر تطبيق ASP.NET المكتشف.

  5. حدد اسمًا للحاوية الهدف لكل تطبيق محدد. حدد اسم الحاوية كاسم<:علامة>، حيث يتم استخدام العلامة لصورة الحاوية. على سبيل المثال، يمكنك تحديد اسم الحاوية الهدف كـ appname: v1.

تحويل تكوينات التطبيق إلى معلمات

إن معلمة التكوين تجعله متاحًا كمعلمة وقت النشر. تتيح لك هذه المعلمة تكوين الإعداد في أثناء نشر التطبيق بدلًا من جعله مشفرًا بقيمة محددة في صورة الحاوية. على سبيل المثال، يفيد هذا الخيار للمعلمات مثل سلاسل اتصال قاعدة البيانات.

  1. اختر "app configurations" لمراجعة التكوينات المكتشفة.

  2. حدد المعلمات التي تريد وضع معلمات لها، ثم حدد Apply:

    لقطة شاشة توضح قائمة تكوينات مكتشفة.

إضفاء الطابع الخارجي على تبعيات نظام الملفات

يمكنك إضافة مجلدات أخرى يستخدمها تطبيقك. حدد ما إذا كان يجب أن تكون جزءًا من صورة الحاوية أو سيتم تخريجها إلى التجميع الدائم من خلال مشاركة ملف Azure. يعمل استخدام التجميع الدائم الخارجي بشكل رائع مع التطبيقات ذات الحالة التي تخزن الحالة خارج الحاوية أو تحتوي على محتوى ثابت آخر مخزّن في نظام الملفات.

  1. انقر فوق "Edit" ضمن Application foldersلمراجعة مجلدات التطبيق المكتشفة. تم تعريف هذه المجلدات على أنها نتائج غير دقيقة إلزامية يحتاجها التطبيق. سيتم نسخها في صورة الحاوية.

  2. حدد إضافة مجلد وحدد مسارات المجلد التي تريد إضافتها.

  3. لإضافة مجلدات متعددة إلى وحدة التخزين نفسها، افصل بين القيم بفواصل.

  4. حدد مشاركة ملف Azure كخيار تخزين إذا كنت تريد تخزين المجلدات خارج الحاوية على التخزين المستمر.

  5. انقر على Save بعد مراجعة مجلدات التطبيق:

    لقطة شاشة تعرض نافذة تحرير مجلدات التطبيقات.

  6. انقر على "Continue" للمتابعة إلى مرحلة بناء صورة الحاوية.

بناء صورة حاوية

  1. استخدم القائمة المنسدلة لتحديد Azure container registry الذي سيتم استخدامه لإنشاء صور الحاوية وتخزينها للتطبيقات. يمكنك استخدام سجل Azure Container Registry الحالي أو اختيار إنشاء سجل جديد باستخدام خيار Create new registry:

    لقطة الشاشة التي تعرض نافذة بناء الصورة.

    إشعار

    يتم عرض سجلات حاويات Azure فقط مع تمكين حساب مستخدم المسؤول. حساب المسؤول مطلوب حاليًّا لنشر صورة من سجل حاوية Azure إلى Azure App Service. لمزيد من المعلومات، راجع المصادقة مع Azure container registry .

  2. يتم إنشاء ملفات Dockerfiles اللازمة لإنشاء صور الحاوية لكل تطبيق محدد في بداية خطوة البناء. اختر "Review" لمراجعة ملف Dockerfile. يمكنك أيضًا إضافة أي تخصيصات ضرورية إلى Dockerfile في خطوة المراجعة وحفظ التغييرات قبل أن تبدأ عملية الإنشاء.

  3. حدد التطبيقات التي تريد إنشاء صور لها، ثم حدد Build. سيؤدي اختيار Build إلى بدء إنشاء صورة الحاوية لكل تطبيق. تقوم الأداة بمراقبة حالة البناء وستتيح لك المتابعة إلى الخطوة التالية عند انتهاء البناء.

  4. يمكنك مراقبة تقدم البناء عن طريق تحديد Build in Progressضمن عمود الحالة. سوف يصبح الرابط نشطًا بضع دقائق بعد تشغيل عملية البناء.

  5. بمجرد اكتمال البناء، اخترContinue لتحديد إعدادات النشر:

    تعرض لقطة شاشة رابط المراجعة وحالة صورة الحاوية وأزرار الإنشاء والمتابعة.

انشر التطبيق المعبأ في حاوية على Azure App Service

بمجرد إنشاء صورة الحاوية، فإن الخطوة التالية هي نشر التطبيق كحاوية في Azure App Service .

  1. حدد خطة Azure App Service التي يجب أن يستخدمها التطبيق.

    إذا لم يكن لديك خطة App Service أو كنت ترغب في إنشاء خطة خدمة تطبيقات جديدة لاستخدامها، فإنه يمكنك إنشاء واحدة باختيار ⁧⁩ إنشاء خطة App Service⁩.

  2. اخترمتابعة بعد تحديد خطة App Service.

  3. إذا قمت بوضع معلمات لتكوينات التطبيقات، فحدد المخزن السري الذي سيتم استخدامه للتطبيق. يمكنك اختيار Azure Key Vault أو إعدادات تطبيق App Service لإدارة أسرار التطبيق الخاص بك. لمزيد من المعلومات، راجع تكوين سلاسل الاتصال.

    • إذا حددت إعدادات تطبيق App Service لإدارة أسرارك، فحدد متابعة.
    • إذا كنت ترغب في استخدام Azure key vault لإدارة أسرار التطبيق، حدد خزنة المفاتيح التي تريد استخدامها.
      • إذا لم يكن لديك مخزن مفاتيح Azure أو تريد إنشاء مخزن مفاتيح جديد، يمكنك إنشاء مخزن مفاتيح جديد عن طريق تحديد إنشاء Azure Key Vault جديد.
      • ستقوم الأداة تلقائيًّا بتعيين الأذونات اللازمة لإدارة الأسرار من خلال Key Vault.
  4. ⁧ إذا كنت قد أضفت المزيد من المجلدات وحددت خيار مشاركة ملف Azure للتخزين الدائم، حدد مشاركة ملف Azure ليتم استخدامها بواسطة أداة App Containerization، أثناء عملية النشر. ستقوم الأداة بنسخ مجلدات التطبيق التي تم تكوينها لملفات Azure وتثبيتها على حاوية التطبيق في أثناء النشر. 

    إذا لم تكن لديك مشاركة لملف Azure، أو كنت ترغب في إنشاء مشاركة جديدة لملف Azure، فيمكنك إنشاء واحد بتحديد "إنشاء حساب تخزين جديد ومشاركة ملف".

  5. تحتاج الآن إلى تحديد تكوين النشر للتطبيق. اختر "Configure" لتخصيص نشر التطبيق. في خطوة تكوين يمكنك تقديم هذه التخصيصات:

    • الاسم. حدد اسم تطبيق فريدًا للتطبيق. سيتم استخدام هذا الاسم لإنشاء URL التطبيق. كما سيتم استخدامه كبادئة للموارد الأخرى التي تم إنشاؤها كجزء من عملية النشر.
    • تكوين التطبيق. ينبغي توفير القيم المراد استخدامها للنشر الحالي فيما يخص أي تكوينات تطبيق تم تحديد معلمات لها.
    • تكوين التخزين. ⁧راجع المعلومات الخاصة بأية مجلدات تطبيق تم تكوينها للتخزين الدائم.

    لقطة شاشة تُوضح تكوين النشر.

  6. بعد أن تقوم بحفظ تكوين النشر للتطبيق، ستقوم الأداة بإنشاء Kubernetes deployment YAML للتطبيق.

    • اختر مراجعة لمراجعة تكوين النشر للتطبيقات.

    • حدد التطبيق الذي تريد نشره.

    • اختر "Deploy" لبدء عمليات نشر التطبيقات المحددة.

      لقطة شاشة تعرض زر النشر.

    • بعد نشر التطبيق، يمكنك تحديد عمود حالة النشر لتتبع الموارد التي تم توزيعها للتطبيق.

استكشاف الأخطاء وإصلاحها

لاستكشاف أي مشكلات في أداة App Containerization وإصلاحها، يمكنك إلقاء نظرة على ملفات السجل على الجهاز الذي يعمل بنظام تشغيل Windows المسؤول عن تشغيل الأداة. توجد ملفات تسجل الأداة في C:\ProgramData\Microsoft Azure Migrate App Containerization\Logs.

الخطوات التالية