Otimizar o uso de recursos

Last reviewed 2024-09-25 UTC

Esse princípio no pilar de otimização de custos do Framework da arquitetura do Google Cloud fornece recomendações para ajudar você a planejar e provisionar recursos de acordo com os requisitos e padrões de consumo das cargas de trabalho na nuvem.

Visão geral do princípio

Para otimizar o custo dos recursos de nuvem, é necessário entender completamente os requisitos de recursos e os padrões de carga das cargas de trabalho. Esse entendimento é a base de um modelo de custo bem definido que permite prever o custo total de propriedade (TCO) e identificar os fatores de custo ao longo da jornada de adoção da nuvem. Ao analisar e prever proativamente os gastos com a nuvem, você pode fazer escolhas informadas sobre provisionamento, utilização e otimização de custos de recursos. Essa abordagem permite controlar os gastos com a nuvem, evitar o provisionamento excessivo e garantir que os recursos da nuvem estejam alinhados às necessidades dinâmicas das cargas de trabalho e dos ambientes.

Recomendações

Para otimizar o uso de recursos de nuvem de maneira eficaz, considere as seguintes recomendações.

Escolher recursos específicos do ambiente

Cada ambiente de implantação tem requisitos diferentes de disponibilidade, confiabilidade e escalonabilidade. Por exemplo, os desenvolvedores podem preferir um ambiente que permita implantar e executar aplicativos rapidamente por períodos curtos, mas que não precise de alta disponibilidade. Por outro lado, um ambiente de produção normalmente precisa de alta disponibilidade. Para maximizar a utilização dos recursos, defina requisitos específicos do ambiente com base nas necessidades da sua empresa. A tabela a seguir lista exemplos de requisitos específicos do ambiente.

Ambiente Requisitos
Produção
  • Alta disponibilidade
  • Desempenho previsível
  • Estabilidade operacional
  • Segurança com recursos robustos
Desenvolvimento e teste
  • Economia
  • Infraestrutura flexível com capacidade de pico
  • Infraestrutura temporária quando a persistência de dados não é necessária
Outros ambientes (como preparação e controle de qualidade)
  • Alocação de recursos personalizada com base em requisitos específicos do ambiente

Escolher recursos específicos da carga de trabalho

Cada uma das suas cargas de trabalho na nuvem pode ter requisitos diferentes de disponibilidade, escalabilidade, segurança e desempenho. Para otimizar os custos, é necessário alinhar as escolhas de recursos aos requisitos específicos de cada carga de trabalho. Por exemplo, um aplicativo sem estado pode não exigir o mesmo nível de disponibilidade ou confiabilidade que um back-end com estado. A tabela a seguir lista mais exemplos de requisitos específicos da carga de trabalho.

Tipo de carga de trabalho Requisitos de carga de trabalho Opções de recurso
Aplicativos essenciais Disponibilidade contínua, segurança robusta e alto desempenho Recursos premium e serviços gerenciados, como o Spanner, para alta disponibilidade e consistência global de dados.
Não crítica Infraestrutura econômica e de escalonamento automático Recursos com recursos básicos e temporários, como VMs do Spot.
Orientada por eventos Escalonamento dinâmico com base na demanda atual de capacidade e desempenho Serviços sem servidor, como o Cloud Run e as funções do Cloud Run.
Cargas de trabalho experimentais Baixo custo e ambiente flexível para desenvolvimento, iteração, teste e inovação rápidos Recursos com recursos básicos, recursos temporários, como VMs do Spot, e ambientes de sandbox com limites de gastos definidos.

Um dos benefícios da nuvem é a oportunidade de aproveitar o poder de computação mais adequado para uma determinada carga de trabalho. Algumas cargas de trabalho são desenvolvidas para aproveitar os conjuntos de instruções do processador, e outras podem não ser projetadas dessa forma. Faça comparações e crie perfis das cargas de trabalho. Categorize suas cargas de trabalho e faça escolhas de recursos específicas para elas. Por exemplo, escolha as famílias de máquinas adequadas para VMs do Compute Engine. Essa prática ajuda a otimizar custos, permitir a inovação e manter o nível de disponibilidade e desempenho que as cargas de trabalho precisam.

Confira abaixo exemplos de como implementar essa recomendação:

  • Para cargas de trabalho de missão crítica que atendem usuários distribuídos globalmente, use o Spanner. O Spanner elimina a necessidade de implantações de banco de dados complexas, garantindo a confiabilidade e a consistência dos dados em todas as regiões.
  • Para cargas de trabalho com níveis de carga variáveis, use o escalonamento automático para garantir que você não incorra em custos quando a carga estiver baixa e ainda mantenha a capacidade suficiente para atender à carga atual. É possível configurar o escalonamento automático para muitos serviços do Google Cloud, incluindo VMs do Compute Engine, clusters do Google Kubernetes Engine (GKE) e o Cloud Run. Ao configurar o autoescalado, você pode definir limites máximos de escalonamento para garantir que os custos fiquem dentro dos orçamentos especificados.

Selecionar regiões com base nos requisitos de custo

Para cargas de trabalho na nuvem, avalie cuidadosamente as regiões disponíveis do Google Cloud e escolha aquelas que se alinham aos seus objetivos de custo. A região com o menor custo pode não oferecer latência ideal ou não atender aos requisitos de sustentabilidade. Tome decisões informadas sobre onde implantar suas cargas de trabalho para alcançar o equilíbrio desejado. Use o Seletor de região do Google Cloud para entender as compensações entre custo, sustentabilidade, latência e outros fatores.

Usar opções integradas de otimização de custos

Os produtos do Google Cloud oferecem recursos integrados para ajudar você a otimizar o uso de recursos e controlar custos. A tabela a seguir lista exemplos de recursos de otimização de custos que podem ser usados em alguns produtos do Google Cloud:

Produto Função de otimização de custos
Compute Engine
GKE
Cloud Storage
  • Faça a transição automática de dados para classes de armazenamento mais baratas com base na idade dos dados ou nos padrões de acesso usando o Gerenciamento do ciclo de vida de objetos.
  • Use a Classe automática para mover dados de forma dinâmica para a classe de armazenamento mais econômica com base nos padrões de uso.
BigQuery
  • Reduza os custos de processamento de consultas para cargas de trabalho estáveis usando o preço com base na capacidade.
  • Otimize a performance e os custos das consultas usando técnicas de particionamento e clustering.
Google Cloud VMware Engine

Otimizar o compartilhamento de recursos

Para maximizar a utilização de recursos da nuvem, é possível implantar vários aplicativos ou serviços na mesma infraestrutura, atendendo à segurança e a outros requisitos dos aplicativos. Por exemplo, em ambientes de desenvolvimento e teste, é possível usar a mesma infraestrutura de nuvem para testar todos os componentes de um aplicativo. No ambiente de produção, é possível implantar cada componente em um conjunto separado de recursos para limitar o impacto em caso de incidentes.

Confira abaixo exemplos de como implementar essa recomendação:

  • Use uma única instância do Cloud SQL para vários ambientes que não sejam de produção.
  • Permita que várias equipes de desenvolvimento compartilhem um cluster do GKE usando o recurso de gerenciamento de equipes da frota no GKE Enterprise com os controles de acesso adequados.
  • Use o Autopilot do GKE para aproveitar as técnicas de otimização de custos, como o bin packing e o escalonamento automático, que o GKE implementa por padrão.
  • Para cargas de trabalho de IA e ML, economize custos de GPU usando estratégias de compartilhamento de GPU, como GPUs de várias instâncias, GPUs de compartilhamento de tempo e NVIDIA MPS.

Desenvolver e manter arquiteturas de referência

