Escolher e gerenciar computação

Last reviewed 2023-10-03 UTC

Neste documento, mostramos o Framework da arquitetura do Google Cloud sobre as práticas recomendadas para implantar seu sistema com base nos requisitos de computação. Você aprenderá a escolher uma plataforma de computação e abordagem de migração, projetar e escalonar cargas de trabalho e gerenciar operações e migrações de VM.

A computação está no centro de muitas cargas de trabalho, seja ela relacionada à execução de uma lógica de negócios personalizada ou à aplicação de algoritmos computacionais complexos em conjuntos de dados. A maioria das soluções usa recursos de computação de alguma forma, e é fundamental que você selecione os recursos de computação corretos para as necessidades do aplicativo.

O Google Cloud oferece várias opções para usar o tempo em uma CPU. As opções são baseadas em tipos de CPU, desempenho e como o código é programado para execução, incluindo o faturamento de uso.

As opções de computação do Google Cloud incluem:

  • Máquinas virtuais (VM) com benefícios específicos da nuvem, como a migração em tempo real.
  • Empacotamento de contêineres em máquinas de cluster que podem compartilhar CPUs.
  • Funções e abordagens sem servidor, em que o uso do tempo de CPU pode ser limitado ao trabalho realizado durante uma única solicitação HTTP.

Como escolher a computação

Nesta seção, você verá as práticas recomendadas para escolher e migrar para uma plataforma de computação.

Escolha uma plataforma de computação

Ao escolher uma plataforma de computação para sua carga de trabalho, considere os requisitos técnicos da carga de trabalho, os processos de automação do ciclo de vida, a regionalização e a segurança.

Avalie a natureza do uso da CPU pelo aplicativo e por todo o sistema de suporte, incluindo como o código é empacotado e implantado, distribuído e invocado. Embora alguns cenários possam ser compatíveis com várias opções de plataforma, uma carga de trabalho portátil precisa ser capaz e ter bom desempenho em uma variedade de opções de computação.

A tabela a seguir fornece uma visão geral dos serviços de computação recomendados do Google Cloud para vários casos de uso:

Plataforma de computação Casos de uso Produtos recomendados
Sem servidor
  • Implantar seu primeiro aplicativo.
  • Concentre-se na lógica de processamento e dados e no desenvolvimento de apps, em vez de manter operações da infraestrutura.
  • Cloud Run: coloque sua lógica de negócios em contêineres usando esta opção totalmente sem servidor totalmente gerenciada. O Cloud Run foi projetado para cargas de trabalho que exigem muita computação, mas nem sempre estão ativadas. Faça o escalonamento eficaz de 0 (sem tráfego) e defina a CPU e a RAM de suas tarefas e serviços. Implante com um único comando e o Google provisiona automaticamente a quantidade certa de recursos.
  • Cloud Functions: separe seu código em partes flexíveis da lógica de negócios sem as preocupações de infraestrutura de balanceamento de carga, atualizações, autenticação ou escalonamento.
Kubernetes Criar arquiteturas complexas de microsserviços que precisam de serviços adicionais, como o Istio, para gerenciar o controle de malha de serviço.
  • Google Kubernetes Engine: um mecanismo de orquestração de contêineres de código aberto que automatiza a implantação, o escalonamento e o gerenciamento de aplicativos em contêineres.
Máquinas virtuais (VMs) Crie e execute VMs de famílias de VMs predefinidas e personalizáveis compatíveis com seus requisitos de aplicativos e cargas de trabalho, bem como software e serviços de terceiros.
  • Compute Engine: adicione unidades de processamento gráfico (GPUs) às instâncias de VM. Use essas GPUs para acelerar cargas de trabalho específicas nas instâncias, como machine learning e processamento de dados.

Para selecionar os tipos de máquina adequados com base nos seus requisitos, consulte Recomendações para famílias de máquinas.

Para mais informações, consulte Como escolher opções de computação.

