FinOps
- Flávio Barbosa
- 8 de out. de 2024
- 11 min de leitura
Para falarmos de FinOps precisamos falar um pouco do problema que o FinOps vem solucionar.
A explosão da adoção de serviços em nuvem pelas empresas trouxe consigo um novo conjunto de desafios, dentre eles o controle e a otimização dos gastos. O FinOps é uma disciplina que visa justamente solucionar esse problema, proporcionando ferramentas e metodologias para que as organizações maximizem o valor da nuvem, minimizando custos desnecessários.
Bom, sendo assim, vamos revisar como é que funciona a nuvem!
A nuvem traz muita flexibilidade, é extremamente elástica quando você precisa aumentar ou diminuir a utilização. Você consegue fazer diversos tipos de processamento, diversos tipos de atividades diferentes dentro de um único ambiente com a facilidade de um click pra você contratar cada um desses serviços, tudo é muito fácil, tudo é muito simples. É muito é fácil inovar quando você está utilizando a nuvem. Porém a nuvem traz algumas situações que precisam ser observadas e endereçadas. A primeira situação é o seguinte:
A alguns anos atrás, e porque não dizer até mesmo nos dias atuais, em um contexto de uma TI tradicional, o departamento de TI era responsável por definir quais eram os servidores que seriam comprados, qual armazenamento que tinha que ter disponível, qual poder de processamento que a gente ia ter disponível, tudo isso era planejado com antecedência dentro do planejamento financeiro daquela empresa para aquele ano. Hoje em dia, esse cenário mudou. Com o advento da nuvem, o programador passou a ter esse poder de decisão de definir o que é que ele precisa para poder fazer a inovação que ele está fazendo. É o programador que define com o poder de um “clique” e uma conta com cartão de crédito o que é que ele vai utilizar de recurso para poder implementar a nova funcionalidade ou aquela nova é ideia que está sendo implementada naquele momento.
TI Tradicional vs TI em Cloud
Com isso, a gente passa a ter um problema. O departamento financeiro deixa de ter visão do que está sendo gasto com infraestrutura, do que está sendo gasto com aplicativos etc. Isso pode trazer um problema de controle muito grande para a empresa. Esse problema de controle pode gerar rombos enormes nos orçamentos, possibilitando cenários onde a empresa possa ter uma aplicação que tenha recursos, e que tenha clientes, mas uma aplicação que custa para a empresa muito mais caro do que aquele retorno que ela gera.
Então, como é que a gente faz para evitar essa falta de controle?
O termo "FinOps" foi criado pelo FinOps Foundation, uma organização sem fins lucrativos fundada em 2019 por J.R. Storment e Mike Fuller. A FinOps Foundation tem como objetivo promover as melhores práticas de gerenciamento financeiro na nuvem, ajudando as empresas a otimizar custos e maximizar o valor dos investimentos em serviços de computação em nuvem.
A ideia central do FinOps é combinar o gerenciamento financeiro com a operação técnica na nuvem, criando uma abordagem colaborativa entre equipes de finanças, operações e engenharia para gerenciar e otimizar custos de forma eficiente.
Em outras palavras, podemos dizer que FinOps é um modelo de operação para a nuvem e ele vem trazer de volta para o departamento financeiro e para a TI o controle do que está sendo utilizado, quanto dinheiro está sendo gasto em infraestrutura, quem está gastando esse dinheiro, quais são os departamentos, quais são as aplicações que mais consomem e com isso a gente consegue provisionar adequadamente o “budget” para fazer a compra de infra, além de conseguirmos limitar a infraestrutura daqueles “workloads” da empresa que usa um pouco a nuvem.
A ideia é simples é juntar à área de tecnologia com a área de finanças e fazer com que essas duas áreas falem uma única língua.
TI & Financeiro
Como é que a gente faz isso?
O FinOps foi estruturado em três fases: Informação, otimização e operação.
Informação
A primeira fase é a fase de “informação”, onde vai dar visibilidade de quais são os as áreas da empresa que estão gastando mais, como esse dinheiro está sendo investido, quais são os recursos que são de fato utilizados, quais recursos que são comprados, mas não são utilizados e quaisquer recursos podem ser trocados.
Informação
Então, a área de informação vai gerar essa visibilidade para a área de negócios, para a área financeira e para TI, a fim de possibilitar uma tomada de decisão informada a respeito do que está acontecendo na nuvem.
Otimização
A próxima fase do FinOps é a fase de “otimização”. Essa fase de otimização ela vai pegar a informação coletada na fase de “informação” que dará visibilidade permitindo trabalhar qualquer informação para aprimorar a forma de utilização dos recursos.
Nesse contexto, supondo que fossemos nós que estivéssemos atuando nessa estratégia, a primeira coisa que daremos início é a ação de começar a observar os recursos que estão super ou subestimados daquilo que realmente é necessário.
Um outro ponto importante é que o FinOps passa a dar uma visibilidade sobre os serviços que não são utilizados, mas que estão gerando custos. Removendo os mesmos consequentemente trazemos à tona mais uma ação de economia juntos aos custos da nuvem.
Outra estratégia, trabalharmos com a automação, desligando serviços quando não mais forem necessários estarem ativos. A utilização de robôs pode ser adotada para pequenos serviços automatizados. Podemos fazer a automação da utilização dos recursos definindo a utilização do recurso certo no momento certo. A partir do momento em que podemos monitorar o que está sendo feito na nuvem e qual recurso é necessário, um serviço aciona outro serviço que vai ser necessário naquele momento e o libera ou desliga quando não mais for necessário. Isso ajuda a otimizar a dos serviços de nuvem como um todo e consequentemente gera redução de custos.
Fazer a compra de instâncias reservadas uma vez que se tem uma visão de quais serviços e recursos serão necessários no futuro (forecast), pode-se realizar uma compra planejada o que pode possibilitar uma redução de custos em até 43% mais barata do que a adoção de uso sob demanda.
Outra estratégia é o “right sizing” que nada mais é do que fazer o dimensionamento adequado do serviço para aquele tipo de aplicação que eu estou utilizando. Com isso você não vai usar recursos nem a mais e nem a menos, ajudando também a investir corretamente nos serviços necessários para o ambiente em nuvem.
Não menos importante é a realização da “comparação de preços”, onde eu posso ter serviços que são semelhantes, mas que têm cursos diferentes dependendo do site em que eu faço aquele tipo de aplicação eu posso ter custos radicalmente diferentes para o mesmo tipo de poder de processamento. Então, isso me permite novamente aplicar corretamente o dinheiro que eu estou gastando
Operação
Após o processo de otimização, entramos no processo de “operação”, fase esta que vai formalizar novamente os custos dentro do planejamento financeiro da empresa. Dessa forma você vai ter “budget”, reserva de dinheiro para conseguir fazer a compra dos recursos de nuvem que são necessários para sua empresa e você vai ter uma visão alinhada com os objetivos da empresa. Com isso você passa a ter uma visão de longo prazo se você está ou não conseguindo atingir aqueles objetivos com os recursos que estão sendo implementados e que estão sendo utilizados. Além disso você poderá desenvolver e ter acesso a relatórios customizados que vão trazer a informação de tudo que está sendo utilizado de cada um dos serviços de nuvem contratados, como quem está utilizando esses serviços, quais são as aplicações que utilizam esses serviços, quanto tempo o serviço está sendo utilizado fisicamente, etc.
A operação traz o negócio para dentro da nuvem, mas com uma visão de negócio de longo prazo, onde iremos traçar objetivos de crescimento, de objetivos de melhoria na performance e objetivos na quantidade de acessos no futuro. Com esses objetivos conseguimos melhorar a maneira de como provisionar o dinheiro para fazer a devida compra dos serviços de nuvem. Então, o primeiro passo é estabelecer seus objetivos para nuvem, entender onde se quer chegar com um determinada aplicação ou serviço que está sendo disponibilizado e quais são os recursos que vão ser utilizados a longo prazo.
Uma vez que o orçamento esteja definido, é importante realizar uma comparação com os serviços que serão utilizados e os recursos que serão necessários a longo prazo. Com os orçamentos claramente estabelecidos, farei o alinhamento do custo com a nuvem em relação aos objetivos definidos. Isso permitirá que eu avalie o quanto desses objetivos já foi alcançado, o quanto ainda precisa ser perseguido, e se o ritmo de investimento na nuvem está adequado para atingir esses objetivos.
Se houver mudanças no caminho, precisarei revisar esses objetivos e retomar o acompanhamento.
Operação
Imagina você poder fazer uma análise simples do tipo: Ok, eu tenho um serviço contratado, mas seu uso só 10% do tempo que aquele serviço consome de forma ininterrupta.
Dessa forma, esses relatórios vão trazer a possibilidade de tomar as nossas decisões.
E quais são as estratégias para isso?
A primeira estratégia é trabalhar com TAG´s que funciona da seguinte maneira, você vai dizer para cada um dos micro-serviços que estão rodando na nuvem, qual é o departamento, qual é a aplicação, e qual é a área da empresa que está fazendo utilização do recurso.
Podemos usar diferentes combinações de informações para fazer o tag. Uma vez que você tenha esse “tageamento” pronto, você pode rodar durante um tempo o seu ambiente e começar a capturar essa informação de consumo da nuvem, atribuída a cada uma das grandes áreas dentro da empresa ou a cada uma das aplicações que estão sendo utilizadas.
O “tageamento” ajuda a segregar o custo e a direcionar esse custo, ou pelo menos, dar a visibilidade do quanto do meu custo total de nuvem está sendo utilizado por cada uma das áreas. Isso possibilita fazer uma “alocação de custo” correta que é a segunda estratégia.
Essa locação pode ser uma alocação de fato onde eu vou cobrar das diferentes áreas aquele valor da nuvem ou simplesmente informativa. De qualquer maneira, é importante termos a visão de quais áreas estão gastando e o que está sendo gasto, pois torna-se possível trabalharmos medição e na medição vermos o quanto está sendo utilizado em cada um dos serviços. Podemos contratar um serviço, utilizarmos esse serviço por uma fração do tempo em que ele fique disponível.
Pode haver situações onde você pode contratar um serviço onde é gerada uma instância daquele serviço e aquela instância ficar ativa por um tempo indeterminado, mas que a utilização dessa instância é feita de forma pontual.
Um exemplo disso, é imaginar que você precisa fazer uma consulta no banco de dados sobre alguma informação que só é atualizada uma vez por dia, enquanto a instância de banco fica consumindo recurso e gerando despesa o tempo todo. Imagina você pagando por isso! Não faz sentido. O ideal é fazer a medição do quanto de disponibilidade é necessário para usar aquele serviço.
Depois de algumas semanas fazendo essa medição, será possível prevê o quanto será necessário para utilizar determinado recurso. Ao longo do tempo, será possível ter uma visão de sazonalidade da utilização do recurso através de uma visão de carga do recurso ao longo do dia, semanas, meses, possibilitando diversos tipos de previsão futura que apoiará a operação em estimar o quanto precisará ser gasto, justificando assim a defesa do “budget” necessário para determinados serviços.
Reports
A última estratégia é o uso de “reports”. Os relatórios vão pegar toda essa informação gerada na fase de informação, consolidar e levar essa informação em diferentes formatos para os diferentes públicos. Para a área mais técnica, vou levar uma informação mais técnica, para a área financeira vai levar uma informação mais voltada para o financeiro e para a área executiva da empresa, será levada informação que suporte à tomada de decisão. Com isso, eu gero toda a cadeia de informação necessária para operação do FinOps.
Relatórios
Essa implementação pode levar alguns dias, até mesmo semanas, dependendo da complexidade da nuvem adotada, bem como a quantidade de serviços.
A governança é essencial nesse processo, assim como relatórios periódicos que mostrem como está sendo consumido o orçamento destinado à nuvem. Esses relatórios também devem indicar o crescimento e a utilização da aplicação, além do retorno que isso está trazendo para o negócio.
Com todas essas informações comparadas, consigo avaliar se o custo da nuvem está sendo gerido de forma eficiente. É importante ressaltar que um aumento no custo da nuvem não significa necessariamente um problema. Por exemplo, quando um serviço online como um aplicativo de caronas foi lançado, havia poucas pessoas utilizando-o. Com o tempo, o serviço ganhou escala, e mais pessoas passaram a utilizá-lo, exigindo mais recursos de nuvem para atender a essa demanda crescente.
Portanto, o aumento do custo da nuvem não é necessariamente um problema, mas é fundamental ter indicadores que mostrem o custo por usuário. Esse valor deve ser constante ou diminuir ao longo do tempo, sem apresentar variações drásticas de um momento para outro.
A menos que eu esteja implementando uma nova tecnologia ou funcionalidade, pode haver uma oscilação inicial no custo. No entanto, é fundamental sempre buscar melhorias contínuas. Isso inclui otimizar a alocação de custos na nuvem, aprimorar a forma como as aplicações são desenvolvidas e evitar que haja aplicações que não sejam avaliadas regularmente, pois isso afeta a visibilidade dos custos.
Quando aplicações não são monitoradas, perdemos a previsibilidade sobre como os custos estão sendo consumidos. Isso dificulta a tomada de decisões tanto para a equipe financeira quanto para a equipe de TI, tornando a alocação de recursos menos clara. Portanto, é crucial acompanhar regularmente os diversos indicadores criados para manter a visibilidade e melhorar a performance desses indicadores periodicamente.
Case
A estratégia que eles adotaram começou com a fase de visibilidade, onde estabeleceram um indicador fundamental: o custo de nuvem por cliente. Esse índice permitiu que eles monitorassem o crescimento dos custos à medida que aumentavam o número de clientes e tivessem uma visão clara da tendência de custos nos próximos meses.
Além disso, eles implementaram uma estratégia agressiva de tagging. Em três meses, o objetivo era ter, no máximo, 10% das aplicações sem tags, uma meta que foi fortemente cobrada de todas as equipes. Naquele momento, o banco tinha aproximadamente 90 serviços online, com 50 “squads” trabalhando na criação de novos serviços e na atualização dos existentes. Os custos estavam crescendo descontroladamente, e a visibilidade era quase inexistente.
Após a implementação das práticas de tagging e outras estratégias de FinOps, como a compra de instâncias reservadas, três anos depois, eles conseguiram manter o custo de nuvem por cliente praticamente estável, mesmo com um crescimento significativo dos serviços. Atualmente, o banco opera mais de 250 serviços, mais que o dobro de três anos atrás, e ainda assim, mantém os custos sob controle.
Hoje, eles possuem uma visibilidade excelente sobre como seus serviços de nuvem crescerão, graças às estratégias que adotaram, como o uso agressivo de tags e a realização de mais de 50 deploys de correções ou novas funcionalidades por dia, de maneira quase instantânea e sem aumentos consideráveis nos custos de nuvem.
Este case demonstra como uma governança eficaz e o uso inteligente de práticas como tagging podem levar a resultados excepcionais em termos de controle de custos e previsibilidade na nuvem.
Bem, é isso que eu tinha para falar para vocês sobre FinOps nesse artigo. Espero ter contribuído de alguma forma. Estarei explorando em meus próximos artigos, temas como este voltados para Governança de TI em Cloud.
Até lá!
SOBRE O AUTOR
Flavio Barbosa
Líder de TI com Foco em Inovação
Sou um profissional sênior na área de Tecnologia da Informação, com uma sólida trajetória de liderança na implementação de soluções inovadoras em Infraestrutura de TI e Segurança da Informação. Minhas especializações em Gestão Estratégica de TI e Cloud Computing são os pilares que sustentam minha habilidade de integrar tecnologia com a estratégia empresarial.
Tenho vasta experiência em liderar equipes técnicas e em gerenciar projetos de infraestrutura e segurança, sempre focando na excelência operacional e na inovação. Como Coordenador de Tecnologia da Informação, gerenciei operações de TI, segurança da informação e governança de TI, alinhando as iniciativas de tecnologia aos objetivos estratégicos das organizações para promover um crescimento sustentável.
Nos meus valores pessoais, invisto tempo em pessoas que buscam evoluir e escolho conviver com aquelas que cultivam bons hábitos e inspiram os outros, criando um ciclo virtuoso de sucesso e felicidade. Diariamente, procuro transformar minha vida positivamente, assim como o mundo ao meu redor.
Como líder, adoto os princípios de Liderança Exponencial, com o objetivo de impactar positivamente as pessoas ao meu redor, explorando e desenvolvendo seus potenciais. Acredito que a tecnologia, combinada com a inteligência artificial, é um dos principais impulsionadores para alcançar os objetivos de qualquer empresa.
Estou sempre em busca de maneiras criativas para impulsionar o sucesso das organizações e transformar desafios em oportunidades. Vamos juntos criar um futuro mais inovador e eficiente no mercado de trabalho.