O pilar de otimização de custos do Google Cloud framework bem arquitetado descreve princípios e recomendações para otimizar o custo das cargas de trabalho no Google Cloud.
O público-alvo é o seguinte:
- CTOs, CIOs, CFOs e outros executivos responsáveis pelo gerenciamento de custos estratégicos.
- Arquitetos, desenvolvedores, administradores e operadores que tomam decisões que afetam os custos em todas as etapas da jornada de uma organização para a nuvem.
Os modelos de custo para cargas de trabalho no local e na nuvem diferem significativamente. Os custos de TI no local incluem despesas de capital (CapEx) e despesas operacionais (OpEx). Os ativos de hardware e software locais são adquiridos e os custos de aquisição são descontinuados durante a vida útil dos ativos. Na nuvem, os custos da maioria dos recursos são tratados como OpEx, que são incorridos quando os recursos da nuvem são consumidos. Essa diferença fundamental ressalta a importância dos princípios a seguir 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 arquitetado.
Princípios básicos
As recomendações no pilar de otimização de custos do framework bem arquitetado são mapeadas de acordo com os seguintes princípios fundamentais:
- Alinhar os gastos de nuvem com o valor comercial: garanta que seus recursos de nuvem agreguem valor comercial mensurável alinhando os gastos de TI com os objetivos de negócios.
- Promover uma cultura de conscientização de custos: garanta que as pessoas na organização considerem o impacto de custos das decisões e atividades delas e tenham acesso às informações de custo necessárias para tomar decisões fundamentadas.
- Otimize o uso de recursos: provisione apenas os recursos necessários e pague apenas pelos recursos que consumir.
- Otimizar continuamente: monitore continuamente o uso e os custos de recursos da nuvem e faça ajustes proativos conforme necessário para otimizar seus gastos. Essa abordagem envolve identificar e solucionar possíveis ineficiências de custo antes que se tornem problemas significativos.
Esses princípios estão alinhados com os princípios fundamentais do Cloud FinOps (em inglês). O FinOps é relevante para qualquer organização, independentemente do tamanho ou da maturidade na nuvem. Ao adotar esses princípios e seguir as recomendações relacionadas, é possível controlar e otimizar os custos ao longo de 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, diretor de FinOps do Google Cloud
- Fernando Rubbo | Arquiteto de soluções em nuvem
- Filipe Gracio, PhD | Engenheiro de clientes
- Gary Harmson | Arquiteto principal
- 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
- Samantha He | Redatora técnica
- Steve McGhee | Defensor de confiabilidade
- Sergei Lilichenko, Arquiteto de soluções
- Wade Holmes | Diretor de soluções globais
- Zach Seils | Especialista em rede
Alinhe os gastos com a nuvem ao valor comercial
Esse princípio do pilar de otimização de custos do Google Cloud framework bem-arquitetado fornece recomendações para alinhar o uso de Google Cloud recursos às metas de negócios da organização.
Visão geral do princípio
Para gerenciar com eficiência os custos da nuvem, é preciso maximizar o valor comercial que os recursos de nuvem fornecem 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 gerenciá-los. Por exemplo, as 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 escalonar as VMs, o TCO pode aumentar. Por outro lado, serviços sem servidor como o Cloud Run podem oferecer maior valor comercial. O overhead operacional menor permite que a equipe se concentre nas atividades principais e ajuda a aumentar a agilidade.
Para garantir que os recursos da nuvem ofereçam o valor ideal, avalie os seguintes fatores:
- Custos de provisionamento e uso: as despesas incorridas quando você compra, provisiona ou consome 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 ter para gerenciar problemas como 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 menor tempo de lançamento.
Ao alinhar os gastos com a nuvem ao valor comercial, você obtém os seguintes benefícios:
- Decisões orientadas por valor: as equipes são incentivadas a priorizar as soluções que entregam o maior valor comercial e a considerar as implicações de custo de curto e longo prazo.
- Escolha de recursos informados: suas equipes têm as informações e o conhecimento necessários para avaliar o valor comercial e o TCO de várias opções de implantação. Por isso, escolhem recursos econômicos.
- Alinhamento entre equipes: a colaboração multifuncional entre as equipes técnicas, financeiras e de negócios garante que as decisões da nuvem estejam alinhadas com os objetivos gerais da organização.
Recomendações
Para alinhar os gastos com a nuvem aos objetivos de negócio, considere as recomendações a seguir.
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. Isso permite que as equipes se concentrem em suas principais atividades de negócios. Elas podem acelerar a entrega de novos recursos e funcionalidades e ajudar a impulsionar a inovação e o valor.
Confira abaixo exemplos de como implementar essa recomendação:
- Para executar bancos de dados de servidor 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 as necessidades de processamento do Apache Hadoop ou Apache Spark, use o Dataproc e o Dataproc sem servidor. O faturamento por segundo pode ajudar a alcançar um TCO significativamente mais baixo em comparação com data lakes no local.
Equilibre eficiência de custos e agilidade nos negócios
Controlar custos e otimizar a utilização de recursos são metas importantes. No entanto, você precisa equilibrar essas metas com a necessidade de uma infraestrutura flexível que permita inovar, responder às mudanças e agregar valor com mais rapidez. Veja a seguir exemplos de como você pode atingir esse equilíbrio:
- Adotar as métricas do DORA (em inglês) para o desempenho de entrega de software. Métricas como taxa de falha nas mudanças (CFR, na sigla em inglês), tempo para detecção (TTD) e tempo para restauração (TTR, na sigla em inglês) 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, é possível ter eficiência operacional e agilidade de negócios.
- Siga as práticas de engenharia de confiabilidade do site (SRE, na sigla em inglês) para melhorar a confiabilidade operacional. O foco da SRE na automação, observabilidade e resposta a incidentes pode reduzir o tempo de inatividade, reduzir o tempo de recuperação e aumentar a satisfação do cliente. Ao minimizar o tempo de inatividade e melhorar a confiabilidade operacional, é possível 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 por autoatendimento
Incentive uma cultura de experimentação e exploração fornecendo às 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 maneira autônoma. Essa abordagem ajuda a promover um senso de propriedade, acelerar a inovação e garantir que as equipes possam responder rapidamente às mudanças nas necessidades, tendo em mente a eficiência de custos.
Adotar e implementar as FinOps
Adotar o FinOps para estabelecer um ambiente colaborativo em que todos possam tomar decisões informadas que equilibrem custo e valor. O FinOps promove a responsabilidade financeira e a otimização eficaz de custos na nuvem.
Promova uma mentalidade orientada por valor e ciente do TCO
Incentive os membros da sua equipe a adotar uma atitude holística em relação aos gastos com nuvem, com ênfase no TCO e não apenas nos custos iniciais. Use técnicas como o mapeamento do fluxo de valor para visualizar e analisar o fluxo de valor pelo processo de entrega de software e identificar áreas de melhoria. Implemente o custo unitário para seus aplicativos e serviços para ter uma compreensão granular dos fatores de custo e descobrir oportunidades de otimização. Para mais informações, consulte Maximizar 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 arquitetado fornece recomendações para promover a conscientização de 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 fundamentadas.
Convencionalmente, a responsabilidade pelo gerenciamento de custos pode ser centralizada para algumas partes interessadas selecionadas e focada principalmente nas decisões iniciais da arquitetura do projeto. No entanto, os membros da equipe em todos os papéis de usuário da nuvem (analista, arquiteto, desenvolvedor ou administrador) podem ajudar a reduzir o custo dos recursos emGoogle Cloud. Ao compartilhar os dados de custo adequadamente, você pode capacitar os membros da equipe a tomar decisões econômicas em todos os processos de desenvolvimento e implantação.
Visão geral do princípio
As partes interessadas em várias funções (proprietários de produtos, desenvolvedores, engenheiros de implantação, administradores e analistas financeiros) precisam visualizar os dados de custo relevantes e a relação deles com o valor comercial. Ao provisionar e gerenciar recursos da nuvem, eles precisam dos seguintes dados:
- Custos de recursos projetados: estimativas de custo no momento da criação 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 de orçamento.
- Custos mapeados para métricas de negócios: insights sobre como os gastos na nuvem afetam os indicadores principais de desempenho (KPIs) para permitir que as equipes identifiquem estratégias econômicas.
Nem todos os indivíduos precisam de acesso a dados brutos de custo. No entanto, promover o reconhecimento de custos em todos os papéis é crucial, porque decisões individuais podem afetar os custos.
Ao promover a visibilidade dos custos e garantir uma propriedade clara das práticas de gerenciamento, você garante que todos estejam cientes das implicações financeiras das escolhas deles e que todos contribuam ativamente para as metas de otimização de custos da organização. Seja por meio de uma equipe de FinOps centralizada ou um modelo distribuído, estabelecer a responsabilidade é crucial para esforços eficazes de otimização de custos.
Recomendações
Para promover o reconhecimento de custos e garantir que os membros da equipe tenham as informações de custo necessárias para tomar decisões informadas, considere as recomendações a seguir.
Fornecer visibilidade de custos em toda a organização
Para conseguir visibilidade de custos em toda a organização, as equipes responsáveis pelo gerenciamento de custos podem realizar as seguintes ações:
- Padronizar 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, alinhados às metas da organização, e viabilize o gerenciamento de custos proativo.
- Use ferramentas padronizadas de gerenciamento de custos e visibilidade: use ferramentas adequadas que forneçam insights em tempo real sobre os gastos na nuvem e gerem snapshots regulares de progressão de custos (por exemplo, semanais). Essas ferramentas permitem orçamento proativo, previsão e identificação de oportunidades de otimização. Podem ser ferramentas de provedor de nuvem (como o painel do Google Cloud Billing), soluções de terceiros ou soluções 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 da nuvem para cada equipe ou projeto. Essa alocação dá às equipes um senso de propriedade sobre os gastos de nuvem e as incentiva a tomar decisões econômicas dentro do orçamento alocado.
- Promover a transparência: incentive as equipes a discutir as implicações de custo durante os processos de design e tomada de decisões. 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 rankings ou programas de reconhecimento. Se a organização tiver restrições no compartilhamento de dados de custo bruto devido a preocupações de negócios, explore abordagens alternativas para compartilhar informações e insights de custos. Por exemplo, considere compartilhar métricas agregadas (como o custo total de um ambiente ou recurso) ou relativas (como o custo médio por transação ou usuário).
Entender como os recursos de nuvem são cobrados
Os preços dos recursos de 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 Google Cloud os 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 com base 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, escalonamento automático e adoção de tecnologias sem servidor quando apropriado. Veja a seguir 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 adquirir compromissos de slot do BigQuery para economizar dinheiro na análise de dados.
- O GKE fornece métricas detalhadas para ajudar você a entender as opções de otimização de custos.
- Entenda como os preços de rede podem 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 de 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 externos do balanceador de carga de aplicativo.
Entender as opções de otimização de custos com base em descontos
Conheça os programas de desconto que Google Cloud oferecem, como os exemplos a seguir:
- Descontos por compromisso de uso (CUDs): os CUDs são adequados para recursos com uso previsível e estável. Os CUDs permitem que você tenha reduções significativas no preço em troca do compromisso de uso específico de recursos durante um período (normalmente de um a três anos). Também é possível usar a renovação automática de CUD para evitar a recompra manual de compromissos quando eles expirarem.
- Descontos por uso prolongado: para determinados produtos Google Cloud , 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 dos limites de duração específicos.
- VMs spot: para cargas de trabalho flexíveis e tolerantes a falhas, elas 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 preventivamente as VMs spot para recuperar a capacidade. As VMs spot são adequadas para jobs em lote que toleram a preempção e não têm requisitos de alta disponibilidade.
- Descontos para opções de produtos específicos: 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 da carga de trabalho e aos padrões de uso.
Incorporar estimativas de custo em blueprints de arquitetura
Incentivar as equipes a desenvolver projetos 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 os custos de maneira proativa e tomem decisões informadas que se alinhem aos objetivos técnicos e financeiros.
Usar 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 para diferentes projetos, departamentos ou centros de custos. Definir uma política de rotulagem formal que se alinhe com as necessidades das principais partes interessadas em sua organização ajuda a tornar os custos visíveis de forma mais ampla. Use rótulos para filtrar dados de uso e custo de recursos com base no público-alvo.
Use ferramentas de automação como o Terraform para aplicar a 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.
Compartilhe relatórios de custo com os membros da equipe
Ao compartilhar relatórios de custo com os membros da equipe, você os capacita a assumir a propriedade dos gastos com a nuvem. Essa prática permite a tomada de decisões com melhor custo-benefício, a otimização contínua de custos e melhorias sistemáticas no seu modelo de alocação de custos.
Os relatórios de custo podem ser de vários tipos, incluindo os seguintes:
- Relatórios periódicos: informam as equipes sobre os gastos atuais com a nuvem. Convencionalmente, esses relatórios podem ser exportações de planilha. Os métodos mais eficazes incluem e-mails automatizados e painéis especializados. Para garantir que os relatórios de custos forneçam informações relevantes e úteis sem sobrecarregar os destinatários com detalhes desnecessários, eles precisam ser adaptados aos públicos-alvo. Configurar relatórios personalizados é uma etapa fundamental para ter visibilidade e gerenciamento de custos mais em tempo real e interativos.
- Notificações automatizadas: configure 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 custos. Ao fornecer informações oportunas diretamente às pessoas que podem agir com base nelas, os alertas automáticos incentivam a ação imediata e promovem uma abordagem proativa para a otimização de custos.
- Google Cloud Painéis: é possível usar os painéis de faturamento integrados no Google Cloud para receber insights sobre detalhamentos de custos e identificar oportunidades de otimização de custos. Google Cloud Também fornece o FinOps Hub para ajudar a monitorar a economia e receber recomendações para otimização de custos. Um mecanismo de IA alimenta o hub do FinOps para recomendar oportunidades de otimização de custos para todos os recursos implantados no momento. Para controlar o acesso a essas recomendações, implemente o controle de acesso baseado em papéis (RBAC, na sigla em inglês).
- Painéis personalizados: é possível criar painéis personalizados exportando dados de custo para um banco de dados de análise, como o BigQuery. Usar uma ferramenta de visualização, como o Looker Studio, para se conectar ao banco de dados de análise e criar relatórios interativos, além de ativar o controle de acesso refinado com permissões baseadas em papéis.
- Relatórios de custos de várias nuvens: para implantações de várias nuvens, você precisa de uma visão unificada dos custos de todos os provedores de nuvem para garantir análise, orçamento e otimização abrangentes. Use ferramentas como o BigQuery para centralizar e analisar dados de custo de vários provedores de nuvem e use o Looker Studio para criar relatórios interativos específicos da equipe.
Otimizar o uso de recursos
Esse princípio do pilar de otimização de custos do Google Cloud framework bem-arquitetado fornece recomendações para ajudar você a planejar e provisionar recursos para atender aos requisitos e padrões de consumo das cargas de trabalho na nuvem.
Visão geral do princípio
Para otimizar o custo dos recursos da nuvem, você precisa entender completamente os requisitos de recursos e os padrões de carga das cargas de trabalho. Esse entendimento é a base para um modelo de custo bem definido que permite prever o custo total de propriedade (TCO) e identificar fatores de custo ao longo de sua jornada de adoção da nuvem. Ao analisar e prever proativamente os gastos da nuvem, é possível fazer escolhas informadas sobre o provisionamento de recursos, a utilização e a otimização de custos. Essa abordagem permite controlar os gastos da nuvem, evitar o provisionamento excessivo e garantir que os recursos da nuvem estejam alinhados com as 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 curtos períodos, mas talvez não precisem de alta disponibilidade. Por outro lado, um ambiente de produção normalmente precisa de alta disponibilidade. Para maximizar a utilização de seus recursos, defina requisitos específicos do ambiente com base em suas necessidades de negócios. 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 cargas de trabalho na nuvem pode ter requisitos diferentes de disponibilidade, escalonabilidade, segurança e desempenho. Para otimizar os custos, você precisa alinhar as opções de recursos com os 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 de 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 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 | Ambiente flexível e de baixo custo 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 benefício da nuvem é a oportunidade de aproveitar a capacidade de computação mais apropriada 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 maneira. Faça comparações e crie perfis das cargas de trabalho. Categorize suas cargas de trabalho e faça escolhas de recursos específicas delas. Por exemplo, escolha famílias de máquinas apropriadas para VMs do Compute Engine. Essa prática ajuda a otimizar custos, possibilitar a inovação e manter o nível de disponibilidade e desempenho necessários para as cargas de trabalho.
Confira abaixo exemplos de como implementar essa recomendação:
- Para cargas de trabalho críticas que atendem a usuários distribuídos globalmente, considere usar o Spanner. O Spanner elimina a necessidade de implantações complexas de banco de dados, garantindo a confiabilidade e a consistência dos dados em todas as regiões.
- Para cargas de trabalho com níveis de carga flutuantes, use o escalonamento automático para garantir que não haja custos quando a carga estiver baixa e ainda manter capacidade suficiente para atender à carga atual. É possível configurar o escalonamento automático para muitos Google Cloud serviços, incluindo VMs do Compute Engine, clusters do Google Kubernetes Engine (GKE) e Cloud Run. Ao definir o escalonamento automático, é possível configurar limites máximos de escalonamento para garantir que os custos permaneçam dentro dos orçamentos especificados.
Selecionar regiões com base nos requisitos de custo
Para suas 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 menor custo pode não oferecer latência ideal ou não atender aos requisitos de sustentabilidade. Tome decisões embasadas sobre onde implantar as cargas de trabalho para alcançar o equilíbrio desejado. Use o Google Cloud Seletor de região para entender as vantagens e desvantagens de custo, sustentabilidade, latência e outros fatores.
Usar opções integradas de otimização de custos
Google Cloud fornecem recursos integrados para ajudar você a otimizar o uso de recursos e controlar os custos. A tabela a seguir lista exemplos de recursos de otimização de custos que podem ser usados em alguns Google Cloud produtos:
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 dos recursos da nuvem, é possível implantar vários aplicativos ou serviços na mesma infraestrutura, além de atender aos requisitos de segurança e outros requisitos dos aplicativos. Por exemplo, em ambientes de desenvolvimento e teste, é possível usar a mesma infraestrutura em 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 a extensão do 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 equipe de frota no GKE Enterprise com controles de acesso adequados.
- Use o GKE Autopilot para aproveitar técnicas de otimização de custos, como empacotamento e 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
Criar e manter um repositório de arquiteturas de referência adaptadas para atender aos requisitos de diferentes ambientes de implantação e tipos de carga de trabalho. Para otimizar o processo de design e implementação em 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 projetos 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 central de arquitetura precisam colaborar para criar novas arquiteturas de referência. Compartilhe as arquiteturas de referência em toda a organização para promover 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.
Revise as arquiteturas de referência fornecidas pelo Google para vários casos de uso e tecnologias. Essas arquiteturas de referência incorporam as práticas recomendadas para seleção, dimensionamento, configuração e implantação de recursos. Ao usar essas arquiteturas de referência, é possível acelerar o processo de desenvolvimento e economizar custos desde o início.
Aplicar a disciplina de custo usando políticas da organização
Considere usar 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 sigam soluções econômicas e provisionem recursos em locais alinhados com as 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 na 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 claros de gastos ou limites 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, é possível usar cotas e limites para ajudar a aplicar a disciplina de custos e evitar picos inesperados nos gastos. É possível exercer um controle granular sobre o consumo de recursos definindo cotas em vários níveis, incluindo projetos, serviços e até mesmo tipos específicos de recursos.
Confira abaixo exemplos de como implementar essa recomendação:
- Cotas para envolvidos no 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 dentro do projeto.
- Cotas específicas de 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 a capacidade de armazenamento que podem ser provisionadas.
- Cotas específicas de 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 estouros inesperados de custo.
- Alertas de cota: receba notificações quando o uso da sua cota (no nível do projeto) atingir uma porcentagem do valor máximo.
Ao usar cotas e limites com orçamento e monitoramento, é possível criar uma abordagem proativa e multicamadas para o controle de custos. Essa abordagem ajuda a garantir que os gastos com a nuvem permaneçam dentro dos limites definidos e alinhados aos seus objetivos de negócios. Lembre-se, esses controles de custos não são permanentes ou rígidos. Para garantir que os controles de custo permaneçam alinhados aos padrões atuais do setor e reflitam suas necessidades comerciais em evolução, é necessário analisá-los regularmente e ajustá-los para incluir novas tecnologias e práticas recomendadas.
Otimizar continuamente
Esse princípio do pilar de otimização de custos do Google Cloud framework bem arquitetado fornece recomendações para ajudar você a otimizar o custo de 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 na nuvem precisam se adaptar às mudanças nos requisitos de recursos e nos padrões de uso. Para conseguir o valor máximo dos seus gastos com a nuvem, você precisa manter a eficiência de custo e, ao mesmo tempo, continuar a apoiar os objetivos de negócios. Isso requer uma abordagem proativa e adaptável que se concentre na melhoria e otimização contínuas.
Visão geral do princípio
Para otimizar os custos continuamente, monitore e analise seu ambiente de nuvem de maneira proativa e faça os 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, se alinham às metas de negócios e fornecem insights para melhoria contínua. Essa abordagem permite identificar e lidar com ineficiências, adaptar-se a necessidades em constante mudança e alinhar continuamente os gastos de nuvem com metas de negócios estratégicas. Para equilibrar a observabilidade abrangente com a relação custo-benefício, entenda os custos e benefícios do monitoramento do uso de recursos e use estratégias apropriadas de melhoria de processo e otimização.
Recomendações
Para monitorar seu ambiente Google Cloud com eficiência e otimizar os custos continuamente, considere as recomendações a seguir.
Concentrar-se em métricas relevantes para os negócios
O monitoramento eficaz começa com a identificação das métricas mais importantes para seus negócios e clientes. Essas métricas incluem o seguinte:
- Métricas de experiência do usuário: latência, taxas de erro, capacidade e métricas de satisfação do cliente são úteis para entender a experiência dos usuários finais ao usar seus aplicativos.
- Métricas de resultados de negócios: receita, crescimento de clientes e engajamento podem ser correlacionados com o uso de recursos para identificar oportunidades de otimização de custos.
- Métricas do DevOps Research &Assessment (DORA): métricas como frequência de implantação, tempo de lead para mudanças, taxa de falha nas mudanças e tempo para restauração fornecem insights sobre a eficiência e a confiabilidade do processo de entrega de software. Ao melhorar essas métricas, é possível aumentar a produtividade, reduzir a inatividade e otimizar custos.
- Métricas de engenharia de confiabilidade do site (SRE, na sigla em inglês): as margens de erro ajudam as equipes a quantificar e gerenciar o nível aceitável de interrupção do serviço. Ao estabelecer expectativas claras de confiabilidade, as margens de erro capacitam as equipes a inovar e implantar mudanças com mais confiança, conhecendo 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 grandes interrupções ou períodos de inatividade prolongados.
Usar a observabilidade para otimização de recursos
Veja a seguir recomendações para usar a observabilidade a fim de identificar gargalos de recursos e recursos subutilizados nas implantações em nuvem:
- Monitorar a utilização de recursos: use métricas de utilização de recursos para identificar Google Cloud recursos subutilizados. Por exemplo, use métricas como utilização de CPU e memória para identificar recursos inativos da VM. No Google Kubernetes Engine (GKE), é possível ver um detalhamento dos custos e métricas de otimização relacionadas a eles. No Google Cloud VMware Engine, analise a utilização de recursos para otimizar CUDs, consumo de armazenamento e dimensionamento correto de ESXi.
- Usar recomendações da nuvem: o Active Assist é um portfólio de ferramentas inteligentes que ajuda você a otimizar suas operações na nuvem. Essas ferramentas fornecem recomendações práticas para reduzir custos, aumentar o desempenho, melhorar a segurança e até mesmo tomar decisões voltadas para a sustentabilidade. Por exemplo, os insights sobre dimensionamento de VM ajudam a otimizar a alocação de recursos e evitar gastos desnecessários.
- Correlacionar a utilização de recursos com o desempenho: 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 detalhados de observabilidade podem ajudar no diagnóstico e na solução de problemas. No entanto, armazenar quantidades excessivas de dados de observabilidade ou exportar dados desnecessários para ferramentas de monitoramento externas pode levar a custos desnecessários. Para uma solução de problemas eficiente, considere as seguintes recomendações:
- Colete dados suficientes para solucionar problemas: verifique se a solução de monitoramento captura dados suficientes para diagnosticar e resolver problemas com eficiência quando surgirem. Esses dados podem incluir registros, traces e métricas em vários níveis de granularidade.
- Usar amostragem e agregação: use técnicas de amostragem e agregação para equilibrar a necessidade de dados detalhados com as considerações de custo. Essa abordagem permite coletar dados representativos sem incorrer em custos excessivos de armazenamento.
- Entender os modelos de preços das ferramentas e dos serviços de monitoramento: avalie diferentes soluções de monitoramento e escolha opções que se alinhem às necessidades, orçamento e padrões de uso específicos do projeto. Considere fatores como volume de dados, requisitos de retenção e os recursos necessários ao fazer sua escolha.
- Revise regularmente sua configuração de monitoramento: evite coletar dados em excesso removendo métricas ou registros desnecessários.
Personalize a coleta de dados de acordo com os papéis e defina políticas de retenção específicas para cada função
Considere as necessidades específicas dos dados de diferentes papéis. Por exemplo, os desenvolvedores podem precisar principalmente de acesso a traces 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ê reduz os custos de armazenamento desnecessários e evita 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 nos requisitos regulatórios. Por exemplo, os desenvolvedores podem precisar de acesso a registros detalhados por um período mais curto, enquanto os analistas financeiros podem precisar de dados de longo prazo.
Considere os requisitos regulatórios e de compliance
Em alguns setores, requisitos regulatórios exigem a retenção de dados. Para evitar riscos jurídicos e financeiros, você precisa garantir que suas práticas de monitoramento e retenção de dados ajudem a cumprir as regulamentações relevantes. Ao mesmo tempo, você precisa manter a eficiência de custos. Considere as seguintes recomendações:
- Determine os requisitos específicos de retenção de dados do seu setor ou região e garanta que sua estratégia de monitoramento atenda aos requisitos desses requisitos.
- Implemente mecanismos apropriados de recuperação e arquivamento de dados para atender às necessidades de auditoria e conformidade, minimizando os custos de armazenamento.
Implementar alertas inteligentes
Os alertas ajudam a detectar e resolver problemas em tempo hábil. No entanto, é necessário equilíbrio entre uma abordagem que mantém você informado e uma que sobrecarrega você com notificações. Ao projetar sistemas de alertas inteligentes, você pode priorizar problemas críticos com maior impacto nos negócios. Considere as seguintes 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 interrupções do site, tempos de resposta lentos ou falhas em transações.
- Ajuste para problemas temporários: use limites e mecanismos de atraso adequados para evitar alertas desnecessários para problemas temporários ou problemas de autorrecuperação do sistema que não afetam os clientes.
- Personalize a gravidade do alerta: para garantir que os problemas mais urgentes recebam atenção imediata, diferenciando alertas críticos e não críticos.
- Use canais de notificação com sabedoria: escolha canais apropriados para notificações de alerta (e-mail, SMS ou paginação) com base na gravidade e na urgência dos alertas.