O pilar de otimização de custos no Google Cloud Framework bem estruturado descreve princípios e recomendações para otimizar o custo das cargas de trabalho no Google Cloud.
O público-alvo inclui:
- CTOs, CIOs, CFOs e outros executivos responsáveis pelo gerenciamento estratégico de custos.
- Arquitetos, desenvolvedores, administradores e operadores que tomam decisões que afetam o custo em todas as etapas da jornada de nuvem de uma organização.
Os modelos de custo para cargas de trabalho locais e na nuvem são muito diferentes. Os custos de TI no local incluem despesas de capital (CapEx) e despesas operacionais (OpEx). Os recursos de hardware e software locais são adquiridos e os custos de aquisição são depreciados ao longo da vida útil dos recursos. Na nuvem, os custos da maioria dos recursos são tratados como OpEx, em que os custos são incorridos quando os recursos da nuvem são consumidos. Essa diferença fundamental destaca a importância dos seguintes princípios básicos de otimização de custos.
Para princípios e recomendações de otimização de custos específicos para cargas de trabalho de IA e ML, consulte Perspectiva de IA e ML: otimização de custos no Framework bem estruturado.
Princípios básicos
As recomendações no pilar de otimização de custos do Framework de arquitetura bem estruturada são mapeadas para os seguintes princípios básicos:
- Alinhar os gastos com a nuvem ao valor de negócios: garanta que seus recursos de nuvem ofereçam valor de negócios mensurável alinhando os gastos de TI aos objetivos de negócios.
- Promova uma cultura de conscientização de custos: garanta que as pessoas em toda a organização considerem o impacto de custos das decisões e atividades e que tenham acesso às informações de custo necessárias para tomar decisões informadas.
- Otimizar o uso de recursos: provisione apenas os recursos necessários e pague apenas pelos recursos que você consome.
- Otimização contínua: monitore continuamente o uso e os custos dos recursos de nuvem e faça ajustes proativos conforme necessário para otimizar seus gastos. Essa abordagem envolve identificar e resolver possíveis ineficiências de custo antes que se tornem problemas significativos.
Esses princípios estão alinhados aos princípios fundamentais da Cloud FinOps. A FinOps é relevante para qualquer organização, independentemente do tamanho ou maturidade na nuvem. Ao adotar esses princípios e seguir as recomendações relacionadas, você pode controlar e otimizar os custos ao longo da sua jornada na nuvem.
Colaboradores
Autor: Nicolas Pintaux | Engenheiro de clientes, especialista em modernização de aplicativos
Outros colaboradores:
- Anuradha Bajpai | Arquiteto de soluções
- Daniel Lees | Arquiteto de segurança do Cloud
- Eric Lam | Chefe de FinOps do Google Cloud
- Fernando Rubbo | Arquiteto de soluções em nuvem
- Filipe Gracio, PhD | Engenheiro de clientes
- Gary Harmson | Engenheiro de clientes
- Jose Andrade | Engenheiro de clientes de infraestrutura corporativa
- Kent Hua | Gerente de soluções
- Kumar Dhanagopal | Desenvolvedor de soluções para vários produtos
- Marwan Al Shawi | Engenheiro de clientes do parceiro
- Radhika Kanakam | Gerente de programa sênior, GTM do Cloud
- Steve McGhee | Defensor de confiabilidade
- Sergei Lilichenko, Arquiteto de soluções
- Wade Holmes | Diretor de soluções globais
- Zach Seils | Especialista em rede
Alinhar os gastos com a nuvem ao valor comercial
Esse princípio no pilar de otimização de custos do Google Cloud Framework bem estruturado fornece recomendações para alinhar o uso de Google Cloud recursos com as metas de negócios da sua organização.
Visão geral do princípio
Para gerenciar os custos da nuvem de maneira eficaz, é preciso maximizar o valor comercial que os recursos da nuvem oferecem e minimizar o custo total de propriedade (TCO). Ao avaliar as opções de recursos para suas cargas de trabalho na nuvem, considere não apenas o custo de provisionamento e uso dos recursos, mas também o custo de gerenciamento. Por exemplo, máquinas virtuais (VMs) no Compute Engine podem ser uma opção econômica para hospedar aplicativos. No entanto, quando você considera a sobrecarga para manter, corrigir e dimensionar as VMs, o TCO pode aumentar. Por outro lado, serviços sem servidor, como o Cloud Run, podem oferecer maior valor para a empresa. A redução da sobrecarga operacional permite que sua equipe se concentre nas atividades principais e ajuda a aumentar a agilidade.
Para garantir que seus recursos de nuvem ofereçam o valor ideal, avalie os seguintes fatores:
- Custos de provisionamento e uso: as despesas incorridas ao comprar, provisionar ou consumir recursos.
- Custos de gerenciamento: as despesas recorrentes para operar e manter recursos, incluindo tarefas como aplicação de patches, monitoramento e escalonamento.
- Custos indiretos: os custos que você pode incorrer para gerenciar problemas como tempo de inatividade, perda de dados ou violações de segurança.
- Impacto nos negócios: os possíveis benefícios dos recursos, como aumento da receita, melhoria da satisfação do cliente e tempo de lançamento mais rápido.
Ao alinhar os gastos com a nuvem ao valor comercial, você tem os seguintes benefícios:
- Decisões orientadas por valor: as equipes são incentivadas a priorizar soluções que geram o maior valor de negócios e considerar as implicações de custos de curto e longo prazo.
- Escolha de recursos informada: suas equipes têm as informações e o conhecimento necessários para avaliar o valor de negócios e o TCO de várias opções de implantação, para que escolham recursos econômicos.
- Alinhamento entre as equipes: a colaboração multifuncional entre equipes de negócios, finanças e técnicas garante que as decisões de nuvem estejam alinhadas com os objetivos gerais da organização.
Recomendações
Para alinhar os gastos com a nuvem aos objetivos de negócios, considere as seguintes recomendações.
Priorizar serviços gerenciados e produtos sem servidor
Sempre que possível, escolha serviços gerenciados e produtos sem servidor para reduzir a sobrecarga operacional e os custos de manutenção. Essa escolha permite que suas equipes se concentrem nas atividades principais da empresa. Elas podem acelerar o lançamento de novos recursos e funcionalidades, além de ajudar a impulsionar a inovação e o valor.
Confira abaixo exemplos de como implementar essa recomendação:
- Para executar bancos de dados de servidores PostgreSQL, MySQL ou Microsoft SQL Server, use o Cloud SQL em vez de implantar esses bancos de dados em VMs.
- Para executar e gerenciar clusters do Kubernetes, use o Autopilot do Google Kubernetes Engine (GKE) em vez de implantar contêineres em VMs.
- Para suas necessidades de processamento do Apache Hadoop ou do Apache Spark, use o Dataproc e o Dataproc Serverless. A cobrança por segundo pode ajudar a alcançar um TCO significativamente menor em comparação com data lakes locais.
Equilibre a eficiência de custos com a agilidade dos negócios
Controlar custos e otimizar a utilização de recursos são objetivos importantes. No entanto, é preciso equilibrar esses objetivos com a necessidade de uma infraestrutura flexível que permita inovar rapidamente, responder rapidamente às mudanças e oferecer valor mais rápido. Confira abaixo exemplos de como alcançar esse equilíbrio:
- Adote as métricas DORA para o desempenho da entrega de software. Métricas como taxa de falha de mudança (CFR), tempo de detecção (TTD) e tempo de restauração (TTR) podem ajudar a identificar e corrigir gargalos nos seus processos de desenvolvimento e implantação. Ao reduzir o tempo de inatividade e acelerar a entrega, você pode alcançar a eficiência operacional e a agilidade dos negócios.
- Siga as práticas da engenharia de confiabilidade do site (SRE) para melhorar a confiabilidade operacional. O foco do SRE em automação, observabilidade e resposta a incidentes pode levar a uma redução no tempo de inatividade, menor tempo de recuperação e maior satisfação do cliente. Ao minimizar o tempo de inatividade e melhorar a confiabilidade operacional, você pode evitar a perda de receita e a necessidade de provisionar recursos em excesso como uma rede de segurança para lidar com interrupções.
Ativar a otimização de autoatendimento
Incentive uma cultura de experimentação e exploração fornecendo às suas equipes ferramentas de otimização de custos de autoatendimento, ferramentas de observabilidade e plataformas de gerenciamento de recursos. Permita que eles provisionem, gerenciem e otimizem os recursos de nuvem de forma autônoma. Essa abordagem ajuda a fomentar um senso de propriedade, acelerar a inovação e garantir que as equipes possam responder rapidamente às necessidades em mudança, aproveitando a eficiência de custos.
Adotar e implementar as FinOps
Adote o FinOps para estabelecer um ambiente colaborativo em que todos possam tomar decisões embasadas que equilibrem custo e valor. O FinOps promove a responsabilidade financeira e a otimização eficaz de custos na nuvem.
Promover uma mentalidade orientada por valores e TCO
Incentive os membros da equipe a adotar uma atitude holística em relação aos gastos com a nuvem, com ênfase no TCO e não apenas nos custos iniciais. Use técnicas como o mapeamento do stream de valor para visualizar e analisar o fluxo de valor no processo de entrega de software e identificar áreas para melhoria. Implemente o custo unitário para seus aplicativos e serviços e entenda melhor os fatores de custo e descubra oportunidades de otimização. Para mais informações, consulte Maximize o valor comercial com o Cloud FinOps.
Promover uma cultura de conscientização de custos
Esse princípio no pilar de otimização de custos do Google Cloud Framework bem estruturado oferece recomendações para promover a conscientização sobre custos em toda a organização e garantir que os membros da equipe tenham as informações de custo necessárias para tomar decisões informadas.
Convencionalmente, a responsabilidade pelo gerenciamento de custos pode ser centralizada em algumas partes interessadas selecionadas e focada principalmente nas decisões iniciais de arquitetura do projeto. No entanto, os membros da equipe em todas as funções de usuário da nuvem (analista, arquiteto, desenvolvedor ou administrador) podem ajudar a reduzir o custo dos recursos no Google Cloud. Ao compartilhar dados de custo de maneira adequada, você pode capacitar os membros da equipe a tomar decisões econômicas durante os processos de desenvolvimento e implantação.
Visão geral do princípio
As partes interessadas em várias funções, como proprietários de produtos, desenvolvedores, engenheiros de implantação, administradores e analistas financeiros, precisam ter visibilidade sobre os dados de custo relevantes e a relação deles com o valor comercial. Ao provisionar e gerenciar recursos de nuvem, eles precisam dos seguintes dados:
- Custos de recursos projetados: estimativas de custo no momento do design e da implantação.
- Custos de uso de recursos em tempo real: dados de custo atualizados que podem ser usados para monitoramento contínuo e validação do orçamento.
- Custos mapeados para métricas de negócios: insights sobre como os gastos com a nuvem afetam os indicadores principais de desempenho (KPIs) para que as equipes possam identificar estratégias rentáveis.
Talvez nem todas as pessoas precisem ter acesso aos dados brutos de custo. No entanto, promover a conscientização de custos em todas as funções é crucial, porque as decisões individuais podem afetar os custos.
Ao promover a visibilidade de custos e garantir a propriedade clara das práticas de gerenciamento de custos, você garante que todos estejam cientes das implicações financeiras das escolhas e que todos contribuam ativamente para as metas de otimização de custos da organização. Seja por uma equipe centralizada de FinOps ou um modelo distribuído, estabelecer a responsabilidade é crucial para esforços eficazes de otimização de custos.
Recomendações
Para promover a conscientização sobre custos e garantir que os membros da equipe tenham as informações de custo necessárias para tomar decisões informadas, considere as seguintes recomendações.
Fornecer visibilidade dos custos em toda a organização
Para ter visibilidade dos custos em toda a organização, as equipes responsáveis pelo gerenciamento de custos podem realizar as seguintes ações:
- Padronize o cálculo de custos e o orçamento: use um método consistente para determinar os custos totais dos recursos da nuvem, após considerar descontos e custos compartilhados. Estabeleça processos de orçamento claros e padronizados que estejam alinhados às metas da sua organização e permitam o gerenciamento proativo de custos.
- Usar ferramentas padronizadas de gestão de custos e visibilidade: use ferramentas adequadas que ofereçam insights em tempo real sobre os gastos com a nuvem e gerem instantâneos regulares (por exemplo, semanais) da progressão de custos. Essas ferramentas permitem orçamento, previsão e identificação proativos de oportunidades de otimização. As ferramentas podem ser do provedor de nuvem (como o painel do Google Cloud Billing), de terceiros ou de código aberto, como a solução de atribuição de custos.
- Implementar um sistema de alocação de custos: aloque uma parte do orçamento geral de nuvem para cada equipe ou projeto. Essa alocação dá às equipes um senso de propriedade sobre os gastos com a nuvem e as incentiva a tomar decisões econômicas dentro do orçamento alocado.
- Promova a transparência: incentive as equipes a discutir as implicações de custo durante os processos de design e tomada de decisão. Crie um ambiente seguro e de apoio para compartilhar ideias e preocupações relacionadas à otimização de custos. Algumas organizações usam mecanismos de reforço positivo, como tabelas de classificação ou programas de reconhecimento. Se a sua organização tiver restrições para compartilhar dados de custo bruto devido a questões comerciais, explore abordagens alternativas para compartilhar informações e insights de custo. Por exemplo, considere compartilhar métricas agregadas (como o custo total de um ambiente ou recurso) ou métricas relativas (como o custo médio por transação ou usuário).
Entender como os recursos da nuvem são cobrados
Os preços dos recursos Google Cloud podem variar de acordo com as regiões. Alguns recursos são cobrados mensalmente a um preço fixo, e outros podem ser cobrados com base no uso. Para entender como os Google Cloud recursos são cobrados, use a Google Cloud calculadora de preços e as informações de preços específicas do produto (por exemplo, Preços do Google Kubernetes Engine (GKE)).
Entender as opções de otimização de custos baseadas em recursos
Para cada tipo de recurso de nuvem que você planeja usar, explore estratégias para otimizar a utilização e a eficiência. As estratégias incluem dimensionamento correto, automático e adoção de tecnologias sem servidor, quando apropriado. Confira abaixo exemplos de opções de otimização de custos para alguns Google Cloud produtos:
- O Cloud Run permite configurar CPUs sempre alocadas para processar cargas de tráfego previsíveis por uma fração do preço do método de alocação padrão, ou seja, CPUs alocadas apenas durante o processamento da solicitação.
- É possível comprar compromissos de slots do BigQuery para economizar na análise de dados.
- O GKE oferece métricas detalhadas para ajudar você a entender as opções de otimização de custos.
- Entenda como o preço da rede pode afetar o custo das transferências de dados e como otimizar os custos de serviços de rede específicos. Por exemplo, é possível reduzir os custos de transferência de dados para balanceadores de carga de aplicativo externos usando o Cloud CDN ou o Google Cloud Armor. Para mais informações, consulte Formas de reduzir os custos do balanceador de carga de aplicativo externo.
Entender as opções de otimização de custos com base em descontos
Conheça os programas de desconto oferecidos pela Google Cloud , como estes exemplos:
- Descontos por compromisso de uso (CUDs): são adequados para recursos com uso previsível e estável. Os CUDs oferecem reduções significativas no preço em troca do compromisso de uso de recursos específicos por um período (geralmente de um a três anos). Também é possível usar a renovação automática de CUDs para evitar a readquirir manualmente os compromissos quando eles expirarem.
- Descontos por uso prolongado: para determinados Google Cloud produtos, como o Compute Engine e o GKE, é possível receber créditos de desconto automático após o uso contínuo de recursos além de determinados limites de duração.
- VMs spot: para cargas de trabalho flexíveis e tolerantes a falhas, as VMs spot podem ajudar a reduzir os custos do Compute Engine. O custo das VMs spot é significativamente menor do que as VMs regulares. No entanto, o Compute Engine pode interromper ou excluir antecipadamente as VMs spot para recuperar a capacidade. As VMs spot são adequadas para jobs em lote que toleram preempção e não têm requisitos de alta disponibilidade.
- Descontos para opções de produtos específicas: alguns serviços gerenciados, como o BigQuery, oferecem descontos quando você compra capacidade de processamento de consultas dedicada ou com escalonamento automático.
Avalie e escolha as opções de desconto que se alinham às características e aos padrões de uso da sua carga de trabalho.
Incorporar estimativas de custo nos modelos de arquitetura
Incentive as equipes a desenvolver modelos de arquitetura que incluam estimativas de custo para diferentes opções e configurações de implantação. Essa prática permite que as equipes comparem custos de forma proativa e tomem decisões informadas alinhadas aos objetivos técnicos e financeiros.
Use um conjunto consistente e padrão de rótulos para todos os recursos.
Use rótulos para rastrear custos e identificar e classificar recursos. Especificamente, é possível usar rótulos para alocar custos a diferentes projetos, departamentos ou centros de custo. Definir uma política de rotulagem formal que esteja alinhada às necessidades das principais partes interessadas da sua organização ajuda a tornar os custos mais visíveis. Também é possível usar rótulos para filtrar dados de custo e uso de recursos com base no público-alvo.
Use ferramentas de automação, como o Terraform, para aplicar o rotulagem em todos os recursos criados. Para melhorar ainda mais a visibilidade e a atribuição de custos, use as ferramentas fornecidas pela solução de atribuição de custos de código aberto.
Compartilhar relatórios de custos com os membros da equipe
Ao compartilhar relatórios de custo com os membros da equipe, você permite que eles assumam a responsabilidade pelos gastos na nuvem. Essa prática permite a tomada de decisões econômicas, a otimização contínua de custos e melhorias sistemáticas no modelo de alocação de custos.
Os relatórios de custo podem ser de vários tipos, incluindo os seguintes:
- Relatórios de custo periódicos: relatórios regulares informam as equipes sobre os gastos atuais com a nuvem. Normalmente, esses relatórios são exportações de planilhas. Os métodos mais eficazes incluem e-mails automatizados e painéis especializados. Para garantir que os relatórios de custo forneçam informações relevantes e úteis sem sobrecarregar os destinatários com detalhes desnecessários, os relatórios precisam ser adaptados aos públicos-alvo. Configurar relatórios personalizados é uma etapa fundamental para ter mais visibilidade e gerenciamento de custos em tempo real e interativo.
- Notificações automatizadas: é possível configurar relatórios de custo para notificar proativamente as partes interessadas relevantes (por exemplo, por e-mail ou chat) sobre anomalias de custo, limites de orçamento ou oportunidades de otimização de custo. Ao fornecer informações oportunas diretamente para quem pode agir, os alertas automatizados incentivam ações imediatas e promovem uma abordagem proativa para a otimização de custos.
- PainéisGoogle Cloud : use os painéis de faturamento integrados em Google Cloud para ter insights sobre o detalhamento de custos e identificar oportunidades de otimização.O Google Cloud também oferece o hub de FinOps para ajudar você a monitorar economias e receber recomendações de otimização de custos. Um mecanismo de IA alimenta o hub de FinOps para recomendar oportunidades de otimização de custos para todos os recursos implantados. Para controlar o acesso a essas recomendações, implemente o controle de acesso baseado em função (RBAC).
- Painéis personalizados: é possível criar painéis personalizados exportando dados de custo para um banco de dados de análise, como o BigQuery. Use uma ferramenta de visualização, como o Looker Studio, para se conectar ao banco de dados de análise e criar relatórios interativos e ativar o controle de acesso detalhado com permissões baseadas em função.
- Relatórios de custo multinuvem: para implantações multinuvem, você precisa de uma visão unificada dos custos em todos os provedores de nuvem para garantir uma análise, um orçamento e uma otimização abrangentes. Use ferramentas como o BigQuery para centralizar e analisar dados de custo de vários provedores de nuvem e o Looker Studio para criar relatórios interativos específicos da equipe.
Otimizar o uso de recursos
Esse princípio no pilar de otimização de custos do Google Cloud Framework bem estruturado 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 |
|
Desenvolvimento e teste |
|
Outros ambientes (como preparação e controle de qualidade) |
|
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çosGoogle 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 Google Cloud disponíveis 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 Google Cloud Seletor de região para entender as compensações entre custo, sustentabilidade, latência e outros fatores.
Usar opções integradas de otimização de custos
Os produtosGoogle 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 |
|
BigQuery |
|
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 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 Google Cloud específicos, 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.
Otimizar continuamente
Esse princípio no pilar de otimização de custos do Google Cloud Framework com boa arquitetura oferece recomendações para ajudar você a otimizar o custo das implantações na nuvem com base em metas de negócios em constante mudança e evolução.
À medida que sua empresa cresce e evolui, as cargas de trabalho em nuvem precisam se adaptar às mudanças nos requisitos de recursos e nos padrões de uso. Para extrair o máximo valor dos seus gastos com a nuvem, você precisa manter a eficiência de custos e continuar apoiando os objetivos de negócios. Isso exige uma abordagem proativa e adaptativa que se concentre na melhoria e otimização contínuas.
Visão geral do princípio
Para otimizar os custos continuamente, é necessário monitorar e analisar proativamente seu ambiente de nuvem e fazer ajustes adequados para atender aos requisitos atuais. Concentre seus esforços de monitoramento em indicadores principais de desempenho (KPIs) que afetam diretamente a experiência dos usuários finais, alinhe-os às suas metas de negócios e forneça insights para melhoria contínua. Essa abordagem permite identificar e resolver ineficiências, se adaptar às necessidades em mudança e alinhar continuamente os gastos com a nuvem às metas de negócios estratégicas. Para equilibrar a observabilidade abrangente com a eficiência de custos, entenda os custos e benefícios do monitoramento do uso de recursos e use estratégias adequadas de melhoria de processo e otimização.
Recomendações
Para monitorar o ambiente Google Cloud de maneira eficaz e otimizar os custos continuamente, considere as seguintes recomendações.
Foco em métricas relevantes para os negócios
O monitoramento eficaz começa com a identificação das métricas mais importantes para sua empresa e seus clientes. Essas métricas incluem:
- Métricas de experiência do usuário: as métricas de latência, taxas de erro, throughput e satisfação do cliente são úteis para entender a experiência dos usuários finais ao usar seus aplicativos.
- Métricas de resultado de negócios: a receita, o crescimento de clientes e o engajamento podem ser correlacionados com o uso de recursos para identificar oportunidades de otimização de custos.
- Métricas do DevOps Research and Assessment (DORA): métricas como frequência de implantação, tempo de lead para alterações, taxa de falha nas alterações e tempo de restauração fornecem insights sobre a eficiência e a confiabilidade do processo de entrega de software. Ao melhorar essas métricas, você pode aumentar a produtividade, reduzir o tempo de inatividade e otimizar custos.
- Métricas de engenharia de confiabilidade do site (SRE): os orçamentos de erros ajudam as equipes a quantificar e gerenciar o nível aceitável de interrupção do serviço. Ao estabelecer expectativas claras de confiabilidade, os orçamentos de erro permitem que as equipes inovem e implantem mudanças com mais confiança, sabendo a margem de segurança. Essa abordagem proativa promove um equilíbrio entre inovação e estabilidade, ajudando a evitar custos operacionais excessivos associados a falhas importantes ou inatividade prolongada.
Usar a observabilidade para otimizar recursos
Confira a seguir recomendações para usar a observabilidade e identificar gargalos de recursos e recursos subutilizados nas implantações na nuvem:
- Monitorar a utilização de recursos: use as métricas de utilização de recursos para identificar Google Cloud recursos subutilizados. Por exemplo, use métricas como a utilização da CPU e da memória para identificar recursos de VM inativos. No Google Kubernetes Engine (GKE), você pode conferir um detalhe dos custos e métricas de otimização relacionadas ao custo. No Google Cloud VMware Engine, revise a utilização de recursos para otimizar CUDs, consumo de armazenamento e dimensionamento correto do ESXi.
- Usar recomendações de nuvem: o Active Assist é um portfólio de ferramentas inteligentes que ajudam a otimizar suas operações na nuvem. Essas ferramentas oferecem recomendações úteis para reduzir custos, aumentar o desempenho, melhorar a segurança e até mesmo tomar decisões com foco na sustentabilidade. Por exemplo, insights de dimensionamento de VM podem ajudar a otimizar a alocação de recursos e evitar gastos desnecessários.
- Correlacionar a utilização de recursos com a performance: analise a relação entre a utilização de recursos e o desempenho do aplicativo para determinar se é possível fazer downgrade para recursos mais baratos sem afetar a experiência do usuário.
Equilibre as necessidades de solução de problemas com o custo
Dados de observabilidade detalhados podem ajudar a diagnosticar e resolver problemas. No entanto, armazenar quantidades excessivas de dados de observabilidade ou exportar dados desnecessários para ferramentas de monitoramento externas pode gerar custos desnecessários. Para uma solução de problemas eficiente, considere as seguintes recomendações:
- Coletar dados suficientes para solução de problemas: verifique se a solução de monitoramento captura dados suficientes para diagnosticar e resolver problemas de forma eficiente quando eles surgirem. Esses dados podem incluir registros, rastros e métricas em vários níveis de granularidade.
- Usar amostragem e agregação: equilibre a necessidade de dados detalhados com considerações de custo usando técnicas de amostragem e agregação. Com essa abordagem, é possível coletar dados representativos sem incorrer em custos de armazenamento excessivos.
- Entenda os modelos de preços das ferramentas e dos serviços de monitoramento: avalie diferentes soluções de monitoramento e escolha as opções que se alinham às necessidades, ao orçamento e aos padrões de uso específicos do seu projeto. Considere fatores como volume de dados, requisitos de retenção e os recursos necessários ao fazer a seleção.
- Analise regularmente a configuração de monitoramento: evite coletar dados em excesso removendo métricas ou registros desnecessários.
Personalize a coleta de dados para funções e defina políticas de retenção específicas
Considere as necessidades de dados específicas de diferentes funções. Por exemplo, os desenvolvedores podem precisar principalmente de acesso a rastros e registros no nível do aplicativo, enquanto os administradores de TI podem se concentrar em registros do sistema e métricas de infraestrutura. Ao personalizar a coleta de dados, você pode reduzir custos de armazenamento desnecessários e evitar sobrecarregar os usuários com informações irrelevantes.
Além disso, é possível definir políticas de retenção com base nas necessidades de cada função e em quaisquer requisitos regulatórios. Por exemplo, os desenvolvedores podem precisar de acesso a registros detalhados por um período mais curto, enquanto analistas financeiros podem precisar de dados de longo prazo.
Considere os requisitos regulatórios e de compliance
Em alguns setores, os requisitos regulamentares exigem a retenção de dados. Para evitar riscos legais e financeiros, é necessário garantir que suas práticas de monitoramento e retenção de dados ajudem você a obedecer às regulamentações relevantes. Ao mesmo tempo, é preciso manter a eficiência de custos. Considere as seguintes recomendações:
- Determine os requisitos específicos de retenção de dados para seu setor ou região e verifique se a estratégia de monitoramento atende a esses requisitos.
- Implemente mecanismos adequados de arquivamento e recuperação de dados para atender às necessidades de auditoria e conformidade, minimizando os custos de armazenamento.
Implementar alertas inteligentes
O alerta ajuda a detectar e resolver problemas em tempo hábil. No entanto, é necessário encontrar um equilíbrio entre uma abordagem que mantenha você informado e outra que o sobrecarregue com notificações. Ao projetar sistemas de alerta inteligentes, é possível priorizar problemas críticos que têm maior impacto nos negócios. Considere estas recomendações:
- Priorize problemas que afetam os clientes: crie alertas que sejam acionados rapidamente para problemas que afetam diretamente a experiência do cliente, como falhas no site, tempos de resposta lentos ou falhas na transação.
- Ajustar para problemas temporários: use limites e mecanismos de atraso adequados para evitar alertas desnecessários para problemas temporários ou problemas de autocorreção do sistema que não afetam os clientes.
- Personalizar a gravidade do alerta: diferencie os alertas críticos e não críticos para garantir que os problemas mais urgentes recebam atenção imediata.
- Use os canais de notificação com sabedoria: escolha os canais adequados para notificações de alerta (e-mail, SMS ou pager) com base na gravidade e urgência dos alertas.