البنية الأساسية كتعليمات برمجية

في سيناريو إنتاج، قم بإنشاء مجموعات Azure Service Fabric باستخدام قوالب Resource Manager. توفر قوالب Resource Manager تحكما أكبر في خصائص الموارد وتضمن أن لديك نموذج موارد متسق.

تتوفر نماذج قوالب Resource Manager لWindows و Linux في نماذج Azure على GitHub. يمكن استخدام هذه القوالب كنقطة انطلاق لقالب نظام المجموعة. قم بتنزيلها azuredeploy.json وazuredeploy.parameters.json تحريرها لتلبية متطلباتك المخصصة.

ملاحظة

نوصي باستخدام وحدة Azure Az PowerShell للتفاعل مع Azure. راجع تثبيت Azure PowerShell للبدء. لمعرفة كيفية الترحيل إلى الوحدة النمطية Az PowerShell، راجع ترحيل Azure PowerShell من AzureRM إلى Az.

لتوزيع القوالب azuredeploy.json و azuredeploy.parameters.json التي قمت بتنزيلها أعلاه، استخدم أوامر Azure CLI التالية:

ResourceGroupName="sfclustergroup"
Location="westus"

az group create --name $ResourceGroupName --location $Location 
az deployment group create --name $ResourceGroupName  --template-file azuredeploy.json --parameters @azuredeploy.parameters.json

إنشاء مورد باستخدام PowerShell

$ResourceGroupName="sfclustergroup"
$Location="westus"
$Template="azuredeploy.json"
$Parameters="azuredeploy.parameters.json"

New-AzResourceGroup -Name $ResourceGroupName -Location $Location
New-AzResourceGroupDeployment -Name $ResourceGroupName -TemplateFile $Template -TemplateParameterFile $Parameters

إصدارات Service Fabric

يمكنك توزيع التطبيقات والخدمات على مجموعة Service Fabric الخاصة بك عبر Azure Resource Manager. راجع إدارة التطبيقات والخدمات كموارد Azure Resource Manager للحصول على التفاصيل. فيما يلي أفضل الممارسات الخاصة بتطبيق موارد Service Fabric محددة لتضمينها في موارد قالب Resource Manager.

{
    "apiVersion": "2019-03-01",
    "type": "Microsoft.ServiceFabric/clusters/applicationTypes",
    "name": "[concat(parameters('clusterName'), '/', parameters('applicationTypeName'))]",
    "location": "[variables('clusterLocation')]",
},
{
    "apiVersion": "2019-03-01",
    "type": "Microsoft.ServiceFabric/clusters/applicationTypes/versions",
    "name": "[concat(parameters('clusterName'), '/', parameters('applicationTypeName'), '/', parameters('applicationTypeVersion'))]",
    "location": "[variables('clusterLocation')]",
},
{
    "apiVersion": "2019-03-01",
    "type": "Microsoft.ServiceFabric/clusters/applications",
    "name": "[concat(parameters('clusterName'), '/', parameters('applicationName'))]",
    "location": "[variables('clusterLocation')]",
},
{
    "apiVersion": "2019-03-01",
    "type": "Microsoft.ServiceFabric/clusters/applications/services",
    "name": "[concat(parameters('clusterName'), '/', parameters('applicationName'), '/', parameters('serviceName'))]",
    "location": "[variables('clusterLocation')]"
}

لتوزيع التطبيق الخاص بك باستخدام Azure Resource Manager، يجب عليك أولا إنشاء حزمة تطبيق sfpkg Service Fabric. البرنامج النصي Python التالي هو مثال على كيفية إنشاء sfpkg:

# Create SFPKG that needs to be uploaded to Azure Storage Blob Container
microservices_sfpkg = zipfile.ZipFile(
    self.microservices_app_package_name, 'w', zipfile.ZIP_DEFLATED)
package_length = len(self.microservices_app_package_path)

for root, dirs, files in os.walk(self.microservices_app_package_path):
    root_folder = root[package_length:]
    for file in files:
        microservices_sfpkg.write(os.path.join(
            root, file), os.path.join(root_folder, file))

microservices_sfpkg.close()

تكوين الترقية التلقائية لنظام التشغيل للجهاز الظاهري

ترقية الأجهزة الظاهرية الخاصة بك هي عملية بدأها المستخدم، ويوصى بتمكين مجموعة ترقيات الصور التلقائية لمقياس الجهاز الظاهري لإدارة تصحيح عقدة مجموعة Service Fabric. تطبيق تزامن التصحيح (POA) هو حل بديل مخصص للمجموعات المستضافة غير Azure. على الرغم من أنه يمكن استخدام POA في Azure، إلا أن استضافته تتطلب إدارة أكثر من مجرد تمكين ترقيات صور نظام التشغيل التلقائية المحددة على المقياس. فيما يلي مجموعة مقياس الجهاز الظاهري Resource Manager خصائص القالب لتمكين ترقيات نظام التشغيل التلقائي:

"upgradePolicy": {
   "mode": "Automatic",
   "automaticOSUpgradePolicy": {
        "enableAutomaticOSUpgrade": true,
        "disableAutomaticRollback": false
    }
},

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

تأكد من تعيين مفتاح التسجيل التالي إلى false لمنع أجهزة Windows المضيفة من بدء التحديثات غير المنسقة: HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU.

قم بتعيين خصائص قالب مجموعة مقياس الجهاز الظاهري التالية لتعطيل Windows Update:

"osProfile": {
        "computerNamePrefix": "{vmss-name}",
        "adminUsername": "{your-username}",
        "secrets": [],
        "windowsConfiguration": {
          "provisionVMAgent": true,
          "enableAutomaticUpdates": false
        }
      },

تكوين ترقية مجموعة Service Fabric

فيما يلي خاصية قالب مجموعة Service Fabric لتمكين الترقية التلقائية:

"upgradeMode": "Automatic",

لترقية نظام المجموعة يدويا، قم بتنزيل توزيع cab/deb إلى جهاز ظاهري في المجموعة ثم قم باستدعاء PowerShell التالي:

Copy-ServiceFabricClusterPackage -Code -CodePackagePath <"local_VM_path_to_msi"> -CodePackagePathInImageStore ServiceFabric.msi -ImageStoreConnectionString "fabric:ImageStore"
Register-ServiceFabricClusterPackage -Code -CodePackagePath "ServiceFabric.msi"
Start-ServiceFabricClusterUpgrade -Code -CodePackageVersion <"msi_code_version">

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