Infraestrutura como código
Num cenário de produção, crie clusters do Azure Service Fabric com Resource Manager modelos. Resource Manager modelos fornecem um maior controlo das propriedades dos recursos e garantem que tem um modelo de recursos consistente.
Os modelos de Resource Manager de exemplo estão disponíveis para Windows e Linux nos exemplos do Azure no GitHub. Estes modelos podem ser utilizados como um ponto de partida para o modelo de cluster. Transfira azuredeploy.json
e azuredeploy.parameters.json
edite-os para satisfazer os seus requisitos personalizados.
Nota
Recomendamos que utilize o módulo do Azure Az PowerShell para interagir com o Azure. Veja Instalar o Azure PowerShell para começar. Para saber como migrar para o módulo do Az PowerShell, veja Migrar o Azure PowerShell do AzureRM para o Az.
Para implementar os azuredeploy.json
modelos e azuredeploy.parameters.json
que transferiu acima, utilize os seguintes comandos da CLI do Azure:
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
Criar um recurso com o 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
Recursos do Service Fabric
Pode implementar aplicações e serviços no cluster do Service Fabric através do Azure Resource Manager. Veja Gerir aplicações e serviços como recursos do Azure Resource Manager para obter detalhes. Seguem-se os recursos específicos da aplicação do Service Fabric de melhores práticas para incluir nos seus recursos de modelo 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')]"
}
Para implementar a sua aplicação com o Azure Resource Manager, primeiro tem de criar um pacote de Aplicação do Service Fabric de sfpkg. O seguinte script python é um exemplo de como criar um 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()
Configuração de atualização automática do SO da máquina virtual
A atualização das máquinas virtuais é uma operação iniciada pelo utilizador e recomenda-se que ative as atualizações automáticas de imagens do conjunto de dimensionamento de máquinas virtuais para a gestão de patches de nós do cluster do Service Fabric. A Aplicação de Orquestração de Patches (POA) é uma solução alternativa que se destina a clusters não alojados no Azure. Embora a POA possa ser utilizada no Azure, aloja-a requer mais gestão do que simplesmente ativar atualizações automáticas da imagem do SO do conjunto de dimensionamento. Seguem-se o conjunto de dimensionamento de máquinas virtuais Resource Manager propriedades do modelo para ativar as atualizações automáticas do SO:
"upgradePolicy": {
"mode": "Automatic",
"automaticOSUpgradePolicy": {
"enableAutomaticOSUpgrade": true,
"disableAutomaticRollback": false
}
},
Ao utilizar atualizações automáticas do SO com o Service Fabric, a nova imagem do SO é lançada um Domínio de Atualização de cada vez para manter a elevada disponibilidade dos serviços em execução no Service Fabric. Para utilizar As Atualizações Automáticas do SO no Service Fabric, o cluster tem de estar configurado para utilizar o Escalão de Durabilidade De Prata ou superior.
Certifique-se de que a seguinte chave de registo está definida como falsa para impedir que os computadores anfitriões do Windows iniciem atualizações descoordenadas: HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU.
Defina as seguintes propriedades do modelo do conjunto de dimensionamento de máquinas virtuais para desativar Windows Update:
"osProfile": {
"computerNamePrefix": "{vmss-name}",
"adminUsername": "{your-username}",
"secrets": [],
"windowsConfiguration": {
"provisionVMAgent": true,
"enableAutomaticUpdates": false
}
},
Configuração de atualização do cluster do Service Fabric
Segue-se a propriedade modelo de cluster do Service Fabric para ativar a atualização automática:
"upgradeMode": "Automatic",
Para atualizar manualmente o cluster, transfira a distribuição cab/deb para uma máquina virtual de cluster e, em seguida, invoque o seguinte 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">
Passos seguintes
- Criar um cluster em VMs ou computadores com o Windows Server: criação de clusters do Service Fabric para o Windows Server
- Criar um cluster em VMs ou computadores com Linux: Criar um cluster do Linux
- Saiba mais sobre as opções de suporte do Service Fabric