التشغيل السريع: نشر حاويات Linux إلى Service Fabric

Azure Service Fabric هو نظام أساسي موزع للأنظمة لنشر وإدارة الخدمات الصغيرة والحاويات القابلة للتطوير والموثوق بها.

يظهر هذا التشغيل السريع كيفية نشر حاويات Linux إلى كتلة Service Fabric على Azure. بمجرد الانتهاء، سيكون لديك تطبيق تصويت يتكون من نهاية أمامية على الويب Python ونهاية خلفية Redis تعمل في كتلة Service Fabric. كما ستتعلم كيفية تجاوز فشل تطبيق وكيفية قياس تطبيق في الكتلة الخاصة بك.

صفحة ويب لتطبيق التصويت

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

لإكمال هذا التشغيل السريع:

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

  2. قم بتثبيت Azure CLI.

  3. قم بتثبيت Service Fabric SDK وCLI

  4. قم بتثبيت Git

الحصول على حزمة التطبيق

لنشر حاويات إلى Service Fabric، تحتاج إلى مجموعة من ملفات البيان (تعريف التطبيق)، التي تصف الحاويات الفردية والتطبيق.

في وحدة التحكم، استخدم git لنسخ نسخة من تعريف التطبيق، ثم قم بتغيير الدلائل إلى دليل Voting في نسختك.

git clone https://github.com/Azure-Samples/service-fabric-containers.git

cd service-fabric-containers/Linux/container-tutorial/Voting

إنشاء كتلة Service Fabric

لنشر التطبيق إلى Azure، تحتاج مجموعة Service Fabric لتشغيل التطبيق. تقوم الأوامر التالية بإنشاء كتلة من خمس عقد في Azure. تقوم الأوامر أيضًا بإنشاء شهادة موقعة ذاتيًا وإضافتها إلى key vault وتنزيل الشهادة محليًا. يتم استخدام الشهادة الجديدة لتأمين الكتلة عند النشر ويتم استخدامها لمصادقة العملاء.

إذا كنت ترغب في ذلك، يمكنك تعديل قيم المتغيرات إلى تفضيلك. على سبيل المثال، westus بدلاً من eastus للموقع.

ملاحظة

يجب أن تكون أسماء Key vault فريدة عالميًا، حيث يتم الوصول إليها على أنها https://{vault-name}.vault.azure.net.

#!/bin/bash

# Variables
ResourceGroupName='containertestcluster' 
ClusterName='containertestcluster' 
Location='eastus' 
Password='q6D7nN%6ck@6' 
Subject='containertestcluster.eastus.cloudapp.azure.com' 
VaultName='containertestvault' 
VmPassword='Mypa$$word!321'
VmUserName='sfadminuser'

# Login to Azure and set the subscription
az login

az account set --subscription <mySubscriptionID>

# Create resource group
az group create --name $ResourceGroupName --location $Location 

# Create secure five node Linux cluster. Creates a key vault in a resource group
# and creates a certificate in the key vault. The certificate's subject name must match 
# the domain that you use to access the Service Fabric cluster.  The certificate is downloaded locally.
az sf cluster create --resource-group $ResourceGroupName --location $Location --certificate-output-folder . --certificate-password $Password --certificate-subject-name $Subject --cluster-name $ClusterName --cluster-size 5 --os UbuntuServer1804 --vault-name $VaultName --vault-resource-group $ResourceGroupName --vm-password $VmPassword --vm-user-name $VmUserName

ملاحظة

تم تكوين خدمة واجهة الويب الأمامية للاستماع على المنفذ 80 لحركة المرور الواردة. بشكل افتراضي، يكون المنفذ 80 مفتوحًا على الأجهزة الظاهرية للكتلة وموازن تحميل Azure.

كوِّن بيئتك

يوفر Service Fabric العديد من الأدوات التي يمكنك استخدامها لإدارة الكتلة وتطبيقاتها:

  • مستكشف Service Fabric، أداة تستند إلى المستعرض.
  • واجهة سطر أوامر Service Fabric (CLI)، الذي يعمل في مقدمة Azure CLI.
  • أوامر PowerShell الشائعة