Crie e mantenha um repositório de arquiteturas de referência personalizadas para atender aos requisitos de diferentes ambientes de implantação e tipos de carga de trabalho. Para agilizar o processo de design e implementação de projetos individuais, os blueprints podem ser gerenciados centralmente por uma equipe, como um Centro de Excelência em Nuvem (CCoE, na sigla em inglês). As equipes de projeto podem escolher blueprints adequados com base em critérios claramente definidos para garantir a consistência da arquitetura e a adoção de práticas recomendadas. Para requisitos exclusivos de um projeto, a equipe do projeto e a equipe de arquitetura central precisam colaborar para projetar novas arquiteturas de referência. É possível compartilhar as arquiteturas de referência em toda a organização para estimular o compartilhamento de conhecimento e expandir o repositório de soluções disponíveis. Essa abordagem garante consistência, acelera o desenvolvimento, simplifica a tomada de decisões e promove a utilização eficiente de recursos.

Analise as arquiteturas de referência fornecidas pelo Google para vários casos de uso e tecnologias. Essas arquiteturas de referência incorporam práticas recomendadas para seleção, dimensionamento, configuração e implantação de recursos. Ao usar essas arquiteturas de referência, você pode acelerar seu processo de desenvolvimento e economizar desde o início.

Aplicar a disciplina de custo usando políticas da organização

Use as políticas da organização para limitar os locais e produtos do Google Cloud disponíveis que os membros da equipe podem usar. Essas políticas ajudam a garantir que as equipes adiram a soluções econômicas e provisionem recursos em locais alinhados às suas metas de otimização de custos.

Estimar orçamentos realistas e definir limites financeiros

Desenvolva orçamentos detalhados para cada projeto, carga de trabalho e ambiente de implantação. Verifique se os orçamentos abrangem todos os aspectos das operações em nuvem, incluindo custos de infraestrutura, licenças de software, pessoal e crescimento previsto. Para evitar gastos excessivos e garantir o alinhamento com suas metas financeiras, estabeleça limites ou limites máximos de gastos claros para projetos, serviços ou recursos específicos. Monitore os gastos com a nuvem regularmente em relação a esses limites. Use os alertas de cota proativos para identificar possíveis excessos de custos com antecedência e tomar medidas corretivas em tempo hábil.

Além de definir orçamentos, você pode usar cotas e limites para ajudar a aplicar a disciplina de custos e evitar picos inesperados nos gastos. É possível exercer controle granular sobre o consumo de recursos definindo cotas em vários níveis, incluindo projetos, serviços e até tipos de recursos específicos.

Confira abaixo exemplos de como implementar essa recomendação:

  • Cotas no nível do projeto: defina limites de gastos ou cotas de recursos no nível do projeto para estabelecer limites financeiros gerais e controlar o consumo de recursos em todos os serviços do projeto.
  • Cotas específicas do serviço: configure cotas para serviços específicos do Google Cloud, como o Compute Engine ou o BigQuery, para limitar o número de instâncias, CPUs ou capacidade de armazenamento que podem ser provisionadas.
  • Cotas específicas do tipo de recurso: aplique cotas a tipos de recursos individuais, como VMs do Compute Engine, buckets do Cloud Storage, instâncias do Cloud Run ou nós do GKE, para restringir o uso e evitar custos inesperados.
  • Alertas de cota: receba notificações quando o uso da cota (no nível do projeto) atingir uma porcentagem do valor máximo.

Ao usar cotas e limites em conjunto com o orçamento e o monitoramento, é possível criar uma abordagem proativa e em várias camadas para o controle de custos. Essa abordagem ajuda a garantir que seus gastos com a nuvem permaneçam dentro dos limites definidos e esteja alinhado aos seus objetivos de negócios. Lembre-se de que esses controles de custo não são permanentes nem rígidos. Para garantir que os controles de custo permaneçam alinhados aos padrões atuais do setor e reflitam as necessidades de negócios em evolução, revise os controles regularmente e ajuste-os para incluir novas tecnologias e práticas recomendadas.