Escolher uma abordagem de migração de computação

Se você estiver migrando seus aplicativos atuais de outra nuvem ou do local, use um dos seguintes produtos do Google Cloud para ajudar a otimizar o desempenho, o escalonamento, o custo e a segurança.

Meta de migração Caso de uso Produto recomendado
Migração lift-and-shift Migre ou estenda suas cargas de trabalho da VMware para o Google Cloud em minutos. Google Cloud VMware Engine
Migração lift-and-shift Mova seus aplicativos baseados em VM para o Compute Engine. Migrate to Virtual Machines
Upgrade para contêineres Modernize aplicativos tradicionais em contêineres integrados no Google Kubernetes Engine. Migrate to Containers

Para saber como migrar suas cargas de trabalho ao alinhar equipes internas, consulte Ciclo de vida da migração da VM e Como criar um programa de migração em grande escala com o Google Cloud.

Como projetar cargas de trabalho

Nesta seção, você verá as práticas recomendadas para projetar cargas de trabalho compatíveis com seu sistema.

Avalie opções sem servidor para uma lógica simples

Lógica simples é um tipo de computação que não exige tipos de máquina ou hardware especializados, como máquinas otimizadas para CPU. Antes de investir em Google Kubernetes Engine (GKE) ou Compute Engine implementações para abstrair a sobrecarga operacional e otimizar para custo e desempenho, avaliar opções sem servidor para lógica leve.

Separe os aplicativos para ficar sem estado

Quando possível, desassocie os aplicativos para serem sem estado a fim de maximizar o uso das opções de computação sem servidor. Essa abordagem permite usar ofertas de computação gerenciada, escalonar aplicativos com base na demanda e otimizar o custo e o desempenho. Para mais informações sobre como desacoplar seu aplicativo para projetar para escalonamento e alta disponibilidade, consulte Projetar para escalonamento e alta disponibilidade.

Usar a lógica de armazenamento em cache ao separar arquiteturas

Se o aplicativo for projetado para ser com estado, use a lógica de armazenamento em cache para separar e tornar a carga de trabalho escalonável. Para mais informações, consulte Práticas recomendadas do banco de dados.

Usar migrações em tempo real para facilitar upgrades

Para facilitar os upgrades de manutenção do Google, use a migração em tempo real ao definir políticas de disponibilidade de instância. Para mais informações, consulte Definir política de manutenção do host da VM.

Como escalonar cargas de trabalho

Nesta seção, você verá as práticas recomendadas para escalonar cargas de trabalho e torná-las compatíveis com seu sistema.

Usar scripts de inicialização e encerramento

Para aplicativos com estado, use scripts de inicialização e encerramento sempre que possível para iniciar e interromper o estado dos aplicativos normalmente. Uma inicialização normal é quando um computador é ligado por uma função de software, e o sistema operacional tem permissão para executar as tarefas de inicialização segura de processos e abertura de conexões.

As inicializações e as interrupções otimizadas são importantes porque os aplicativos com estado dependem da disponibilidade imediata dos dados que estão próximos à computação, geralmente em discos locais ou permanentes ou na RAM. Para evitar a execução dos dados do aplicativo desde o início em cada inicialização, use um script de inicialização para recarregar os últimos dados salvos e executar o processo de onde parou no momento do desligamento. Para salvar o estado da memória do aplicativo e evitar a perda de progresso no desligamento, use um script de desligamento. Por exemplo, use um script de desligamento quando uma VM estiver programada para ser encerrada devido a eventos de manutenção de escalonamento ou escalonamento do Google.

Use MIGs para oferecer suporte ao gerenciamento de VMs

Quando você usa VMs do Compute Engine, os grupos de instâncias gerenciadas (MIGs, na sigla em inglês) são compatíveis com recursos como recuperação automática, balanceamento de carga, atualização de escalonamento automático e cargas de trabalho com estado. É possível criar MIGs regionais ou zonais com base nas suas metas de disponibilidade. É possível usar MIGs para cargas de trabalho sem estado em exibição ou em lote e para aplicativos com estado que precisam preservar o estado exclusivo de cada VM.

