Instalar e atualizar aplicativos em Conjuntos de Dimensionamento de Máquinas Virtuais

Concluído

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

No cenário da empresa de transporte, você precisa de uma maneira rápida para distribuir atualizações ao aplicativo, minimizando a interrupção para os usuários finais. Uma extensão de script personalizado é uma solução ideal.

Nesta unidade, você aprenderá a usar uma extensão de script personalizado para atualizar um aplicativo que é executado em um conjunto de dimensionamento.

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

Uma extensão de script personalizado do Azure baixa e executa um script em uma VM do Azure. Ela pode automatizar as mesmas tarefas em todas as VMs de um conjunto de dimensionamento.

Armazene seus scripts personalizados no Armazenamento do Azure ou no GitHub. Para adicionar um a uma VM, use o portal do Azure. Para executar scripts personalizados como parte de uma implantação modelo, combine uma extensão de script personalizado com modelos do Azure Resource Manager.

Instalar um aplicativo em um conjunto de dimensionamento usando uma extensão de script personalizado

Para usar uma extensão de script personalizado com a CLI do Azure, você criará um arquivo de configuração que define os arquivos a serem obtidos e os comandos a serem executados. Esse arquivo está no formato JSON.

O seguinte exemplo mostra uma configuração de script personalizado 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 dimensionamento, você usará uma extensão de script personalizado. O código a seguir mostra como criar uma extensão de script personalizado para um Conjunto de Dimensionamento de Máquinas Virtuais usando a CLI do Azure. Este comando instala o novo aplicativo 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 um aplicativo em um conjunto de dimensionamento usando uma extensão de script personalizado

Use uma extensão de script personalizado para atualizar um aplicativo existente em um Conjunto de Dimensionamento de Máquinas Virtuais. Você consultará um script de implantação atualizado e reaplicará a extensão ao conjunto de dimensionamento. Por exemplo, o seguinte código JSON mostra uma configuração que efetua fetch de uma nova versão de um aplicativo e a instala:

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

É possível usar o mesmo comando az vmss extension set mostrado anteriormente para implantar o aplicativo atualizado, exceto que agora você consultará 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 do conjunto de dimensionamento. Você especificará essa política ao criar o conjunto de dimensionamento pela primeira vez. A política de atualização pode ter um dos três seguintes modos:

  • Automático: O conjunto de dimensionamento não define quando as VMs são atualizadas. Elas podem ser atualizadas todas ao mesmo tempo, causando uma interrupção de serviço.
  • Sem interrupção: O conjunto de dimensionamento distribui a atualização em lotes entre as VMs no conjunto de dimensionamento. Uma pausa opcional pode minimizar ou eliminar uma interrupção de serviço. Nesse modo, os computadores no conjunto de dimensionamento podem executar versões diferentes do aplicativo por um curto período. Esse modo exige que você adicione uma investigação de integridade ao conjunto de dimensionamento ou aplique a extensão de integridade do aplicativo ao conjunto de dimensionamento.
  • Manual: As VMs existentes no conjunto de dimensionamento não são atualizadas. Todas as alterações precisam ser feitas manualmente. Esse modo é o padrão.

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

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