Tudo é melhor como código de computador: o uso de FinOps para gerir os custos de nuvem

Observação: Nós nos empenhamos ao máximo para manter o espírito e as nuances originais de nossos artigos. Porém, pedimos desculpas desde já por quaisquer erros de tradução que você venha a notar. Seu feedback é bem-vindo através do e-mail reader_input@mckinsey.com

Isto soa familiar? Uma empresa gasta mais de $ 50 milhões por ano com serviços de nuvem, contando com uma pequena equipe de FinOps (prática que combina finanças, tecnologia e operações para otimizar os custos de nuvem) dedicada a acompanhar as despesas. Essa equipe, apoiada por prestadores de serviços externos, usa várias soluções para monitorar e controlar os gastos e identificar ineficiências e oportunidades de melhoria. No entanto, o desperdício de recursos de nuvem persiste, desde o armazenamento de dados desnecessários até o uso de serviços excessivamente caros.

Essas situações não são incomuns. Analisamos mais de $ 3 bilhões em gastos com nuvem em diversos setores e organizações e constatamos que a maioria das organizações tinha economias de custo adicionais inexploradas de 10% a 20% (vide box “Metodologia”). Porém, mesmo quando uma oportunidade significativa é identificada, as equipes de FinOps geralmente acham difícil obter economias fora de suas atribuições. Um dos principais motivos é que os engenheiros não têm incentivos nem acesso para atuar sobre os custos de nuvem.1 As ações para otimizar os custos costumam ser deixadas de lado por esses profissionais, que já estão sobrecarregados pelas várias prioridades da empresa, a implementação de ações de resiliência e a melhoria da segurança.

Por isso, algumas organizações estão adotando a filosofia de “tudo como código de computador” para FinOps, semelhante à abordagem utilizada em segurança e infraestrutura.2 O FinOps como código (FaC, na abreviação em inglês) ajuda a reduzir os custos por meio da integração automática das melhores práticas de FinOps aos fluxos de trabalho dos engenheiros. Quando combinado com técnicas de observabilidade e um conjunto sólido de proteções previstas nas políticas, o FaC pode otimizar os custos.

Pelas nossas estimativas, o valor potencial do FaC é de cerca de $ 120 bilhões, com base na previsão de gastos de aproximadamente $ 440 bilhões, em termos globais, em plataforma como serviço (PaaS) e infraestrutura como serviço (IaaS) de nuvem em 2025,3 além dos cerca de 28% dos gastos com nuvem que as organizações relatam como desperdício.4

Mais insights da McKinsey em português

Confira nossa coleção de artigos em português e assine nossa newsletter mensal em português.

Navegue pela coleção

Neste artigo, analisamos o papel do FaC quando integrado ao ciclo de vida da gestão de infraestrutura (IMLC, na sigla em inglês), os benefícios para as equipes de engenharia e um conjunto de ferramentas que as organizações podem utilizar para transformar o FaC em realidade.

 

O que é FaC?

FaC é uma abordagem prática voltada a integrar os princípios de gestão financeira ao IMLC5 para gerir automaticamente os custos de nuvem. Ao usar uma combinação de automação, aplicação de políticas e serviços nativos da nuvem, o FaC permite que as organizações implementem as diretrizes de FinOps diretamente nos pipelines de desenvolvimento, implantação e provisionamento de infraestrutura6 (quadro). Além disso, o FaC pode ser usado para implementar orçamentos e práticas de arquitetura econômicas, identificar automaticamente áreas de redução de custos e oferecer suporte a uma melhor programação de recursos.

Quando o FaC é devidamente integrado ao IMLC, o FinOps reduz a dívida de arquitetura (as configurações de programação de computador complexas ou isoladas que tornam os ajustes futuros mais demorados e caros) e eleva a qualidade do código. Também reduz a necessidade de intervenção manual, usando código de computador e automação para implementar políticas de governança de custos de nuvem.

Essas novas políticas de FaC também podem ser aplicadas a uma ampla gama de contas ou ativos de nuvem granulares para otimizar seu uso e obter economia de custos. A título de exemplo, um grande varejista converteu as métricas de utilização em regras de FaC que identificavam oportunidades de desligar servidores à noite e nos fins de semana. Como resultado, o varejista reduziu seus custos de nuvem em cerca de 6%. Essa abordagem também pode ajudar a evitar possíveis desperdícios em novas áreas de crescimento, garantindo a eficiência desde o início.

Os benefícios do FaC para os engenheiros