Usar escalonadores automáticos de pods para escalonar suas cargas de trabalho do GKE

Usar horizontal e Escalonadores automáticos de pod verticais para escalonar suas cargas de trabalho e usar provisionamento automático de nós para dimensionar os recursos computacionais subjacentes.

Distribuir o tráfego do aplicativo

Para escalonar seus aplicativos globalmente, use o Cloud Load Balancing para distribuir suas instâncias de aplicativos em mais de uma região ou zona. Os balanceadores de carga otimizam o roteamento de pacotes das redes de borda do Google Cloud para a zona mais próxima, o que aumenta a eficiência do tráfego e minimiza os custos de exibição. Para otimizar a latência do usuário final, use o Cloud CDN para armazenar em cache o conteúdo estático sempre que possível.

Automatize a criação e o gerenciamento de computação

Minimize os erros causados por humanos no seu ambiente de produção automatizando a criação e o gerenciamento da computação.

Como gerenciar operações

Nesta seção, você verá as práticas recomendadas para gerenciar operações compatíveis com seu sistema.

Usar imagens públicas fornecidas pelo Google

Use imagens públicas fornecidas pelo Google Cloud. As imagens públicas do Google Cloud são atualizadas regularmente. Para mais informações, consulte Lista de imagens públicas disponíveis no Compute Engine.

Também é possível criar suas próprias imagens com ajustes e configurações específicas. Sempre que possível, automatize e centralize a criação de imagens em um projeto separado que possa ser compartilhado com usuários autorizados na sua organização. A criação e seleção de imagens personalizadas em um projeto separado permite atualizar, corrigir e criar uma VM usando suas próprias configurações. Depois, compartilhe a imagem selecionada da VM com projetos relevantes.

Usar snapshots para backups de instâncias

Os snapshots permitem criar backups para as instâncias. Os snapshots são especialmente úteis para aplicativos com estado, que não são flexíveis o suficiente para manter o estado ou salvar o progresso quando passam por interrupções abruptas. Se você costuma usar snapshots para criar novas instâncias, é possível otimizar o processo de backup criando uma imagem base a partir desse snapshot.

Usar uma imagem de máquina para ativar a criação de instâncias de VM

Embora um snapshot capture apenas uma imagem dos dados dentro de uma máquina, uma imagem de máquina captura configurações e configurações da máquina, além dos dados. Use uma imagem de máquina para armazenar todas as configurações, metadados, permissões e dados de um ou mais discos necessários para criar uma instância de VM.

Ao criar uma máquina a partir de um snapshot, é preciso definir as configurações nas novas instâncias de VM, o que exige muito trabalho. O uso de imagens de máquina permite copiar essas configurações conhecidas para novas máquinas, reduzindo a sobrecarga. Para mais informações, consulte Quando usar uma imagem de máquina (em inglês).

Capacidade, reservas e isolamento

Nesta seção, você verá as práticas recomendadas para gerenciar capacidade, reservas e isolamento para oferecer suporte ao sistema.

Usar descontos por uso contínuo para reduzir custos

É possível reduzir os custos de despesas operacionais (OPEX, na sigla em inglês) das cargas de trabalho que estão sempre ativadas usando os descontos por uso contínuo. Para mais informações, consulte a categoria de otimização de custos.

Escolha os tipos de máquina para oferecer suporte aos custos e desempenho

O Google Cloud oferece tipos de máquina que permitem escolher computação com base em parâmetros de custo e desempenho. Escolha uma oferta de baixo desempenho para otimizar os custos ou uma opção de computação de alto desempenho com um custo maior. Para mais informações, consulte a categoria de otimização de custos.

Usar nós de locatário individual para atender às necessidades de conformidade

