Infraestrutura como código
Em um cenário de produção, crie clusters do Azure Service Fabric usando modelos do Resource Manager. Os modelos do Resource Manager fornecem maior controle das propriedades de recurso e garantem que você tenha um modelo de recursos consistente.
Os modelos de exemplo do Resource Manager estão disponíveis para Windows e Linux nos Exemplos do Azure no GitHub. Esses modelos podem ser usados como ponto de partida para o modelo de cluster. Faça o download de azuredeploy.json
e de azuredeploy.parameters.json
e edite-os para atender aos seus requisitos personalizados.
Observação
Recomendamos que você use o módulo Az PowerShell do Azure para interagir com o Azure. Para começar, consulte Instalar o Azure PowerShell. Para saber como migrar para o módulo Az PowerShell, confira Migrar o Azure PowerShell do AzureRM para o Az.
Para implantar os modelos azuredeploy.json
e azuredeploy.parameters.json
baixados acima, use 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
Como criar um recurso usando 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
É possível implantar aplicativos e serviços em seu cluster do Service Fabric por meio do Azure Resource Manager. Confira Gerenciar aplicativos e serviços como recursos do Azure Resource Manager para obter detalhes. Veja a seguir os recursos específicos de aplicativo do Service Fabric considerados como prática recomendada a serem incluídos em seus recursos de modelo do 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 implantar o seu aplicativo usando o Azure Resource Manager, primeiramente, você deve criar um sfpkg, pacote de aplicativo do Service Fabric. 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 sistema operacional da máquina virtual
A operação de atualização de suas máquinas virtuais é iniciada pelo usuário e recomenda-se habilitar atualizações automáticas de imagem do conjunto de dimensionamento de máquinas virtuais para o gerenciamento de patch do nó de cluster do Service Fabric. O POA (aplicativo de orquestração de patch) é uma solução alternativa destinada a clusters do Service Fabric hospedados fora do Azure. Embora o POA possa ser usado no Azure, a hospedagem requer mais gerenciamento do que a simples habilitação de atualizações automáticas de imagem do sistema operacional do conjunto de dimensionamento. Veja a seguir as propriedades do modelo do Resource Manager para o conjunto de dimensionamento de máquinas virtuais a fim de habilitar a atualização automática do sistema operacional:
"upgradePolicy": {
"mode": "Automatic",
"automaticOSUpgradePolicy": {
"enableAutomaticOSUpgrade": true,
"disableAutomaticRollback": false
}
},
Ao usar atualizações automáticas do sistema operacional com o Service Fabric, a nova imagem do sistema operacional é implementada em um domínio de atualização por vez, a fim de manter a alta disponibilidade dos serviços em execução no Service Fabric. Para utilizar atualizações automáticas do sistema operacional no Service Fabric, o cluster deve ser configurado para usar a camada de durabilidade Silver ou superior.
Verifique se a seguinte chave do registro está definida como false para impedir que suas máquinas host do Windows iniciem atualizações não coordenadas: HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU.
Defina as seguintes propriedades de modelo do conjunto de dimensionamento de máquinas virtuais para desabilitar o Windows Update:
"osProfile": {
"computerNamePrefix": "{vmss-name}",
"adminUsername": "{your-username}",
"secrets": [],
"windowsConfiguration": {
"provisionVMAgent": true,
"enableAutomaticUpdates": false
}
},
Configuração de atualização de cluster do Service Fabric
Veja a seguir a propriedade do modelo do cluster do Service Fabric para habilitar a atualização automática:
"upgradeMode": "Automatic",
Para atualizar manualmente o cluster, baixe a distribuição cab/deb para uma máquina virtual de cluster e, em seguida, invoque o PowerShell a seguir:
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">
Próximas etapas
- Crie um cluster em VMs ou em computadores que estejam executando o Windows Server: Criação de um cluster do Service Fabric para o Windows Server
- Criar um cluster em VMs ou em computadores que estejam executando o Linux: Criar um cluster do Linux
- Saiba mais sobre as opções de suporte do Service Fabric