Confiabilidade no Azure VM Image Builder

Azure VM Image Builder é um serviço gerenciado que cria e personaliza imagens de VM (máquina virtual) e distribui as imagens resultantes para destinos como Azure Compute Gallery ou VHDs (discos rígidos virtuais) em Armazenamento de Blobs do Azure. O serviço não exige que você mantenha a infraestrutura de build de longa duração.

Quando você usa o Azure, a confiabilidade é uma responsabilidade compartilhada. A Microsoft fornece uma variedade de recursos para dar suporte à resiliência e recuperação. Você é responsável por entender como esses recursos funcionam em todos os serviços que você usa e selecionar os recursos necessários para atender aos seus objetivos de negócios e metas de tempo de atividade.

Este artigo descreve como tornar o Azure VM Image Builder resiliente a várias possíveis interrupções e problemas, incluindo falhas transitórias, falhas na zona de disponibilidade, falhas em toda a região e manutenção do serviço. Ele também descreve opções de backup e restauração, soluções personalizadas de várias regiões e informações importantes sobre o SLA (contrato de nível de serviço) do Azure VM Image Builder.

Recomendações de implantação de produção

Considere as seguintes recomendações ao projetar um pipeline de criação de imagens de produção:

  • Defina seus modelos de imagem usando a infraestrutura como código, como Bicep ou Terraform, e armazene as definições no controle do código-fonte.

  • Distribua imagens concluídas para as regiões em que suas cargas de trabalho são executadas, como por meio da replicação da Galeria de Computação do Azure, para evitar dependências desnecessárias entre regiões durante as operações de criação, expansão e recriação de imagem da VM.

  • Armazene scripts de personalização, pacotes e outras dependências de build no armazenamento que têm as características de redundância necessárias para sua carga de trabalho.

Visão geral da arquitetura de confiabilidade

Esta seção descreve alguns dos aspectos importantes de como o serviço funciona que são mais relevantes do ponto de vista da confiabilidade. A seção apresenta a arquitetura lógica, que inclui alguns dos recursos e recursos que você implanta e usa. Também discute a arquitetura física, que fornece detalhes sobre como o serviço funciona nos bastidores.

Arquitetura lógica

Ao usar o VM Image Builder, você implanta um modelo de imagem em uma única região do Azure, que se torna a região base do modelo.

Depois de criar o modelo, você executa um build, que executa uma série de etapas para criar a imagem da VM. Essas etapas podem executar scripts ou incluir pacotes que você deseja inserir na imagem.

O serviço cria ou usa um grupo de recursos de preparo e implanta a infraestrutura de build em sua assinatura. Após o build, o serviço remove recursos temporários, incluindo a VM de build e os recursos de rede associados. O grupo de recursos de preparo e seus recursos de armazenamento permanecem enquanto o recurso de modelo de imagem existir.

O VM Image Builder distribui a imagem concluída para um ou mais destinos que você especificar. Os alvos comuns incluem:

  • Azure Compute Gallery (anteriormente conhecida como Galeria de Imagens Compartilhadas): a Compute Gallery fornece replicação entre várias regiões de imagens de VM. Por exemplo, você pode criar uma imagem em uma região e distribuir a versão de imagem resultante da Azure Compute Gallery para várias regiões de destino.

  • Armazenamento de Blobs do Azure: o serviço pode armazenar o VHD na conta de armazenamento que o Construtor de Imagens da VM implanta ou em uma conta de armazenamento e contêiner de blobs que você especificar.

    Se você usar a conta de armazenamento gerenciada pelo serviço como um destino de distribuição VHD, o serviço armazenará o VHD no grupo de recursos de preparo. Quando você exclui o modelo de imagem, o serviço também exclui o VHD. Para manter o VHD independentemente do modelo de imagem, distribua-o para uma conta de armazenamento personalizada ou copie-o para outro local antes de excluir o modelo.

Azure Compute Gallery e Armazenamento de Blobs são serviços separados do Construtor de Imagens da VM. Você pode distribuir imagens para vários destinos, incluindo destinos em diferentes regiões Azure. Esse modelo de distribuição ajuda você a separar a região em que você cria uma imagem de máquina das regiões em que você consome essa imagem.

Note

O Construtor de Imagens da VM também dá suporte a imagens gerenciadas, que são um destino de distribuição herdado. Este artigo não aborda imagens gerenciadas. Para cenários de produção, use Azure Compute Gallery.

Arquitetura física

O Construtor de Imagens de VM usa Builds de Imagem Isolada para executar o processo de personalização e validação da imagem base. O serviço implanta um recurso de Instâncias de Contêiner do Azure dedicado e uma VM de build no grupo de recursos de preparo em sua assinatura. O recurso Instâncias de Contêiner executa o HashiCorp Packer para personalizar e validar a imagem, e o Construtor de Imagens da VM coordena o build.