Os nós de locatário individual são servidores físicos do Compute Engine, dedicados a hospedar apenas as VMs do seu projeto. Os nós de locatário individual podem ajudar a atender aos requisitos de conformidade para isolamento físico, incluindo:

  • Mantenha as VMs fisicamente separadas das VMs em outros projetos.
  • Agrupe as VMs no mesmo hardware do host.
  • Isolar as cargas de trabalho de processamento de pagamentos.

Para mais informações, consulte Nós de locatário individual.

Usar reservas para garantir a disponibilidade de recursos

O Google Cloud permite definir reservas para suas cargas de trabalho para garantir que esses recursos estejam sempre disponíveis. Não há cobrança extra para criar reservas, mas você paga pelos recursos reservados, mesmo que não os use. Para mais informações, consulte Como consumir e gerenciar reservas.

VM Migration

Nesta seção, você verá as práticas recomendadas para migrar VMs para suporte ao sistema.

Avaliar ferramentas de migração integradas

Avalie ferramentas de migração integradas para mover suas cargas de trabalho de outra nuvem ou do local. Para mais informações, consulte Migração para o Google Cloud. O Google Cloud oferece ferramentas e serviços para ajudar a migrar cargas de trabalho e otimizar para custo e desempenho. Para receber uma avaliação gratuita dos custos de migração com base no seu cenário atual de TI, consulte o Programa de avaliação e migração rápidas do Google Cloud.

Usar a importação de disco virtual para sistemas operacionais personalizados

Para importar sistemas operacionais compatíveis personalizados, consulte Como importar discos virtuais. Os nós de locatário individual podem ajudar você a atender aos requisitos de "Traga sua própria licença" para licenças por núcleo ou por processador. Para mais informações, consulte Como usar suas próprias licenças.

Recomendações

Para aplicar a orientação no Framework de arquitetura a seu próprio ambiente, recomendamos que você faça o seguinte:

  • Analise as ofertas do Google Cloud Marketplace para avaliar se seu aplicativo está listado em um fornecedor compatível. O Google Cloud é compatível com a execução de vários sistemas de código aberto e vários softwares de terceiros.

  • Considere o Migrate to Containers and GKE para extrair e empacotar um aplicativo baseado em VM como um aplicativo conteinerizado em execução no GKE.

  • Use o Compute Engine para executar aplicativos no Google Cloud. Se você tiver dependências legadas em execução em um aplicativo baseado em VM, verifique se elas atendem aos requisitos do fornecedor.

  • Avalie o uso de um balanceador de carga de rede de passagem interna do Google Cloud para escalonar a arquitetura desacoplada. Para mais informações, consulte Visão geral do balanceador de carga de rede de passagem interna.

  • Avalie suas opções para mudar de casos de uso locais tradicionais, como uso de proxy de alta disponibilidade. Para mais informações, consulte as práticas recomendadas para endereço IP flutuante.

  • Use o VM Manager para gerenciar sistemas operacionais para seus grupos de VMs grandes que executam Windows ou Linux no Compute Engine, e aplique políticas de configuração consistentes.

  • Considere usar o Autopilot do GKE e deixe o Google SRE gerenciar totalmente seus clusters.

  • Use o Controlador de Políticas e o Config Sync para o gerenciamento de configuração e políticas nos clusters do GKE.

  • Garanta a disponibilidade e a escalonabilidade das máquinas em regiões e zonas específicas. O Google Cloud pode ser escalonado de acordo com suas necessidades de computação. No entanto, se você precisar de muitos tipos de máquina específicos em uma região ou zona específica, trabalhe com as equipes de conta para garantir disponibilidade. Para mais informações, consulte Reservas do Compute Engine.

A seguir

Conheça os princípios de design de rede, incluindo:

Explore outras categorias no Framework de arquitetura, como confiabilidade, excelência operacional e segurança, privacidade e conformidade.