إدارة دورة حياة التطبيق في نظام مجموعة مُدار باستخدام Azure Resource Manager

لديك خيارات متعددة لتوزيع تطبيقات Azure Service Fabric على مجموعة Service Fabric المُدارة. نوصي باستخدام Azure Resource Manager. إذا كنت تستخدم Resource Manager، فيمكنك وصف التطبيقات والخدمات في JSON، ثم توزيعها في قالب Resource Manager نفسه مثل نظام المجموعة خاصتك. بخلاف استخدام PowerShell أو Azure CLI لتوزيع التطبيقات وإدارتها، إذا كنت تستخدم Resource Manager، فلن تضطر إلى الانتظار حتى تصبح المجموعة جاهزة؛ يمكن أن يتم تسجيل التطبيق وتوفيره وتوزيعه في خطوة واحدة. يعد استخدام Resource Manager هو أفضل طريقة لإدارة دورة حياة التطبيق في المجموعة خاصتك. لمزيد من المعلومات، راجع أفضل الممارسات: البنية الأساسية على هيئة تعليمة برمجية.

يمكن أن تساعدك إدارة تطبيقاتك على هيئة موارد في Resource Manager على اكتساب التحسينات في هذه المجالات:

  • مسار التدقيق: يدقق Azure Resource Manager كل عملية ويحتفظ بسجل نشاط مفصل. يمكن أن يساعدك سجل النشاط في تتبع أي تغييرات مُجراة على التطبيقات والمجموعة خاصتك.
  • التحكم في الوصول استناداً إلى الدور: يمكنك إدارة الوصول إلى المجموعات والتطبيقات المُوزَّعة على نظام المجموعة باستخدام نفس قالب Azure Resource Manager.
  • كفاءة الإدارة: يمنحك استخدام Resource Manager موقعاً واحداً (مدخل Azure) لإدارة المجموعة وعمليات توزيع التطبيقات الهامة.

ستتعلم في هذا المستند كيفية:

  • توزيع موارد تطبيق نسيج الخدمة باستخدام Azure Resource Manager.
  • ترقية موارد تطبيق نسيج الخدمة باستخدام Azure Resource Manager.
  • حذف موارد تطبيق نسيج الخدمة.

إشعار

هذا المستند هو الجزء الرابع من سلسلة البرامج التعليمية المكونة من أربعة أجزاء، بدءا من نشر مجموعة مدارة بواسطة Service Fabric. على هذا النحو، من المتوقع أن تقوم بنشر نظام المجموعة قبل هذه الخطوة. ومع ذلك، إذا كنت تنوي نشر نظام المجموعة والتطبيق معا، في نفس قالب ARM أو Bicep، فتعرف على أنه يجب أن versions يكون له تبعية على nodeType. وإلا، يفشل النشر.

توزيع موارد تطبيق Service Fabric

الخطوات عالية المستوى التي تتخذها لتوزيع أحد التطبيقات وخدماته باستخدام نموذج مورد تطبيق Resource Manager هي:

  1. بادر بحزم التعليمة البرمجية التطبيق.
  2. حمِّل الحزمة.
  3. بادر بالإشارة إلى موقع الحزمة في قالب Resource Manager كمورد تطبيق.

لمزيد من المعلومات، راجع حزم تطبيق.

بعد ذلك، تُنشئ قالب Resource Manager، وتحدِّث ملف المعلمات بتفاصيل التطبيق، وتُوزِّع القالب على نظام المجموعة المُدار من Service Fabric. استكشاف عينات.

إنشاء حساب تخزين

لتوزيع تطبيق من قالب Resource Manager، يجب أن يكون لديك حساب تخزين. يُستخدم حساب التخزين لعرض صورة التطبيق.

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

إنشاء حساب تخزين

تنبيه

