Infrastruktura jako kód

V produkčním scénáři vytvořte clustery Azure Service Fabric pomocí šablon Resource Manager. Resource Manager šablony poskytují větší kontrolu nad vlastnostmi prostředků a zajišťují konzistentní model prostředků.

Ukázkové šablony Resource Manager pro Windows a Linux jsou k dispozici v ukázkách Azure na GitHubu. Tyto šablony můžete použít jako výchozí bod pro šablonu clusteru. Stáhněte si azuredeploy.json je a azuredeploy.parameters.json upravte tak, aby splňovaly vaše vlastní požadavky.

Poznámka

K interakci s Azure doporučujeme použít modul Azure Az PowerShell. Začněte tím, že si projdete téma Instalace Azure PowerShellu. Informace o tom, jak migrovat na modul Az PowerShell, najdete v tématu Migrace Azure PowerShellu z AzureRM na Az.

K nasazení azuredeploy.json šablon a azuredeploy.parameters.json , které jste stáhli výše, použijte následující příkazy 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

Vytvoření prostředku pomocí PowerShellu

$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

Prostředky služby Service Fabric

Aplikace a služby můžete nasadit do clusteru Service Fabric prostřednictvím Azure Resource Manager. Podrobnosti najdete v tématu Správa aplikací a služeb jako prostředků Azure Resource Manager. Níže jsou uvedené osvědčené postupy pro konkrétní aplikace Service Fabric, které se mají zahrnout do prostředků šablony 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')]"
}

Pokud chcete aplikaci nasadit pomocí Azure Resource Manager, musíte nejprve vytvořit balíček aplikace Service Fabric sfpkg. Následující skript Pythonu je příkladem vytvoření 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()

Konfigurace automatického upgradu operačního systému virtuálního počítače

Upgrade virtuálních počítačů je operace iniciovaná uživatelem a doporučuje se povolit automatické upgrady škálovacích sad virtuálních počítačů pro správu oprav uzlů clusteru Service Fabric. Aplikace orchestrace oprav (POA) je alternativní řešení určené pro clustery hostované mimo Azure. I když je možné poa použít v Azure, jeho hostování vyžaduje větší správu než pouhé povolení automatických upgradů imagí operačního systému ve škálovací sadě. Následuje škálovací sada virtuálních počítačů Resource Manager vlastností šablony, která umožňuje automatické upgrady operačního systému:

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

Při použití automatických upgradů operačního systému se Service Fabric zavádí nová image operačního systému postupně po jedné aktualizační doméně, aby se zachovala vysoká dostupnost služeb spuštěných v Service Fabric. Pokud chcete v Service Fabric využívat automatické upgrady operačního systému, musí být váš cluster nakonfigurovaný tak, aby používal úroveň Silver Durability nebo vyšší.

Ujistěte se, že je následující klíč registru nastavený na hodnotu false, aby hostitelské počítače s Windows nemohly zahajovat nekoordinované aktualizace: HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU.

Pokud chcete zakázat služba Windows Update, nastavte následující vlastnosti šablony škálovací sady virtuálních počítačů:

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

Konfigurace upgradu clusteru Service Fabric

Následující vlastnost šablony clusteru Service Fabric umožňuje automatický upgrade:

"upgradeMode": "Automatic",

Pokud chcete cluster upgradovat ručně, stáhněte distribuci cab/deb do virtuálního počítače clusteru a pak vyvolejte následující 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">

Další kroky