إدارة دورة حياة التطبيق في نظام مجموعة مُدار باستخدام 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 موقعاً واحداً (مدخل Microsoft Azure) لإدارة المجموعة وعمليات توزيع التطبيقات المهمة.

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

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

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

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

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

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

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

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

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

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

Create a storage account

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

بعد إنشاء حساب التخزين، يمكنك إنشاء حاوية تخزين البيانات الثنائية كبيرة الحجم (blob) حيث يمكن تنظيم التطبيقات. في مدخل Microsoft Azure، انتقل إلى حساب Azure Storage حيث تريد تخزين تطبيقاتك. حدد Blobs>Add Container.

يمكن تأمين الموارد في مجموعتك عن طريق تعيين مستوى الوصول العام إلى خاص. يمكنك منح الوصول بعدة طرق:

يستخدم المثال في لقطة الشاشة التالية وصول قراءة مجهول للكائنات الثنائية كبيرة الحجم.

Create blob

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

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

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

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

    Package Application

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

    Zip Application

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

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

    Upload App Package

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

إنشاء قالب Resource Manager

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

ملاحظة

يجب تحديث ملف UserApp.Parameters.json باسم المجموعة الخاصة بك.

المعلمة الوصف مثال التعليقات
clusterName اسم نظام المجموعة التي تقوم بالتوزيع إليها sf-cluster123
التطبيقات اسم التطبيق التصويت
version معرّف المورد ونوع التطبيق وإصدار التطبيق. /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

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

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-AzResource لحذف موارد التطبيق:

    Remove-AzResource  -ResourceId <String> [-Force] [-ApiVersion <String>]
    

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

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

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

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

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

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

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