Para executar builds de imagem, registre o Microsoft.ContainerInstance provedor de recursos e verifique se sua assinatura tem cota de Instâncias de Contêiner suficiente. Para obter mais informações sobre a arquitetura de serviço, as regiões com suporte e o processo de build, consulte Visão geral do Azure VM Image Builder.

Serviços Azure separados, como Azure Compute Gallery e Armazenamento de Blobs, armazenam imagens concluídas. Configure cada destino de distribuição para atender aos seus requisitos de resiliência.

Resiliência a falhas transitórias

Falhas transitórias são falhas curtas e intermitentes nos componentes. Elas ocorrem com frequência em um ambiente distribuído, como a nuvem, e são uma parte normal das operações. Falhas transitórias se corrigem após um curto período de tempo. É importante que seus aplicativos possam lidar com falhas transitórias, geralmente repetindo solicitações afetadas.

Todos os aplicativos hospedados na nuvem devem seguir as diretrizes transitórias de tratamento de falhas do Azure quando eles se comunicam com qualquer APIs, bancos de dados e outros componentes hospedados na nuvem. Para obter mais informações, consulte Recomendações para resolver falhas transitórias.

Normalmente, você interage com o Azure VM Image Builder usando o portal do Azure, o CLI do Azure, o Azure PowerShell ou a infraestrutura como código, como o Bicep. O pipeline de build é responsável por lidar com falhas transitórias. Se Azure Resource Manager retornar uma resposta de erro transitória, tente novamente a solicitação com o intervalo de espera progressivo apropriado.

Se um build falhar, inspecione seus lastRunStatus, logs de personalização e validação e saídas da execução de distribuição antes de executá-lo novamente. Esses detalhes ajudam você a determinar se uma condição de falha transitória, uma etapa de personalização ou uma operação de distribuição de imagem causaram a falha. Para obter mais informações, consulte Solucionar problemas de falhas de build do VM Image Builder.

As operações de build também podem depender de sistemas externos, como contas de armazenamento, repositórios de pacotes, locais de imagem de origem e destinos de distribuição. Crie suas etapas de personalização e pipelines para dar suporte a novas tentativas após um problema temporário de rede, plataforma ou dependência.

Resiliência a falhas de zona de disponibilidade

Operações de build e imagens finalizadas se comportam de forma diferente durante falhas de zona.

  • Compilações: O Construtor de Imagens de VM não dá suporte a zonas de disponibilidade e não fornece uma garantia de resiliência de zona para modelos de imagem ou operações de build. Se uma falha de zona afetar os recursos que um build usa, o build poderá falhar ao iniciar ou pode ser interrompido. O Construtor de Imagens de VM não move automaticamente o build para outra zona.

    Se você precisar executar builds de imagem durante interrupções de zona, implante seus modelos de imagem e recursos de suporte em várias regiões Azure. Para obter mais informações, consulte soluções de várias regiões personalizadas para resiliência.

  • Imagens: As imagens concluídas permanecerão disponíveis se o armazenamento for resiliente à zona.

    • Azure Compute Gallery: As versões de imagem da Azure Compute Gallery podem usar ZRS (armazenamento com redundância de zona) em regiões de destino que dão suporte a zonas de disponibilidade. Para cada região de destino, selecione ZRS como o tipo de replicação da conta de armazenamento. O padrão é O LRS (armazenamento com redundância local), que não é resiliente a falhas de zona. Para obter mais informações, consulte alta disponibilidade da Galeria de Computação do Azure.

    • VHDs no Armazenamento de Blobs do Azure: se você não usar uma conta de armazenamento personalizada, o Construtor de Imagens de VM criará uma conta de armazenamento ZRS por padrão em regiões que dão suporte a zonas de disponibilidade. Se você usar uma conta de armazenamento personalizada, será responsável por configurar sua redundância para atender aos seus requisitos. Use ZRS para armazenar cópias do VHD em várias zonas de disponibilidade. Para obter mais informações sobre como o ZRS funciona, consulte Confiabilidade no Armazenamento de Blobs do Azure.

Resiliência a falhas em toda a região