في هذا التشغيل السريع، يمكنك استخدام Service Fabric CLI ومستكشف Service Fabric (أداة تستند إلى الويب). لاستخدام مستكشف Service Fabric، تحتاج إلى استيراد ملف PFX الشهادة إلى المستعرض. بشكل افتراضي، لا يحتوي ملف PFX على كلمة مرور.

Mozilla Firefox هو المتصفح الافتراضي في Ubuntu 18.04. لاستيراد الشهادة في Firefox، انقر فوق زر القائمة في الزاوية اليمنى العلوية لمتصفحك، ثم انقر فوق خيارات. في صفحة التفضيلات، استخدم مربع البحث للبحث عن «الشهادات». انقر فوق عرض الشهادات، وحدد علامة التبويب الشهادات الخاصة بك، وانقر فوق استيراد واتبع التوجيهات لاستيراد الشهادة.

تثبيت شهادة على Firefox

نشر تطبيق Service Fabric

  1. اتصل بكتلة Service Fabric في Azure باستخدام CLI. نقطة النهاية هي نقطة النهاية للإدارة للكتلة الخاصة بك. في القسم السابق، قمت بإنشاء ملف PEM.

    sfctl cluster select --endpoint https://containertestcluster.eastus.cloudapp.azure.com:19080 --pem containertestcluster22019013100.pem --no-verify
    
  2. استخدم البرنامج النصي للتثبيت لنسخ تعريف تطبيق التصويت إلى الكتلة، وتسجيل نوع التطبيق وإنشاء مثيل التطبيق. يجب أن يكون ملف شهادة PEM موجودًا في نفس دليل ملف install.sh.

    ./install.sh
    
  3. افتح مستعرض ويب وانتقل إلى نقطة نهاية مستكشف Service Fabric للكتلة الخاصة بك. تكون نقطة النهاية بالتنسيق التالي: https://<my-azure-service-fabric-cluster-url>:19080/Explorer؛ على سبيل المثال، https://containertestcluster.eastus.cloudapp.azure.com:19080/Explorer.

  4. قم بتوسيع عقدة التطبيقات للتأكد من وجود مدخل الآن لنوع تطبيق التصويت والمثيل الذي قمت بإنشائه.

    مستكشف Service Fabric

  5. للاتصال بحاوية جاري تشغيلها، افتح متصفح ويب وانتقل إلى عنوان URL للكتلة الخاصة بك؛ على سبيل المثال، http://containertestcluster.eastus.cloudapp.azure.com:80. يجب أن تشاهد التطبيق في المتصفح.

    صفحة ويب لتطبيق التصويت

ملاحظة

يمكنك أيضًا نشر تطبيقات Service Fabric مع Docker Compose. على سبيل المثال، يمكن استخدام الأمر التالي لنشر وتثبيت التطبيق على الكتلة باستخدام Docker Compose.

sfctl compose create --deployment-name TestApp --file-path ../docker-compose.yml

تجاوز فشل حاوية في كتلة

يتأكد Service Fabric من أن انتقال مثيلات الحاوية تلقائيًا إلى العقد الأخرى في الكتلة في حالة حدوث فشل. يمكنك أيضًا تفريغ عقدة لحاويات يدويًا ثم نقلها بأمان إلى العقد الأخرى في الكتلة. يوفر Service Fabric عدة طرق لقياس خدماتك. في الخطوات التالية، يمكنك استخدام مستكشف Service Fabric.