يمثل الوصول العام المجهول إلى بيانات الكائن الثنائي كبير الحجم في حساب التخزين الخاص بك خطرا أمنيا. عند إنشاء حساب تخزين، نوصي بتعطيل الوصول العام المجهول إلى بيانات الكائن الثنائي كبير الحجم على مستوى الحساب، عن طريق تعيين الخاصية AllowBlobPublicAccess إلى false. لمزيد من المعلومات، راجع معالجة وصول القراءة العامة المجهولة إلى بيانات الكائن الثنائي كبير الحجم (عمليات نشر Azure Resource Manager).

تكوين حساب التخزين خاصتك

بعد إنشاء حساب التخزين، يمكنك إنشاء حاوية تخزين الكائنات الثنائية كبيرة الحجم حيث يمكن تقسيم التطبيقات مرحلياً. في مدخل Azure، انتقل إلى حساب Azure Storage حيث تريد تخزين تطبيقاتك. حدد كائنات ثنائية كبيرة الحجم>إضافة حاوية.

يمكنك منح حق الوصول إلى الحاوية بإحدى الطرق التالية:

ضع التطبيق في حساب التخزين لديك

قبل أن تتمكن من توزيع أحد التطبيقات، يجب عليك تقسيم التطبيق مرحلياً في تخزين الكائنات الثنائية كبيرة الحجم. في هذا البرنامج التعليمي، نُنشئ حزمة التطبيق يدوياً. ضع في اعتبارك أنه يمكن أتمتة هذه الخطوة. لمزيد من المعلومات، انظر حزم تطبيق.

في هذا البرنامج التعليمي، نستخدم نموذج تطبيق التصويت.

  1. في Visual Studio، انقر بزر الماوس الأيمن فوق مشروع التصويت، ثم حدد حزمة.

    حزم تطبيق

  2. انتقل إلى دليل .\service-fabric-dotnet-quickstart\Voting\pkg\Debug. اضغط المحتويات في ملف يُسمى Voting.zip. يجب أن يكون ملف ApplicationManifest.xml في الجذر في الملف المضغوط.

    ضغط تطبيق

  3. أعِد تسمية الملف لتغيير الملحق من .zip إلى .sfpkg.

  4. في مدخل Azure، في حاوية تطبيقات لحساب التخزين خاصتك، حدد تحميل، ثم حمِّل Voting.sfpkg.

    تحميل حزمة التطبيق

الآن، يتم حالياً تنظيم التطبيق ويمكنك إنشاء قالب Resource Manager لتوزيع التطبيق.

إنشاء قالب Resource Manager

يحتوي نموذج التطبيق على قوالب Azure Resource Manager التي يمكنك استخدامها لتوزيع التطبيق. أسماء ملفات القوالب هي UserApp.json و UserApp.Parameters.json.

إشعار

يجب تحديث ملف UserApp.Parameters.json باسم نظام مجموعتك.

المعلمة ‏‏الوصف‬ مثال التعليقات
clusterName اسم نظام المجموعة التي توزِّع إليها sf-cluster123
التطبيق اسم التطبيق التصويت
إصدار معرّف المورد ونوع التطبيق وإصدار التطبيق. /providers/Microsoft.ServiceFabric/managedClusters/sf-cluster-123/applicationTypes/VotingType/versions/1.0.0 يجب أن يتطابق مع ApplicationManifest.xml
serviceName اسم الخدمة VotingWeb يجب أن يكون بتنسيق ServiceType
serviceTypeName اسم نوع الخدمة VotingWebType يجب أن يتطابق مع ServiceManifest.xml
appPackageUrl عنوان URL الخاص بتخزين كائن ثنائي كبير الحجم الخاص بالتطبيق https://servicefabricapps.blob.core.windows.net/apps/Voting.sfpkg عنوان URL لحزمة التطبيق في تخزين كائن ثنائي كبير الحجم (يتم وصف الإجراء الخاص بتعيين عنوان URL لاحقاً في المقالة)
{
    "apiVersion": "2021-05-01",
    "type": "Microsoft.ServiceFabric/managedclusters/applications",
    "name": "[concat(parameters('clusterName'), '/', parameters('applicationName'))]",
    "location": "[variables('clusterLocation')]",
},
{
    "apiVersion": "2021-05-01",
    "type": "Microsoft.ServiceFabric/managedclusters/applicationTypes",
    "name": "[concat(parameters('clusterName'), '/', parameters('applicationTypeName'))]",
    "location": "[variables('clusterLocation')]",
},
{
    "apiVersion": "2021-05-01",
    "type": "Microsoft.ServiceFabric/managedclusters/applicationTypes/versions",
    "name": "[concat(parameters('clusterName'), '/', parameters('applicationTypeName'), '/', parameters('applicationTypeVersion'))]",
    "location": "[variables('clusterLocation')]",
},
{
    "apiVersion": "2021-05-01",
    "type": "Microsoft.ServiceFabric/managedclusters/applications/services",
    "name": "[concat(parameters('clusterName'), '/', parameters('applicationName'), '/', parameters('serviceName'))]",
    "location": "[variables('clusterLocation')]"
}

