Otimização de desempenho e custo

Nesta seção da estrutura de arquitetura, discutiremos como equilibrar o desempenho e as otimizações de custos nas implantações.

O framework é composto pela seguinte série de artigos:

Estratégias

Avalie os requisitos de desempenho. Determine a prioridade dos seus vários aplicativos e o desempenho mínimo necessário para eles.

Use padrões de design escalonáveis. Melhore a escalabilidade e o desempenho com escalonamento automático, opções de computação e configurações de armazenamento.

Identifique e implemente abordagens de economia de custos. Avalie o custo de cada serviço em execução enquanto associa a prioridade para otimizar a disponibilidade e o custo do serviço.

Práticas recomendadas

  • Use o escalonamento automático e o processamento de dados.
  • Use GPUs e TPUs para melhorar o desempenho.
  • Identifique os aplicativos a serem ajustados.
  • Analise seus custos e otimize.

Usar escalonamento automático e processamento de dados

Use o escalonamento automático para que, conforme a carga aumenta ou diminui, os serviços adicionam ou liberam recursos para corresponder.

Escalonamento automático do Compute Engine

Os grupos de instâncias gerenciadas (MIGs, na sigla em inglês) permitem escalonar seus aplicativos sem estado em várias VMs idênticas, para que um grupo de recursos do Compute Engine seja iniciado com base em um único modelo, baseado em políticas. As políticas de escalonamento automático incluem escalonamento com base na utilização da CPU, capacidade de balanceamento de carga, métricas do Cloud Monitoring ou, para MIGs zonais, por uma carga de trabalho baseada em fila, como Pub/Sub.

Escalonamento automático do Google Kubernetes Engine

Use o recurso do escalonador automático de cluster no Google Kubernetes Engine (GKE) para gerenciar o pool de nós do cluster com base na demanda variável das cargas de trabalho. O escalonador automático de cluster aumenta ou diminui o tamanho do pool de nós automaticamente com base nas solicitações de recursos dos usuários em execução nos nós do conjunto de nós, em vez da utilização real de recursos.

Escalonamento automático sem servidor

As opções de computação sem servidor incluem Cloud Run, App Engine e Cloud Functions, cada uma com recursos de escalonamento automático. Use essas opções sem servidor para escalonar seus microsserviços ou funções.

Processamento de dados

O Dataproc e o Dataflow oferecem opções de escalonamento automático para escalonar os pipelines e o processamento de dados. Use essas opções para permitir que os pipelines acessem mais recursos de computação com base na carga de processamento.

Perguntas sobre o projeto

  • Quais dos seus aplicativos têm requisitos variáveis de carga ou processamento?
  • Qual dos seus pipelines de processamento de dados tem requisitos de dados variáveis?

Recomendações

  • Use os balanceadores de carga do Google Cloud para fornecer um endpoint global.
  • Use grupos de instâncias gerenciadas com o Compute Engine para escalonar automaticamente.
  • Use o escalonador automático de cluster no GKE para escalonar automaticamente o cluster.
  • Use o App Engine para escalonar automaticamente seu aplicativo de plataforma como serviço (PaaS, na sigla em inglês).
  • Use o Cloud Run ou o Cloud Functions para escalonar automaticamente sua função ou microsserviço.

Principais serviços

Recursos

Usar GPUs e TPUs para melhorar o desempenho

O Google Cloud oferece opções para acelerar o desempenho das suas cargas de trabalho. É possível usar essas plataformas de hardware especializados para aumentar o desempenho do aplicativo e do processamento de dados.

Unidade de processamento gráfico (GPU)

O Compute Engine fornece GPUs que podem ser adicionadas às instâncias da máquina virtual. Use essas GPUs para acelerar cargas de trabalho específicas nas instâncias, como aprendizado de máquina e processamento de dados.

Unidade de processamento de Tensor (TPU)

Uma TPU é projetada especificamente como um processador de matriz pelo Google para cargas de trabalho de aprendizado de máquina. As TPUs são mais adequadas para operações de matriz em massa com um grande pipeline, com acesso à memória significativamente menor.

Recursos

Identificar apps para ajustar

O Gerenciamento de desempenho de aplicativos (APM, na sigla em inglês) inclui ferramentas para ajudar a reduzir a latência e o custo, para que você possa executar aplicativos mais eficientes. Com o Cloud Trace, o Cloud Debugger e o Cloud Profiler, você recebe insights sobre como o código e os serviços funcionam e pode solucionar problemas, se necessário.

Instrumentação

A latência desempenha um grande papel para determinar a experiência dos usuários. Quando o back-end do aplicativo começa a ficar complexo ou você começa a adotar a arquitetura de microsserviços, é difícil identificar latências entre a comunicação entre serviços ou identificar gargalos. As ferramentas Cloud Trace e OpenTelemetry ajudam você a escalonar a coleta de dados de latência de implantações e analisá-las rapidamente.

Depuração

O Cloud Debugger ajuda você a inspecionar e analisar o comportamento do código de produção em tempo real, sem afetar o desempenho dele ou diminuí-lo.

Criação de perfil

O código com baixo desempenho aumenta a latência e o custo de aplicativos e serviços da Web. O Cloud Profiler ajuda você a identificar e abordar o desempenho analisando continuamente o desempenho de funções com uso intensivo de CPU ou memória executadas em um aplicativo.

Recomendações

  • Use o Cloud Trace para instrumentar seus aplicativos.
  • Use o Cloud Debugger para fornecer recursos de depuração de produção em tempo real.
  • Use o Cloud Profiler para analisar o desempenho operacional dos aplicativos.

Analisar seus custos e otimizar

A primeira etapa na otimização do custo é entender o uso e os custos atuais. O Google Cloud oferece um recurso Exportar faturamento para o BigQuery que fornece uma maneira detalhada de analisar seus dados de faturamento. É possível conectar o BigQuery ao Google Data Studio para realizar análises visuais ou outras ferramentas de business intelligence (BI) de terceiros, como Tableau, Qlik ou Looker. Use o recurso de notificações programáticas para enviar notificações quando seu orçamento exceder um determinado limite. É possível usar notificações de orçamento com provedores de soluções de terceiros e aplicativos personalizados.

Os descontos por uso prolongado são descontos automáticos para executar recursos específicos do Compute Engine em uma parte significativa do mês de faturamento. O desconto por uso prolongado é concedido para o uso prolongado de determinados tipos de máquina virtual (VM, na sigla em inglês) do Compute Engine.

Os descontos por uso contínuo são ideais para cargas de trabalho com necessidades previsíveis de recursos. Ao adquirir um contrato de uso contínuo, você compra uma certa quantidade de vCPUs, memória, GPUs e SSDs locais a um preço menor mediante o compromisso de pagar por esses recursos por um ou três anos.

Uma VM preemptiva é uma instância que pode ser criada e executada a um preço muito menor do que as normais. No entanto, o Compute Engine pode encerrar (ou seja, antecipar) essas instâncias se exigir acesso a esses recursos para outras tarefas. Instâncias preemptivas são usadas como capacidade extra do Compute Engine, por isso a disponibilidade delas varia com o uso.

Ao entender quais componentes compõem seu custo, é possível decidir como otimizar. Encontrar recursos com baixa utilização ou que não são necessários é um excelente ponto de partida. O Compute Engine fornece recomendações de dimensionamento para VMs que podem ser usadas para ajudar a dimensionar seus recursos. Depois de implementar as alterações, será possível comparar os dados de exportação de faturamento subsequentes para visualizar as diferenças de custo.

Quer prever seu custo de uso? Use a calculadora de preços do Google Cloud.

Recomendações

  • Use rótulos exclusivos em toda a empresa para acompanhar o uso.
  • Use o recurso Exportar faturamento para o BigQuery.
  • Use o Data Studio ou outras ferramentas de visualização para visualizar relatórios de dados de faturamento.
  • Implemente as recomendações de dimensionamento certas feitas pelo Compute Engine.
  • Identifique o consumo 24 horas por dia, 7 dias por semana no Compute Engine, junto com o uso previsto para comprar o desconto por uso contínuo.
  • Use o Gerenciamento do ciclo de vida de objetos do Cloud Storage para gerenciar os custos de armazenamento.

Recursos