Em comparação com uma abordagem tradicional e mais manual do FinOps, o FaC apresenta vários benefícios para as equipes de engenharia:

  • Automatizar a otimização de custos. Os provedores de nuvem estão lançando constantemente novos serviços de nuvem que podem ser mais econômicos e ter um desempenho mais eficaz. O FaC retira dos engenheiros o ônus de implementar essas mudanças e usa código para incorporá-las automaticamente a seu fluxo de trabalho. Por exemplo, um provedor de nuvem introduziu uma oferta de armazenamento otimizado que era mais barata e mais compatível com máquinas virtuais (VMs, na sigla em inglês).7 Quando as equipes de FinOps transformam essa oferta em código e a implantam, os modelos de armazenamento legados podem receber upgrade automaticamente para as novas VMs.

  • Dar accountability e visibilidade de custos em tempo real aos engenheiros. As ferramentas de FaC oferecem aos engenheiros visibilidade imediata das implicações de custo de seus projetos em um ambiente de desenvolvimento integrado,8 permitindo que eles decidam por opções mais econômicas antes de implantarem o código. Esse feedback em tempo real promove uma cultura “shift left” de accountability financeira. Nos processos de implantação, os desenvolvedores podem analisar relatórios financeiros, e as organizações podem impor restrições orçamentárias.

  • Reduzir a disrupção e o trabalho de “manutenção”. A abordagem tradicional de “limpeza anual” – a prática de realizar periodicamente manutenção e limpeza em uma base de código – muitas vezes exige que as empresas desativem recursos ou façam mudanças significativas nas configurações. Isso causa disrupção no trabalho e, muitas vezes, afeta negativamente os clientes, além de não ser uma boa utilização do tempo dos engenheiros. Em vez disso, as equipes de engenharia podem usar o FaC para otimizar continuamente os recursos e as configurações, reduzindo, assim, as disrupções e liberando o tempo dos engenheiros para tarefas mais importantes.

  • Permitir a alocação e o planejamento mais eficientes dos recursos de nuvem. As equipes de engenharia podem usar o FaC para identificar em tempo real onde, especificamente, os recursos de nuvem estão sendo usados de forma ineficiente e automatizar a correção dessas ineficiências. A otimização desse processo libera orçamento operacional para que os recursos financeiros sejam reinvestidos em inovação e no desenvolvimento de novas funcionalidades.

  • Identificar infraestrutura esquecida ou não utilizada. Seja por meio do rápido desenvolvimento e expansão de aplicativos, seja no contexto dos processos de desativação de sistemas, os componentes da infraestrutura, como endereços IP não alocados, interfaces de rede, backups e snapshots, podem continuar gerando custos para a organização. O FaC pode ajudar a identificar e, por meio de processos de correção automatizados, remover esses componentes. Isso também pode resolver diferenças referentes a estornos e problemas de visibilidade dos custos associados a ativos e aplicativos que deveriam ter sido desativados.

O kit de ferramentas do FaC

A implementação do FaC não precisa ser excessivamente onerosa, apesar de sua aparente complexidade. Ela exige, sim, que as empresas entendam claramente o que é necessário e se comprometam a incorporar o FaC à produção. Tornar o FaC uma realidade requer que as organizações se concentrem em quatro componentes:

  • Ferramentas especializadas. A implementação eficaz do FaC requer as ferramentas certas para aplicar as políticas. São necessárias ferramentas (como o Open Policy Agent) que validem scripts de infraestrutura como código (IaC, na sigla em inglês) em relação a políticas predefinidas, escritas em uma linguagem declarativa otimizada para definição de políticas (como Rego). Outras ferramentas, como as que oferecem proteções de IaC semelhantes à política como código (PaC, na sigla em inglês), são direcionadas a diferentes áreas de gestão da nuvem.

  • Categorização de políticas. As organizações podem estabelecer uma categorização simples de políticas com base na função destas últimas. Um exemplo são as políticas de informação, aviso e bloqueio, que são um conjunto de medidas de controle de acesso que gerenciam o acesso do usuário a recursos com base em condições predefinidas. As políticas de informação fornecem recomendações bem arquitetadas à equipe, como a utilização de um serviço de banco de dados nativo da nuvem em vez de uma abordagem “faça você mesmo”. As políticas de aviso alertam as equipes – sem impedir o provisionamento – sobre as melhores práticas que não estão sendo seguidas (por exemplo, um autoscaling group que não é estabelecido). As políticas de bloqueio impedem totalmente a implantação se determinadas condições forem atendidas, como o provisionamento de mais de $ 100 mil em infraestrutura para um ambiente de desenvolvimento. As melhores práticas incluem a execução dessas políticas em relação à IaC a cada pull request antes de promover para produção.

  • Scripts de políticas. Os scripts de políticas são a espinha dorsal do FaC. A GenAI pode simplificar a criação de políticas usando prompts em linguagem natural, treinando em um grande conjunto de dados de controles e políticas de FinOps e implementando a geração aumentada por recuperação (RAG, na sigla em inglês). No início da jornada do FaC, as organizações precisam de apenas dez a 15 políticas. Para determinar quais políticas devem ser criadas, as organizações podem examinar as principais fontes de desperdício, como a manutenção de ambientes que não são de produção fora do horário comercial ou a definição de períodos desnecessariamente longos de retenção de registros. As equipes podem, então, identificar e testar um caso de uso-alvo que possa ser implementado com recursos limitados.

  • Gestão de mudanças. A implementação bem-sucedida do FaC requer uma gestão de mudanças eficaz. À medida que as políticas são implementadas, é crucial notificar todos os stakeholders sobre as novas políticas de aplicação e garantir que os engenheiros entendam o que é o FaC, qual é o valor dele e como ele afeta suas operações diárias. Isso garante uma adoção suave e minimiza a resistência a novos processos.


A gestão dos custos de nuvem deve ser mais ciência e menos arte. Por meio das práticas de FaC, as empresas podem usar código de computador para obter uma série de benefícios, desde a automação da otimização de recursos até a promoção da responsabilidade financeira e a redução da pressão sobre as equipes de engenharia para manter os resultados da otimização.

Explore a career with us