Arquitetura do Azure Pipelines para IaaS

Importante

A CI/CD para aplicativos IaaS é uma variante de Criar um pipeline de CI/CD usando o Azure DevOps. Este artigo se concentra nas especificidades da implantação de aplicativos Web em Máquinas Virtuais do Azure.

Máquinas Virtuais do Azure é uma opção para hospedar aplicativos personalizados quando você deseja um gerenciamento flexível e granular de sua computação. As VMs (máquinas virtuais) devem estar sujeitas ao mesmo nível de rigor de engenharia que as ofertas de PaaS (Plataforma como Serviço) em todo o ciclo de vida de desenvolvimento. Por exemplo, implementar pipelines de build e lançamento automatizados para enviar alterações por push às VMs.

Este artigo descreve um fluxo de trabalho DevOps de alto nível para implantar alterações de aplicativo em VMs usando práticas de CI (integração contínua) e CD (implantação contínua) usando o Azure Pipelines.

Arquitetura

Diagrama de arquitetura de um pipeline de CI/CD usando o Azure Pipelines.

Baixe um Arquivo Visio dessa arquitetura.

Fluxo de dados

Esta seção pressupõe que você leu a arquitetura de linha de base do Azure Pipelines e se concentra apenas nas especificidades da implantação de uma carga de trabalho em Máquinas Virtuais do Azure.

  1. Pipeline de PR - O mesmo que a linha de base

  2. Pipeline de CI – o mesmo que a linha de base, exceto os artefatos de build criados para implantar um aplicativo Web no IaaS é um pacote de implantação da Web

  3. Gatilho de pipeline de CD - O mesmo que a linha de base

  4. Versão de CD para preparo – igual à linha de base com duas exceções: 1) o artefato de compilação baixado é o Pacote de Implantação da Web e 2) o pacote é implantado em uma Máquina Virtual do Azure de preparo.

  5. Lançamento de CD para produção – o mesmo que a linha de base com duas exceções:

    a. A versão para produção é feita atualizando o Gerenciador de Tráfego do Azure para trocar o preparo e a produção. Essa estratégia pode ser realizada com um perfil do Gerenciador de Tráfego com dois pontos de extremidade, em que a produção está habilitada e o preparo está desabilitado. Para trocar preparo e produção, desabilite a produção e habilite o preparo.
    b. Uma reversão pode ser feita atualizando o Gerenciador de Tráfego do Azure para trocar a produção e o preparo de volta.

  6. Monitoramento - o mesmo que a linha de base

Componentes

Esta seção pressupõe que você leu a seção de Componentes de arquitetura de linha de base do Azure Pipelines e se concentra apenas nas especificidades da implantação de uma carga de trabalho em Máquinas Virtuais do Azure.

  • As Máquinas Virtuais do Azure fornecem uma infraestrutura sob demanda, de grande escala, virtualizada e protegida que usa servidores Windows ou Linux. Esta arquitetura usa Máquinas Virtuais para hospedar cargas de trabalho.

  • Os Conjuntos de Dimensionamento de Máquinas Virtuais permitem criar e gerenciar um grupo de VMs idênticas e com balanceamento de carga. O número de instâncias de VM pode aumentar ou diminuir automaticamente em resposta à demanda ou a um agendamento definido. Conjuntos de dimensionamento também podem ser usados para hospedar cargas de trabalho.

  • O Gerenciador de Tráfego do Azure é um balanceador de carga de tráfego baseado em DNS que você pode usar para distribuir o tráfego para pontos de extremidade configurados. Nessa arquitetura, o Gerenciador de Tráfego é o ponto de entrada único para clientes e é configurado com vários pontos de extremidade, representando a Máquina Virtual de produção e a Máquina Virtual de preparo. O ponto de extremidade da Máquina Virtual de produção está habilitado e o preparo está desabilitado.

Alternativas

Este artigo se concentra no uso do Gerenciador de Tráfego do Azure como o balanceador de carga. O Azure oferece várias Opções de balanceamento de carga que você pode considerar.

Considerações

Esta seção pressupõe que você leu a seção de considerações na arquitetura de linha de base do Azure Pipelines e se concentra apenas nas considerações específicas para implantar uma carga de trabalho em Máquinas Virtuais do Azure.

Excelência operacional

  • Como o Gerenciador de Tráfego é baseado em DNS, o cache de clientes de endereços IP introduz latência. Embora você possa habilitar um ponto de extremidade e desabilitar outro no Gerenciador de Tráfego, os clientes continuarão a usar o endereço IP armazenado em cache até que o TTL (tempo de vida útil) do DNS expire. Considere as opções de balanceamento de carga que atuam na camada 4 ou 7.

  • Considere implementar ambientes além de apenas preparo e produção para habilitar itens como reversões, testes de aceitação manuais e testes de desempenho. O ato de usar o preparo como ambiente de reversão impede que você possa usar esse ambiente para outras finalidades.

Próximas etapas