Instalar e atualizar aplicativos em conjuntos de dimensionamento de máquina virtual

Concluído

Ao implantar um aplicativo em um conjunto de escala, você precisa de um mecanismo que atualize seu aplicativo de forma consistente em todas as instâncias do conjunto de escala. Você pode obter esse resultado usando uma extensão de script personalizada.

No cenário da transportadora, precisa de uma forma rápida de implementar atualizações na aplicação e minimizar as interrupções para os utilizadores finais. Uma extensão de script personalizado é a solução ideal.

Nesta unidade, você aprenderá a usar uma extensão de script personalizada para atualizar um aplicativo executado em um conjunto de escalas.

O que é uma extensão de script personalizado do Azure?

Uma extensão de script personalizado do Azure transfere e executa um script numa máquina virtual do Azure. Ele pode automatizar as mesmas tarefas em todas as máquinas virtuais (VMs) em um conjunto de escala.

Armazene scripts personalizados no Armazenamento do Azure ou no GitHub. Pode utilizar o portal do Azure para adicionar um script personalizado a uma VM. Para executar scripts personalizados como parte de uma implementação baseada em modelos, combine uma extensão de script personalizado com os modelos do Azure Resource Manager.

Instalar uma aplicação num conjunto de dimensionamento com uma extensão de script personalizado

Para usar uma extensão de script personalizada com a CLI do Azure, crie um arquivo de configuração que defina os arquivos a serem obtidos e os comandos a serem executados. Este ficheiro está no formato JSON.

O exemplo a seguir mostra uma configuração de script personalizada que baixa um aplicativo de um repositório no GitHub e o instala em uma instância de host executando um script chamado custom_application_v1.sh:

# yourConfigV1.json 
{
  "fileUris": ["https://raw.githubusercontent.com/yourrepo/master/custom_application_v1.sh"],
  "commandToExecute": "./custom_application_v1.sh"
}

Para implantar essa configuração no conjunto de escala, use uma extensão de script personalizada. O código a seguir mostra como criar uma extensão de script personalizada para um Conjunto de Escala de Máquina Virtual usando a CLI do Azure. Este comando instala a nova aplicação nas VMs no conjunto de dimensionamento:

az vmss extension set \
  --publisher Microsoft.Azure.Extensions \
  --version 2.0 \
  --name CustomScript \
  --resource-group myResourceGroup \
  --vmss-name yourScaleSet \
  --settings @yourConfigV1.json

Atualizar uma aplicação num conjunto de dimensionamento com uma extensão de script personalizado

Você pode usar uma extensão de script personalizada para atualizar um aplicativo existente em um Conjunto de Dimensionamento de Máquina Virtual. Consulte um script de implantação atualizado e, em seguida, reaplique a extensão ao seu conjunto de escala. Por exemplo, o seguinte código JSON mostra um exemplo de configuração que obtém a nova versão de uma aplicação e a instala:

# yourConfigV2.json
{
  "fileUris": ["https://raw.githubusercontent.com/yourrepo/master/custom_application_v2.sh"],
  "commandToExecute": "./custom_application_v2.sh"
}

Você pode usar o mesmo az vmss extension set comando mostrado anteriormente para implantar o aplicativo atualizado, mas, desta vez, consulte o novo arquivo de configuração:

az vmss extension set \
  --publisher Microsoft.Azure.Extensions \
  --version 2.0 \
  --name CustomScript \
  --resource-group yourResourceGroup \
  --vmss-name yourScaleSet \
  --settings @yourConfigV2.json

As VMs são atualizadas de acordo com a política de atualização para o conjunto de dimensionamento. Esta política quando você cria o conjunto de escala pela primeira vez. A política de atualização pode ter um dos três seguintes modos:

  • Automático: o conjunto de escala não define quando as VMs são atualizadas. Podem ser atualizadas ao mesmo tempo, o que causa uma interrupção do serviço.
  • Rolling: O conjunto de escala distribui a atualização em lotes nas VMs no conjunto de escala. Uma pausa opcional pode minimizar ou eliminar a interrupção do serviço. Neste modo, as máquinas no conjunto de dimensionamento podem executar versões diferentes da aplicação durante um curto espaço de tempo. Este modo requer que adicione uma sonda de estado de funcionamento ao conjunto de dimensionamento ou aplique a extensão do estado de funcionamento da aplicação ao conjunto de dimensionamento.
  • Manual: As VMs existentes no conjunto de escala não são atualizadas. Todas as alterações têm de ser feitas manualmente. Este é o modo predefinido.

Para especificar o modo de política de atualização ao provisionar um Conjunto de Dimensionamento de Máquina Virtual, você pode usar a --upgrade-policy-mode opção. O seguinte exemplo de código utiliza a CLI do Azure:

az vmss create \
  --resource-group MyResourceGroup \
  --name MyScaleSet \
  --image Ubuntu2204 \
  --upgrade-policy-mode automatic \
  --admin-username azureuser \
  --generate-ssh-keys