لتجاوز فشل حاوية الواجهة الأمامية، قم بالخطوات التالية:

  1. افتح مستكشف Service Fabric Explorer في الكتلة الخاصة بك؛ على سبيل المثال، https://containertestcluster.eastus.cloudapp.azure.com:19080/Explorer.

  2. انقر فوق العقدة fabric:/Voting/azurevotefront في عرض الشجرة وقم بتوسيع عقدة القسم (الممثلة بـ GUID). لاحظ اسم العقدة في عرض الشجرة، الذي يظهر لك العقد التي تقوم الحاوية بتشغيلها حاليًا؛ على سبيل المثال، _nodetype_1.

  3. قم بتوسيع عقدة Nodes في عرض الشجرة. انقر فوق علامة القطع (...) بجوار العقدة التي تقوم بتشغيل الحاوية.

  4. اختر إعادة التشغيل لإعادة تشغيل هذه العقدة وتأكيد إجراء إعادة التشغيل. تؤدي إعادة التشغيل إلى فشل الحاوية إلى عقدة أخرى في الكتلة.

    عرض العقدة في مستكشف Service Fabric

قياس التطبيقات والخدمات في كتلة

يمكن قياس خدمات Service Fabric بسهولة عبر الكتلة لاستيعاب الحمل على الخدمات. يمكنك قياس خدمة عن طريق تغيير عدد المثيلات قيد التشغيل في الكتلة.

لقياس خدمة واجهة الويب الأمامية، قم بالخطوات التالية:

  1. افتح مستكشف Service Fabric في الكتلة الخاصة بك؛ على سبيل المثال، https://containertestcluster.eastus.cloudapp.azure.com:19080.

  2. انقر فوق علامة القطع (ثلاث نقاط) بجوار العقدة fabric:/Voting/azurevotefront في عرض الشجرة واختر خدمة المقياس.

    بدء تشغيل خدمة نطاق مستكشف Service Fabric

    يمكنك الآن اختيار قياس عدد مثيلات خدمة واجهة الويب الأمامية.

  3. قم بتغيير الرقم إلى 2 وانقر فوق خدمة المقياس.

  4. انقر فوق العقدة fabric:/Voting/azurevotefront في عرض الشجرة وقم بتوسيع عقدة القسم (الممثلة بـ GUID).

    انتهت خدمة مقياس مستكشف Service Fabric

    يمكنك الآن مشاهدة أن الخدمة لها مثيلان. في طريقة عرض الشجرة، يمكنك مشاهدة العقد التي تعمل عليها المثيلات.

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

تنظيف الموارد

استخدم البرنامج النصي لإلغاء التثبيت (uninstall.sh) المتوفر في القالب لحذف مثيل التطبيق من الكتلة وإلغاء تسجيل نوع التطبيق. يستغرق هذا البرنامج النصي بعض الوقت لحذف المثيل، لذلك يجب عدم تشغيل البرنامج النصي للتثبيت مباشرة بعد هذا البرنامج النصي. يمكنك استخدام مستكشف Service Fabric لتحديد متى تمت إزالة المثيل وإلغاء تسجيل نوع التطبيق.

./uninstall.sh

تتمثل أبسط طريقة لحذف الكتلة وكافة الموارد التي تستهلكها في حذف مجموعة الموارد.

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

az login
az account set --subscription <guid>
ResourceGroupName="containertestcluster"
az group delete --name $ResourceGroupName

إذا انتهيت من العمل مع الكتلة الخاصة بك، حذف إزالة الشهادة من مخزن الشهادات. على سبيل المثال:

  • في Windows: استخدم Certificates MMC snap-in. تأكد من تحديد حساب المستخدم الخاص بي عند إضافة الأداة الإضافية. انتقل إلى Certificates - Current User\Personal\Certificates واحذ الشهادة.
  • في Mac: استخدم تطبيق Keychain.
  • في Ubunto: اتبع الخطوات التي استخدمتها لعرض الشهادات واحذف الشهادة.

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

في هذا التشغيل السريع، قمت بنشر تطبيق حاوية Linux إلى كتلة Service Fabric في Azure، وتنفيذ تجاوز الفشل في التطبيق، وقياس التطبيق في الكتلة. لمعرفة المزيد عن العمل مع حاويات Linux في Service Fabric، تابع البرنامج التعليمي لمعرفة تطبيقات حاويات Linux.