Operações de build e imagens concluídas se comportam de forma diferente durante falhas em toda a região.

  • Builds: Azure VM Image Builder é um serviço de região única e não fornece failover interno de várias regiões. Se a região que hospeda seu modelo de imagem ficar indisponível, o modelo de imagem e as operações de build nessa região também ficarão indisponíveis. O serviço não faz failover automaticamente para outra região.

    Se você precisar executar builds de imagem durante interrupções de região, implante seus modelos de imagem e recursos de suporte em várias regiões Azure. Para obter mais informações, consulte soluções de várias regiões personalizadas para resiliência.

  • Imagens: As imagens concluídas permanecerão disponíveis se o armazenamento for resiliente a falhas em toda a região.

    • Azure Compute Gallery: você pode configurar Azure Compute Gallery para replicar versões de imagem para várias regiões. A replicação é assíncrona e você pode usar uma versão de imagem em uma região de destino somente após a conclusão da replicação nessa região.

      Durante uma interrupção em uma região, as réplicas concluídas permanecem disponíveis para implantações de VM em regiões de destino íntegras. No entanto, se a região que contém o recurso da galeria não estiver disponível, você não poderá criar nem atualizar recursos da galeria. Se você precisar continuar publicando versões de imagem durante uma interrupção de região, mantenha galerias separadas em regiões de build separadas. Para obter mais informações, consulte replicação e práticas recomendadas da Galeria de Computação do Azure.

    • VHDs em Armazenamento de Blobs do Azure: o destino VHD gerenciado pelo serviço padrão não fornece redundância geográfica. Em regiões que dão suporte a zonas de disponibilidade, ele usa o ZRS, que não protege contra uma falha em toda a região.

      Em uma região com uma região emparelhada, você pode distribuir o VHD para uma conta de armazenamento personalizada que usa GRS (armazenamento com redundância geográfica) ou GZRS (armazenamento com redundância de zona geográfica). O GRS de acesso de leitura (RA-GRS) e o GZRS de acesso de leitura (RA-GZRS) fornecem acesso somente leitura por meio de um ponto de extremidade secundário, mas eles não executam failover. Para restaurar o acesso normal de leitura e gravação na região emparelhada, inicie um failover gerenciado pelo cliente ou copie o VHD do ponto de extremidade secundário para uma conta de armazenamento separada. A replicação geográfica é assíncrona, portanto, um failover não planejado pode perder dados que não foram replicados. Verifique a propriedade Hora da Última Sincronização da conta de armazenamento antes do failover, quando possível.

      Para obter mais informações sobre o comportamento de failover do Armazenamento de Blobs e abordagens alternativas para replicar dados entre regiões não emparelhadas, consulte Confiabilidade no Armazenamento de Blobs do Azure.

Soluções de várias regiões personalizadas para resiliência

Se você precisar continuar criando imagens durante uma interrupção de região, será responsável por implantar e operar ambientes de build independentes em várias regiões.

Escolha regiões que dão suporte ao VM Image Builder. Em cada região de build, predefinir um modelo de imagem e suas dependências específicas da região, incluindo identidades gerenciadas e atribuições de função, configuração de rede, artefatos de personalização, uma imagem de origem ou réplica de imagem e destinos de distribuição.

Se você precisar publicar imagens enquanto a região de uma Galeria de Computação do Azure não estiver disponível, use um recurso independente da Galeria de Computação do Azure em cada região de build. Replicar versões de imagem de uma única galeria não torna a galeria um recurso totalmente de várias regiões.

Defina esses recursos usando a infraestrutura como código e trate essas definições como a fonte da verdade. Mantenha os ambientes regionais sincronizados quando a configuração for alterada e teste regularmente se cada ambiente pode criar e distribuir uma imagem.

Backup e restauração

Azure VM Image Builder não substitui seu processo de backup e recuperação. Na maioria dos casos, o artefato que importa para a recuperação é a imagem concluída que você publica no Azure Compute Gallery ou no armazenamento VHD.

Para melhorar a recuperação após corrupção ou uma interrupção não planejada estendida, siga estas recomendações:

  • Retenha imagens publicadas em Azure Compute Gallery ou outros destinos de distribuição de acordo com seus requisitos de retenção.

  • Se você criar um VHD e usar o destino de VHD padrão, copie o VHD para seu próprio armazenamento durável antes de excluir o modelo de imagem.

  • Use o controle de versão para armazenar e versionar definições de modelo de imagem.

  • Use o controle do código-fonte ou outro tipo de armazenamento durável para armazenar e versionar scripts e pacotes de personalização.

  • Valide regularmente que cada ambiente de recuperação pré-implantado pode criar e distribuir uma imagem.

Resiliência à manutenção do serviço

Microsoft gerencia a manutenção para o Azure VM Image Builder. O VM Image Builder não atende ao tráfego do aplicativo em runtime, portanto, a manutenção não afeta as VMs que você já criou com base em imagens publicadas. Se um build for atrasado ou interrompido durante a manutenção ou outro evento de serviço, inspecione seu status e logs e execute-o novamente.

Use Integridade do Serviço do Azure para monitorar a manutenção planejada e os incidentes de serviço que podem afetar sua região de build.

Contrato de nível de serviço

Azure VM Image Builder não fornece um SLA (contrato de nível de serviço) de disponibilidade.

Qualquer SLA que se aplique a um destino de distribuição ou serviço de armazenamento se aplica separadamente e não fornece um compromisso de disponibilidade para o modelo do Construtor de Imagens da VM ou operações de build.