Escolher uma estratégia de implantação do Compute Engine para sua carga de trabalho


Como arquiteto de nuvem ou administrador de TI, quando você planeja executar um aplicativo no Compute Engine, precisa projetar uma topologia de VM que possa ser provisionada e executada com eficiência.

O Compute Engine oferece várias opções de implantação: por exemplo, é possível implantar um grupo de VMs gerenciadas como uma única entidade ou provisionar e gerenciar as VMs como recursos individuais. Cada abordagem tem méritos e limitações distintos. Como escolher a melhor estratégia de implantação?

  1. Comece avaliando os principais requisitos da sua inscrição.
  2. Analise as opções de implantação disponíveis e os benefícios relativos.
  3. Selecione uma estratégia que atenda aos seus requisitos e que faça uso ideal dos recursos do Compute Engine.

Avaliar a carga de trabalho

Use as perguntas a seguir para analisar os principais requisitos da carga de trabalho que você quer implantar. Suas respostas ajudarão a mapear os recursos de cada opção de implantação (listada na próxima seção) para os requisitos da carga de trabalho.

  • Estado do aplicativo

    • O aplicativo é com estado?

      • Um aplicativo com estado armazena determinados dados, como o ID do cliente ou da sessão, até que esses dados não sejam mais necessários. Por exemplo, em um app de compras on-line, o serviço de carrinho de compras pode armazenar detalhes de itens adicionados ou removidos à medida que o usuário continua a fazer compras, e mantém o estado final do carrinho quando o usuário inicia o processo de finalização da compra.
      • Um aplicativo sem estado não precisa armazenar dados de cliente, transação ou sessão. Por exemplo, um servidor da Web pode fechar uma sessão após exibir o conteúdo solicitado pelo cliente.

      Para saber mais sobre aplicativos com estado e sem estado, consulte Como as cargas de trabalho com estado são diferentes das cargas sem estado.

    • Os metadados específicos da instância precisam ser preservados quando as VMs são reinicializadas ou quando o Compute Engine recria (automática) as VMs?

  • Aprovisionamento

    • As VMs precisam usar uma combinação de tipos de máquina ou imagens? Por exemplo, algumas VMs precisam de tipos de máquina com otimização de memória, enquanto outras usam tipos de máquina de uso geral?
    • A infraestrutura deve ser escalonada automaticamente em sintonia com as alterações na carga para manter o equilíbrio ideal entre custo e tempo de resposta?
    • Todas as VMs podem ser executadas em uma única zona, rede VPC e sub-rede?
    • O aplicativo precisa ser executado na mesma zona que alguns outros recursos? Por exemplo, o aplicativo requer uma conexão de baixa latência com um banco de dados?
  • Operações

    • Você quer gerenciar as VMs como um único grupo? Por exemplo, você quer automatizar o lançamento das atualizações do aplicativo em todas as VMs?
    • Você precisa usar uma ferramenta personalizada ou de terceiros para gerenciar as VMs?
    • Você precisa de controle sobre o tratamento de VMs com falha? Por exemplo, se uma VM falhar, você quer que ela permaneça interrompida enquanto determina a causa raiz da falha?
    • Você precisa de controle sobre a sequência iniciar-interromper-suspender-retomar ou a programação das VMs? Por exemplo, para economizar custos, você planeja parar as VMs durante os fins de semana ou em determinadas horas do dia?
  • Resiliência

    • O aplicativo precisa de proteção contra falhas nas zonas? Em outras palavras, se uma zona estiver inativa, você gostaria que o aplicativo continuasse atendendo solicitações de VMs em outras zonas da região?
    • Se uma VM for interrompida ou falhar por algum motivo ou se o aplicativo não responder às solicitações, o Compute Engine deverá recriar a VM automaticamente?
    • O aplicativo precisa de endereços IP internos ou externos fixos para as VMs do host?

Agora que você avaliou seus requisitos, saiba mais sobre as opções de implantação que o Compute Engine oferece.

Analisar as opções de implantação disponíveis

Analise e entenda os recursos e as vantagens relativas das opções a serem consideradas para implantar cargas de trabalho no Compute Engine.

VMs independentes
Com essa opção, você escolhe o tipo de máquina, a imagem, os discos e outros atributos individualmente para cada VM provisionada. E você gerencia as VMs como recursos separados.
Grupo de instâncias não gerenciadas
É possível provisionar VMs independentes e adicioná-las a um grupo de instâncias. Depois, use o grupo de instâncias não gerenciadas como back-end para um balanceador de carga.
Grupo gerenciado de instâncias (MIG)

Um grupo gerenciado de instâncias (MIG, na sigla em inglês) é um grupo de instâncias idênticas ou configuradas de maneira semelhante provisionado a partir de um modelo de instância.

  • É possível tornar um MIG com estado para que discos ou metadados específicos sejam preservados.

  • Para um MIG sem estado, é possível ativar o escalonamento automático e configurar uma política de escalonamento.

  • Ao criar um MIG, é possível optar por implantar as VMs em uma única zona ou distribuí-las em mais de uma zona em uma região para alta disponibilidade.