نشر تطبيق Service Fabric

شغِّل الأمر New-AzResourceGroupDeployment cmdlet لتوزيع التطبيق إلى مجموعة الموارد التي تحتوي على نظام المجموعة خاصتك:

New-AzResourceGroupDeployment -ResourceGroupName "sf-cluster-rg" -TemplateParameterFile ".\UserApp.Parameters.json" -TemplateFile ".\UserApp.json" -Verbose

بادر بترقية تطبيق Service Fabric باستخدام Resource Manager

هام

يجب إزالة أي خدمة يتم توزيعها عبر قالب Azure Resource Manager (ARM) من قسم DefaultServices لملف ApplicationManifest.xml المقابل.

يمكنك ترقية تطبيق مُوزَّع بالفعل إلى مجموعة نظام Service Fabric لأحد الأسباب التالية:

  • تمت إضافة خدمة جديدة للتطبيق. يجب إضافة تعريف خدمة إلى ملفي service-manifest.xml و application-manifest.xml عند إضافة خدمة إلى التطبيق. لعكس إصدار جديد من التطبيق، يجب أيضاً تغيير إصدار نوع التطبيق من 1.0.0 إلى 1.0.1 في UserApp.Parameters.json:

    "applicationTypeVersion": {
        "value": "1.0.1"
    },
    "serviceName2": {
        "value": "VotingData"
    },
    "serviceTypeName2": {
        "value": "VotingDataType"
    }
    
  • يُضاف إصدار جديد من الخدمة الحالية إلى التطبيق. تتضمن الأمثلة تغييرات التعليمة البرمجية للتطبيق والتحديثات لإصدار نوع التطبيق والاسم. بالنسبة لهذه الترقية، حدِّث UserApp.Parameters.json على النحو التالي:

     "applicationTypeVersion": {
        "value": "1.0.1"
    }
    

حذف موارد تطبيق Service Fabric

إشعار

لا ينبغي حذف التطبيقات عبر قالب Azure Resource Manager (ARM) حيث لا توجد طريقة تعريفية لتنظيف الموارد الفردية

لحذف تطبيق نسيج الخدمة المُوزَّع باستخدام نموذج مورد التطبيق في Resource Manager:

  1. استخدم الأمر cmdlet Get-AzResource للحصول على معرف المورد للتطبيق:

    Get-AzResource  -Name <String> | f1
    
  2. استخدم الأمر Cmdlet Remove-AzServiceFabricApplication لحذف موارد التطبيق:

    Remove-AzServiceFabricApplication -ResourceId <String> [-Force]
    

الترحيل من المجموعات الكلاسيكية إلى المجموعات المُدارة

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

تم استدعاء العناصر التالية على وجه التحديد بسبب تكرار الاستخدام، ولكن لا يُقصد بها أن تكون قائمة حصرية بالاختلافات.

  • UpgradeReplicaSetCheckTimeout هو الآن عدد صحيح للمدارة، ولكنه سلسلة في SFRP الكلاسيكي.

راجع أنواع موارد تطبيقات نظام المجموعات المُدارة للحصول على قائمة كاملة بالخصائص والأنواع

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

تعرف على المزيد عن توزيع تطبيق نظام المجموعة المُدار: