Aracılığıyla paylaş


Kod olarak altyapı

Üretim senaryosunda Resource Manager şablonlarını kullanarak Azure Service Fabric kümeleri oluşturun. Resource Manager şablonları kaynak özelliklerinde daha fazla denetim sağlar ve tutarlı bir kaynak modeline sahip olduğunuzdan emin olun.

Örnek Resource Manager şablonları, GitHub'daki Azure örneklerinde Windows ve Linux için kullanılabilir. Bu şablonlar, küme şablonunuz için başlangıç noktası olarak kullanılabilir. azuredeploy.parameters.json Özel gereksinimlerinizi karşılamak için bunları indirip azuredeploy.json düzenleyin.

Not

Azure ile etkileşim kurmak için Azure Az PowerShell modülünü kullanmanızı öneririz. Başlamak için bkz . Azure PowerShell'i yükleme. Az PowerShell modülüne nasıl geçeceğinizi öğrenmek için bkz. Azure PowerShell’i AzureRM’den Az’ye geçirme.

Yukarıda indirdiğiniz ve azuredeploy.parameters.json şablonlarını dağıtmak azuredeploy.json için aşağıdaki Azure CLI komutlarını kullanın:

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 kullanarak kaynak oluşturma

$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 kaynakları

Uygulama ve hizmetlerinizi Service Fabric kümesine Azure Resource Manager üzerinden dağıtabilirsiniz. Ayrıntılar için bkz . Uygulamaları ve hizmetleri Azure Resource Manager kaynakları olarak yönetme. Aşağıda, Resource Manager şablon kaynaklarınıza dahil etmek için Service Fabric uygulamasına özgü en iyi yöntem kaynakları yer alır.

{
    "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 kullanarak uygulamanızı dağıtmak için önce bir sfpkg Service Fabric Uygulama paketi oluşturmanız gerekir. Aşağıdaki Python betiği, sfpkg'nin nasıl oluşturulacağını gösteren bir örnektir:

# 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()

Sanal makine işletim sistemi otomatik yükseltme yapılandırması

Sanal makinelerinizi yükseltmek kullanıcı tarafından başlatılan bir işlemdir ve Service Fabric küme düğümü düzeltme eki yönetiminiz için sanal makine ölçek kümesi otomatik görüntü yükseltmelerini etkinleştirmeniz önerilir. Patch Orchestration Application (POA), Azure dışı barındırılan kümelere yönelik alternatif bir çözümdür. POA, Azure'da kullanılabilse de barındırmak, ölçek kümesi otomatik işletim sistemi görüntüsü yükseltmelerini etkinleştirmekten daha fazla yönetim gerektirir. Automtic işletim sistemi yükseltmelerini etkinleştirmek için sanal makine ölçek kümesi Resource Manager şablon özellikleri şunlardır:

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

Service Fabric ile otomatik işletim sistemi yükseltmeleri kullanılırken, Service Fabric'te çalışan hizmetlerin yüksek kullanılabilirliğini korumak için yeni işletim sistemi görüntüsü tek seferde bir Güncelleştirme Etki Alanı dağıtılır. Service Fabric'te Otomatik İşletim Sistemi Yükseltmeleri'ni kullanmak için kümenizin Gümüş Dayanıklılık Katmanı veya üzerini kullanacak şekilde yapılandırılması gerekir.

Windows konak makinelerinizin koordine edilmemiş güncelleştirmeleri başlatmasını önlemek için aşağıdaki kayıt defteri anahtarının false olarak ayarlandığından emin olun: HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU.

Windows Update'i devre dışı bırakmak için aşağıdaki sanal makine ölçek kümesi şablon özelliklerini ayarlayın:

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

Service Fabric küme yükseltme yapılandırması

Otomatik yükseltmeyi etkinleştirmek için Service Fabric küme şablonu özelliği aşağıdadır:

"upgradeMode": "Automatic",

Kümenizi el ile yükseltmek için cab/deb dağıtımını bir küme sanal makinesine indirin ve aşağıdaki PowerShell'i çağırın:

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">

Sonraki adımlar