A tabela a seguir resume os principais recursos de cada opção de implantação.

Capacidade VMs independentes Grupo de instâncias não gerenciadas MIG com estado MIG sem estado
Provisionamento baseado em modelo de um grupo de VMs
Combinação de tipos de máquina e imagens
Correção de endereços IP internos ou externos
Recuperação automática de VMs com falha
Controle sobre as operações iniciar-interromper e suspender-retomar da VM
Como configurar um grupo de VMs como um back-end do balanceador de carga
Preservação de disco e metadados para cargas de trabalho com estado
Atualização controlada de VMs específicas
Atualização gradual automática de todas as VMs
Escalonamento horizontal automático (e preditivo)

Os diagramas a seguir mostram implantações de amostra lado a lado para ajudar a entender as principais diferenças.

VMs independentes MIG com estado MIG sem estado
Este exemplo mostra três VMs criadas individualmente. Este exemplo mostra um MIG que contém três VMs configuradas de forma semelhante, provisionadas usando um modelo de instância.

Neste exemplo, mostramos um MIG que contém três VMs idênticas, provisionadas usando um modelo de instância.

Três VMs independentes
Um MIG com estado
                          que tem três VMs criadas usando um modelo de instância
Um MIG sem estado com três VMs criadas usando um
                          modelo de instância
  • Cada VM neste exemplo usa um tipo de máquina, imagem, discos e outros atributos distintos.
  • As VMs foram adicionadas individualmente a um grupo de instâncias não gerenciadas.
  • As VMs neste exemplo usam um tipo de máquina e uma imagem definidos em um modelo de instância.
  • Uma política com estado garante que os discos de inicialização anexados a todas as VMs tenham estado.
  • As configurações por instância adicionam os discos de dados com estado necessários.
  • Neste exemplo, as VMs herdam o tipo de máquina e a imagem de um modelo de instância.
  • Os discos são recriados quando a VM é atualizada ou recriada.
  • O MIG cria e exclui VMs automaticamente com base em uma configuração de escalonamento automático.

Você avaliou sua carga de trabalho, analisou as opções de implantação que o Compute Engine oferece e está pronto para escolher uma abordagem de implantação.

Selecionar uma estratégia de implantação

As recomendações discutidas aqui são baseadas em um mapeamento de características de carga de trabalho específicas para os recursos de cada opção de implantação do Compute Engine.

Use o fluxo de tomada de decisão a seguir. Se preferir um guia visual, consulte a árvore de decisão mais adiante neste documento.

  1. Escolha entre VMs independentes e grupos de instâncias.

    Requisitos Estratégia de implantação recomendada
    Pelo menos um dos seguintes requisitos é essencial para sua carga de trabalho.
    • O aplicativo precisa ser executado em VMs que usam uma combinação de tipos de máquina ou imagens.
    • O aplicativo precisa de endereços IP internos ou externos fixos para as VMs do host.
    • É necessário tratar as VMs com falha.
    • É necessário ter controle sobre as operações de iniciar-interromper ou suspender-retomar as VMs.
    • É necessário usar um script personalizado ou uma ferramenta de terceiros para provisionar e remover VMs.

    Escolha VMs independentes.

    Se todas as VMs independentes puderem ser executadas em uma única zona, rede VPC e sub-rede, adicione as VMs a um grupo de instâncias não gerenciadas. Em seguida, use o grupo de instâncias não gerenciadas como back-end para um balanceador de carga.

    Pule o restante deste fluxo de tomada de decisão.

    Nenhum dos requisitos acima é essencial para seu caso de uso.

    Use um MIG para configurar uma topologia do Compute Engine fácil de gerenciar, altamente disponível e escalonável.

    Prossiga para a próxima etapa.

  2. Escolha entre um MIG com estado e sem estado.

    Requisitos Tipo de MIG recomendado
    O aplicativo requer preservação de disco e metadados, ou seja, o aplicativo tem estado.

    Escolha um MIG com estado e configure os discos que o Compute Engine precisa preservar durante eventos de interrupção, como recriação, recuperação automática e atualizações de VM.

    Prossiga para a próxima etapa.

    O aplicativo não tem estado.

    Escolha um MIG sem estado e aproveite o recurso de escalonamento automático. Durante as operações de interrupção, o Compute Engine recria os discos de acordo com o modelo de instância.

    Prossiga para a próxima etapa.

  3. Escolha entre um MIG zonal ou regional.

    Requisitos Tipo de MIG recomendado
    O aplicativo precisa ser executado em uma única zona, ou a proteção contra falhas zonais não é essencial. Escolha um MIG zonal.
    O aplicativo precisa continuar em execução mesmo quando ocorrer uma falha na zona. Escolha um MIG regional.

Árvore de decisão

O diagrama a seguir guiará você pelos fatores a serem considerados ao decidir sua estratégia de implantação do Compute Engine:

Árvore de decisão para escolher uma estratégia de implantação do Compute Engine

A seguir