O pilar de otimização de custos no Google Cloud Well-Architected Framework 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 pela gestão estratégica de custos.
- Arquitetos, desenvolvedores, administradores e operadores que tomam decisões que afetam o custo em todas as etapas da jornada de uma organização na nuvem.
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 operacional 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 são consumidos. Essa diferença fundamental destaca a importância dos seguintes princípios básicos da 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 Well-Architected Framework são mapeadas para os seguintes princípios básicos:
- Alinhe os gastos com a nuvem ao valor comercial: garanta que seus recursos de nuvem ofereçam um valor comercial mensurável alinhando os gastos de TI aos objetivos de negócios.
- Promova uma cultura de conscientização sobre custos: garanta que as pessoas em toda a organização considerem o impacto financeiro das decisões e atividades delas e tenham acesso às informações de custo necessárias para tomar decisões embasadas.
- Otimizar o uso de recursos: provisione apenas os recursos necessários e pague somente pelos recursos consumidos.
- Otimize continuamente: 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 elas se tornem problemas significativos.
Esses princípios estão alinhados aos princípios básicos da Cloud FinOps. 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, 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 | Arquiteta de soluções
- Daniel Lees | Arquiteto de segurança do Cloud
- Eric Lam | Head de FinOps do Google Cloud
- Fernando Rubbo | Arquiteto de soluções do Cloud
- Filipe Gracio, PhD | Engenheiro de clientes, especialista em IA/ML
- Gary Harmson | Arquiteto principal
- Jose Andrade | Engenheiro de clientes, especialista em SRE
- 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 | Líder do programa, Google Cloud Well-Architected Framework
- Samantha He | Redatora técnica
- Steve McGhee | Defensor de confiabilidade
- Sergei Lilichenko, Arquiteto de soluções
- Wade Holmes | Diretor global de soluções
- 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 Well-Architected Framework fornece recomendações para alinhar seu uso de recursos do Google Cloud 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 deles. 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 o trabalho 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. A menor 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 melhor valor, 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 tempo de inatividade, perda de dados ou violações de segurança.
- Impacto nos negócios: os benefícios potenciais 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: suas equipes são incentivadas a priorizar soluções que oferecem o maior valor comercial e a considerar as implicações de custo 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 comercial e o TCO de várias opções de implantação. Assim, elas escolhem recursos econômicos.
- Alinhamento entre equipes: a colaboração multifuncional entre as equipes de negócios, finanças e técnicas garante que as decisões relacionadas à 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. Assim, suas equipes podem se concentrar nas atividades principais da empresa. Elas podem acelerar a entrega 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 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 suas necessidades de processamento do Apache Hadoop ou do Apache Spark, use o Dataproc e o Dataproc sem servidor. O faturamento 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 metas importantes. No entanto, é preciso equilibrar essas metas com a necessidade de uma infraestrutura flexível que permita inovar rapidamente, responder a mudanças com agilidade e entregar valor mais rápido. Confira alguns exemplos de como alcançar esse equilíbrio:
- Adote as métricas da DORA para o desempenho da entrega de software. Métricas como taxa de falha nas mudanças (CFR), tempo de detecção (TTD) e tempo de restauração (TTR) podem ajudar a identificar e corrigir gargalos nos 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 de engenharia de confiabilidade do site (SRE) para melhorar a confiabilidade operacional. O foco da SRE em automação, capacidade de observação e resposta a incidentes pode levar à redução do 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ê evita 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 oferecendo às suas equipes ferramentas de autoatendimento para otimização de custos e observabilidade, além de plataformas de gerenciamento de recursos. Permita que eles provisionem, gerenciem e otimizem os recursos de nuvem de forma 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, sem deixar de lado a eficiência de custos.
Adotar e implementar as FinOps
Adote o FinOps para estabelecer um ambiente colaborativo em que todos tenham autonomia para tomar decisões embasadas que equilibrem custo e valor. O FinOps promove a responsabilidade financeira e a otimização de custos eficaz na nuvem.
Promova uma mentalidade orientada a valor e consciente do custo total de propriedade
Incentive os membros da equipe a adotar uma atitude holística em relação aos gastos na 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 no processo de entrega de software e identificar áreas para melhoria. Implemente o custo unitário para seus aplicativos e serviços e tenha uma compreensão detalhada dos 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 Well-Architected Framework fornece 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 custos necessárias para tomar decisões conscientes.
Normalmente, a responsabilidade pela gestão 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 noGoogle Cloud. Ao compartilhar dados de custos de maneira adequada, você capacita 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 (proprietários de produtos, desenvolvedores, engenheiros de implantação, administradores e analistas financeiros) precisam ter visibilidade dos dados de custo relevantes e da 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 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), permitindo que as equipes identifiquem estratégias econômicas.
Nem todo mundo precisa de acesso aos dados de custo brutos. No entanto, é fundamental promover a conscientização sobre custos em todas as funções, porque as decisões individuais podem afetar os custos.
Ao promover a visibilidade dos custos e garantir a propriedade clara das práticas de gestão de custos, você garante que todos estejam cientes das implicações financeiras das escolhas e 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 necessárias para tomar decisões fundamentadas, considere as seguintes recomendações.
Fornecer visibilidade dos custos em toda a organização
Para alcançar a visibilidade de custos em toda a organização, as equipes responsáveis pela gestão 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, considerando descontos e custos compartilhados. Estabeleça processos de orçamento claros e padronizados que se alinhem às metas da sua organização e permitam o gerenciamento proativo de custos.
- Use ferramentas padronizadas de gestão de custos e visibilidade: use ferramentas adequadas que forneçam insights em tempo real sobre gastos na nuvem e gerem snapshots regulares (por exemplo, semanais) da progressão de custos. Essas ferramentas permitem o orçamento e a previsão proativos, além da identificação de oportunidades de otimização. As ferramentas podem ser de provedores de nuvem (como o painel do Faturamento do Google Cloud), soluções de terceiros ou de código aberto, como a solução de atribuição de custos.
- Implemente 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 responsabilidade 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õ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 sua organização tiver restrições quanto ao compartilhamento de dados de custos brutos devido a questões comerciais, procure abordagens alternativas para compartilhar informações e insights de custos. Por exemplo, compartilhe 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 da nuvem são cobrados
Os preços dos recursos do Google Cloud podem variar entre 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 recursos do Google Cloud são faturados, use a calculadora de preços doGoogle Cloud e informações de preços específicas do produto (por exemplo, preços do Google Kubernetes Engine (GKE)).
Entenda as opções de otimização de custos com base em recursos
Para cada tipo de recurso de nuvem que você planeja usar, conheça estratégias para otimizar a utilização e a eficiência. As estratégias incluem ajuste de tamanho, escalonamento automático e adoção de tecnologias sem servidor quando apropriado. Confira a seguir alguns exemplos de opções de otimização de custos para alguns produtos do Google Cloud :
- 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 de solicitações).
- É possível comprar compromissos de slots 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 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.
Entenda as opções de otimização de custos com base em descontos
Conheça os programas de desconto oferecidos pelo Google Cloud , como os exemplos a seguir:
- Descontos por compromisso de uso (CUDs): os CUDs são adequados para recursos com uso previsível e constante. Com os CUDs, você recebe reduções significativas no preço em troca do compromisso de usar recursos específicos por um período (normalmente de um a três anos). Você também pode usar a renovação automática de CUD para não precisar recomprar os compromissos manualmente quando eles expirarem.
- Descontos por uso prolongado: em determinados produtos do Google Cloud , como o Compute Engine e o GKE, você pode receber créditos de desconto automáticos após o uso contínuo de recursos além de limites de duração específicos.
- VMs spot: para cargas de trabalho tolerantes a falhas e flexíveis, 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í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 sua carga de trabalho e aos padrões de uso.
Incorporar estimativas de custos aos projetos de arquitetura
Incentive 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 bem fundamentadas que se alinham aos objetivos técnicos e financeiros.
Use um conjunto consistente e padrão de rótulos para todos os recursos.
É possível usar 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 formal de rotulagem 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 a rotulagem em todos os recursos criados. Para aumentar 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 membros da equipe
Ao compartilhar relatórios de custos com os membros da equipe, você os capacita a assumir 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:
- Relatórios periódicos de custos: relatórios regulares informam às equipes sobre os gastos atuais na nuvem. Normalmente, esses relatórios são exportações de planilhas. 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 práticas sem sobrecarregar os destinatários com detalhes desnecessários, eles precisam ser personalizados para os públicos-alvo. A configuração de relatórios personalizados é uma etapa fundamental para ter mais visibilidade e gerenciamento de custos em tempo real e interativos.
- Notificações automáticas: é possível configurar relatórios de custos 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 para quem pode agir, os alertas automatizados incentivam a ação imediata e promovem uma abordagem proativa para a otimização de custos.
- Painéis: use os painéis de faturamento integrados no Google Cloud para receber insights sobre detalhamentos de custos e identificar oportunidades de otimização de custos.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.Google Cloud 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 papéis (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, além de ativar o controle de acesso refinado com permissões baseadas em função.
- Relatórios de custos de várias nuvens: para implantações em várias nuvens, 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 custos 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 arquitetado 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ços doGoogle 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 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 produtos doGoogle 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 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 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 sigam 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 Google Cloud como Compute Engine ou 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 bem arquitetado fornece recomendações para ajudar você a otimizar o custo das suas 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 extrair o máximo valor dos seus gastos na nuvem, é necessário 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, é preciso monitorar e analisar proativamente o ambiente de nuvem e fazer 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 resolver ineficiências, adaptar-se às necessidades em constante mudança e alinhar continuamente os gastos com a nuvem às metas estratégicas de negócios. Para equilibrar a observabilidade abrangente com o custo-benefício, entenda os custos e benefícios de monitorar o uso de recursos e use estratégias adequadas de otimização e melhoria de processos.
Recomendações
Para monitorar seu ambiente do Google Cloud de maneira eficaz e otimizar o custo continuamente, considere as seguintes recomendações.
Foco em métricas relevantes para os negócios
Um monitoramento eficaz começa com a identificação das métricas mais importantes para sua empresa e seus clientes. Entre elas estão:
- Métricas de experiência do usuário: latência, taxas de erro, capacidade de processamento 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 comerciais: 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 & Assessment (DORA): métricas como frequência de implantação, tempo de lead para mudanças, taxa de falha nas mudanças e tempo de restauração fornecem insights sobre a eficiência e a confiabilidade do seu processo de entrega de software. Ao melhorar essas métricas, você pode aumentar a produtividade, reduzir o tempo de inatividade e otimizar os custos.
- Métricas de engenharia de confiabilidade do site (SRE): os orçamentos 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, os orçamentos de erro capacitam as equipes a inovar e implantar mudanças com mais confiança, sabendo sua 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 tempo de inatividade prolongado.
Usar a observabilidade para otimizar recursos
Confira a seguir recomendações para usar a capacidade de observação e identificar gargalos e recursos subutilizados nos seus implantações na nuvem:
- Monitore 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 de VM inativos. No Google Kubernetes Engine (GKE), é possível conferir um detalhamento dos custos e métricas de otimização relacionadas a custos. Para o Google Cloud VMware Engine, analise a utilização de recursos para otimizar CUDs, consumo de armazenamento e redimensionamento do ESXi.
- Use recomendações da nuvem: o Active Assist é um portfólio de ferramentas inteligentes que ajudam a otimizar suas operações na nuvem. Essas ferramentas oferecem recomendações práticas para reduzir custos, aumentar o desempenho, melhorar a segurança e até mesmo tomar decisões focadas na sustentabilidade. Por exemplo, os insights de dimensionamento correto de VMs podem ajudar a otimizar a alocação de recursos e evitar gastos desnecessários.
- Correlacione 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 menos caros sem afetar a experiência do usuário.
Equilibrar as necessidades de solução de problemas com o custo
Dados detalhados de observabilidade 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:
- Colete dados suficientes para a solução de problemas: verifique se a solução de monitoramento captura dados suficientes para diagnosticar e resolver problemas de maneira eficiente quando eles surgem. Esses dados podem incluir registros, rastreamentos e métricas em vários níveis de granularidade.
- Use amostragem e agregação: equilibre a necessidade de dados detalhados com considerações de custo usando técnicas de amostragem e agregação. Essa abordagem permite coletar dados representativos sem incorrer em custos de armazenamento excessivos.
- Entenda os modelos de preços das suas ferramentas e serviços de monitoramento: avalie diferentes soluções de monitoramento e escolha opções que se alinhem às necessidades específicas, ao orçamento e aos padrões de uso do seu projeto. Considere fatores como volume de dados, requisitos de retenção e recursos necessários ao fazer sua seleção.
- Revise regularmente sua configuração de monitoramento: evite coletar dados em excesso removendo métricas ou registros desnecessários.
Personalizar a coleta de dados para funções e definir políticas de retenção específicas para cada função
Considere as necessidades específicas de dados de diferentes funções. Por exemplo, os desenvolvedores podem precisar principalmente de acesso a rastreamentos 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 requisitos regulamentares. Por exemplo, os desenvolvedores podem precisar de acesso a registros detalhados por um período mais curto, enquanto os analistas financeiros podem exigir dados de longo prazo.
Considere os requisitos regulatórios e de compliance
Em alguns setores, os requisitos regulatórios exigem a retenção de dados. Para evitar riscos legais e financeiros, verifique se as práticas de monitoramento e retenção de dados ajudam você a obedecer às 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 para seu setor ou região e garanta que sua estratégia de monitoramento atenda 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
Os alertas ajudam a detectar e resolver problemas em tempo hábil. No entanto, é necessário equilibrar uma abordagem que mantém você informado e outra que o sobrecarrega com notificações. Ao criar sistemas de alerta inteligentes, você pode priorizar problemas críticos que têm um impacto maior 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 interrupções do site, tempos de resposta lentos ou falhas de transação.
- Ajuste para problemas temporários: use mecanismos de atraso e limites adequados para evitar alertas desnecessários de problemas temporários ou problemas de sistema de autocura que não afetam os clientes.
- Personalizar a gravidade do alerta: para garantir que os problemas mais urgentes recebam atenção imediata, diferencie entre alertas críticos e não críticos.
- Use os canais de notificação com sabedoria: escolha os canais adequados para notificações de alerta (e-mail, SMS ou paging) com base na gravidade e urgência dos alertas.