Como alguém que trabalha com arquitetura de nuvem ou administração de TI, quando você planeja a execução de um aplicativo no Compute Engine, é necessário projetar uma topologia de VM que possa ser provisionada e operada 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 diferentes. Como escolher a melhor estratégia de implantação?
- Comece avaliando os principais requisitos do aplicativo.
- Analise as opções de implantação disponíveis e os benefícios de cada uma delas.
- 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 como base para analisar os principais requisitos da carga de trabalho que você quer implantar. Suas respostas vão ajudar a associar os recursos de cada opção de implantação (listadas na próxima seção) aos requisitos da carga de trabalho.
Estado do aplicativo
Este é um aplicativo com estado?
- Um aplicativo com estado armazena determinados dados, como o ID do cliente ou da sessão, até que eles 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 clientes, transações ou sessões. Por exemplo, um servidor da Web pode encerrar uma sessão depois de disponibilizar o conteúdo solicitado pelo cliente.
Para saber mais sobre aplicativos com estado e sem estado, consulte Diferença entre as cargas de trabalho com e sem estado.
Os metadados específicos da instância precisam ser preservados quando as VMs são reinicializadas ou quando o Compute Engine faz a recriação (recuperação automática) das VMs?
Provisionamento
- 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 de acordo 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 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 processamento de VMs com falha? Por exemplo, em caso de falha em uma VM, você quer que ela permaneça parada enquanto determina a causa raiz da falha?
- Você precisa de controle sobre a sequência de inicialização, interrupção, suspensão e retomada 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, quando uma zona está inativa, você quer que o aplicativo continue atendendo solicitações de VMs em outras zonas da região?
- Quando uma VM é interrompida ou falha por algum motivo ou o aplicativo não responde às solicitações, o Compute Engine deve 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 oferecidas pelo Compute Engine.
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. Além disso, você gerencia as VMs como recursos separados.
- Grupo de instâncias não gerenciado
- É possível provisionar VMs independentes e adicioná-las a um grupo de instâncias. Depois, você pode usar o grupo de instâncias não gerenciado como back-end para um balanceador de carga.
- Grupo gerenciado de instâncias (MIG, na sigla em inglês)
Um MIG é um grupo de instâncias idênticas ou configuradas de maneira parecida que foi provisionado com base em um modelo de instância.
É possível transformar um MIG em 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.
| Recurso | VMs independentes | Grupo de instâncias não gerenciado | MIG com estado | MIG sem estado |
|---|---|---|---|---|
| Provisionamento de um grupo de VMs com base em um modelo | ||||
| Combinação de tipos de máquina e imagens | ||||
| Endereços IP internos ou externos fixos | ||||
| Recuperação automática de VMs com falha | ||||
| Controle sobre as operações de inicialização e interrupção e de suspensão e retomada da VM | ||||
| Configuração de 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 você 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 com três VMs configuradas de maneira parecida que foi provisionado usando um modelo de instância. |
Este exemplo mostra um MIG com três VMs idênticas que foi provisionado usando um modelo de instância. |
|
|
|
|
|
|
|
Você avaliou sua carga de trabalho, analisou as opções de implantação oferecidas pelo Compute Engine e está com tudo pronto para escolher uma abordagem de implantação.
Selecionar uma estratégia de implantação
As recomendações discutidas aqui são baseadas na associação de características específicas da carga de trabalho aos 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.
Escolha entre VMs independentes e grupos de instâncias.
Requisitos Estratégia de implantação recomendada Pelo menos um dos requisitos a seguir é 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.
- Você precisa de controle sobre o processamento de VMs com falha.
- Você precisa de controle sobre as operações de inicialização e interrupção ou de suspensão e retomada das VMs.
- Você precisa usar um script personalizado ou uma ferramenta de terceiros para provisionar e remover VMs.
Escolha VMs independentes.
Se for possível executar todas as VMs independentes em uma única zona, uma única rede VPC e uma única sub-rede, adicione as VMs a um grupo de instâncias não gerenciado. Assim, você pode usar o grupo de instâncias não gerenciado como back-end para um balanceador de carga.
Pule o restante do 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 que seja fácil de gerenciar, altamente disponível e escalonável.
Siga para a próxima etapa.
Escolha entre um MIG com estado e sem estado.
Requisitos Tipo de MIG recomendado O aplicativo requer a preservação do disco e dos metadados, ou seja, ele é um aplicativo com estado. Escolha um MIG com estado e configure os discos que o Compute Engine deve preservar durante eventos de interrupção, como recriação, recuperação automática e atualizações de VMs.
Siga para a próxima etapa.
O aplicativo é um aplicativo sem estado. Escolha um MIG sem estado e aproveite o recurso de escalonamento automático. Durante operações de interrupção, o Compute Engine recria os discos de acordo com o modelo de instância.
Siga para a próxima etapa.
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 em caso de uma falha na zona. Escolha um MIG regional.
Árvore de decisão
O diagrama a seguir exibe os fatores a serem considerados ao decidir sua estratégia de implantação do Compute Engine:
A seguir
- Saiba mais sobre modelos de instância.
- Saiba como funcionam os MIGs com estado.
- Saiba mais sobre MIGs regionais.
- Crie um MIG.
- Faça o escalonamento automático de grupos de instâncias.
- Migre uma carga de trabalho atual para um MIG com estado.