Mas afinal de "contas"...o que é FinOps?
Tags: finops, cloud, aws, cloudeconomics
Published: 2021-07-16 12:47:31

_...sim, tentei fazer um trocadilho no título e admito...foi muito ruim!_

---

Que o movimento Cloud trouxe inúmeros benefícios, isso podemos concordar com certeza! O que antes levava dias para subir um servidor e hospedar sua aplicação, com diversos processos de compras e entregas, hoje com menos de 10 cliques em um console web e um tempo menor que 10 minutos temos nossa aplicação publicada!

Maravilha né!? Nesse _"boom"_, milhares de empresas migraram para a nuvem...mas, agora algumas estão voltando, e porque, se ganhamos velocidade, qualidade e autonomia?

Um ponto oculto no meio dessas qualidades é o custo...como que ele ficou? Uma das frases que mais escutei nesses últimos tempos foi que "A nuvem é cara", e fica a reflexão...é cara mesmo e/ ou precisa ser cara? Já digo que não!

Da mesma maneira que temos o **DevOps** que nos ajuda com as automações e entregas dos deploys das nossas aplicações de uma forma eficaz, rápida e com qualidade, temos o **FinOps**, que nos ajuda a entender e utilizar a Cloud de maneira também eficaz, evitando desperdícios e consequentemente mantendo os custos controlados, utilizando somente o que realmente é necessário utilizar

##Mas, o que é o "FinOps"?

É um time? Uma ferramenta? Metodologia? Passáro? Avião???
Não não!! FinOps é **C-U-L-T-U-R-A**!

Parece meio clichê falar isso, mas é verdade! Não adianta ter um time focado em análise e redução de custos + diversas ferramentas para monitoramento e alertas, se o time que está atuando na ponta não tem consciência da utilização correta dos recursos...seria um círculo vicioso que só desgastaria ambos os times, onde de um lado o time de FinOps cobraria redução, e do outro, o time de desenvolvimento não saberia a melhor forma de otimizar seus custos

Um dos erros mais comuns quando falamos de FinOps é ter como único objetivo a redução do custo final da fatura, quando isso deveria ser a consequência de uma correta utilização da Cloud, não necessariamente "reduzindo" o valor da fatura. Quando colocamos esse tipo de meta ou algo similar, logo estaremos limitando a utilização de recursos Cloud, o que acaba barrando a sua adoção e suas principais vantagens...

Para ilustrar melhor o que disse, é muito diferente dizer "Vamos reduzir 2 mil mês que vem" do que "Vamos evitar perder 2 mil mês que vêm". Se invertemos e colocarmos como meta evitar o desperdício na Cloud, estaremos implicitamente adotando boas práticas, e como resultado disso evitando custos desnecessários, utilizando a nossa Cloud da maneira correta, onde será refletido também na fatura no final do mês!

Outro ponto...pode parecer um pouco radical e utopia, mas na minha visão, algo a ser percorrido é não existir um time centralizado de FinOps. Inicialmente sim, é necessário para definir alguns pilares e disseminar a cultura entre os times, porém conforme for ficando "enraizado" essa cultura, a missão do time exclusivo de FinOps foi concluída, e ao invés de um time centralizado, teremos diversos "evangelistas" da cultura dentro de todas as áreas, com seus próprios acompanhamentos de custos e boas práticas, orientado a sua arquitetura de solução

##OK, então vamos montar um time!

Por mais que disse que a ideia é não existir um time de FinOps, em um primeiro momento é importante ter pessoas focadas somente nesse assunto, para não ter desvio de atividades e acabar deixando a parte financeira para ver somente quando a fatura chega

A ideia desse time, é conseguir extrair o máximo de eficiência de custos na Cloud, sempre com muita transparência, auxiliando sempre os times de produtos, fazendo com que eles concordem e entendam as iniciativas propostas...e não aquele time "chato" que só faz cobrança de valores na fatura, no estilo do Sr. Barriga cobrando toda vez o aluguel do Sr. Madruga

O time FinOps pode ser composto de várias áreas, partindo desde a diretoria (para aprovação de manobras de reservas e/ ou visão do roadmap orçamentário, por exemplo), analistas, arquitetos (para focar em questões de rightsizing e novas arquiteturas orientadas a melhor utilização da Cloud), pessoas mais técnicas (como desenvolvedores, para implementações de algumas automações) e até envolvendo outras áreas, como por exemplo o time de Finanças e RH, onde é possível até mudar a forma de contratação, colocando como um requisito desejável (ou obrigatório dependendo da empresa) essa mentalidade FinOps...é, hoje em dia não tem como escapar desse assunto!

Podemos colocar algumas atividades desse time como:

* Evangelização da Cultura FinOps
* Otimização de utilização de recursos Cloud
* Negociação junto a fornecedores por descontos
Alinhamento estratégico das aplicações VS custo (ROI)
* Documentações dos processos de utilização correta da Cloud
* Automatizações (tanto para o próprio time como para os outros)
* Análise Financeira (relatórios para os executivos)
* Disponibilização de alertas referente a custos
* Análise de arquitetura de Solução / Infra com uma visão FinOps
* "Antenados" em canais FinOps e nas novidades dos players de Cloud
* Definições de estratégias de reduções de custo como reserva ou ambientes "spots"

##Tá...mas como começo?

Depois de escolhido e montado seu time, é importante ter um norte, com metas e objetivos, onde alguns pilares podem ajudar nessa jornada

Deixei aqui os 3 pilares que na minha visão, acho essenciais para uma trilha FinOps de sucesso

###1. Coleta de informações e definição de metas

E como toda longa jornada tem seu primeiro passo, e antes de reduzir ou até colocar algumas ações, precisamos ter dados e informações. Aqui entra as coletas e análises dos custos, onde vamos conseguir entender melhor nossa utilização da Cloud e onde o "mato está alto" nos custos

Após a coleta, o time de FinOps será responsável em apurar os dados, condensar e compartilhar com os times de produto ou as áreas interessadas, inclusive já mostrando uma forma inicial de como eles podem colaborar com essa coleta, como por exemplo, a estratégia de alocação correta de Tags

Com os dados coletados, apurados e feito uma conversa inicial com os times, mostrando seus resultados "quick wins" de reduções e identificando formas que eles podem ajudar para coletar com mais detalhes (ufaaa), podemos seguir em uma etapa opcional e fazer um confronto com o orçamento da empresa, onde o time de produto deverá ter a visão do valor disposto para utilização da Cloud, e em cima disso trabalhar constantemente revistando seus componentes, podendo até atrelar métricas de custo ou utilização consciente da nuvem junto com outras possíveis métricas existentes, como de performance e segurança

Esse trabalho é continuo, ou seja, sempre estaremos coletando novas informações e analisando, gerando novas métricas e até mesmo removendo métricas antigas, é um cenário muito dinâmico e é inevitável esses "ajustes de rota"...ou vai me dizer que sua aplicação do mês passado é a mesma de agora? Esses ajustes e análises são necessários inclusive para alinhamento de valor de negócio, para saber se sua aplicação continua rentável...ou se o molho ficou mais caro que o peixe

###2. Mão na Massa! Automatização e ações

Abuse da criatividade no momento de operação e até na coleta de informações...automatize tudo! Por exemplo, podemos automatizar um alerta para o usuário, e até posteriormente remover componentes que estão com alguma subutilização ou utilização de maneira indevida, gerando custo desnecessários, como por exemplos discos "soltos" que não estão associados em nenhuma instância, ou aquela "servidorzinho" que você ligou ontem só para testar uma aplicação e acabou esquecendo ligado na sua conta

Em questão de ferramentas, existe diversas empresas que vendem ótimas ferramentas com esse propósito, os próprios players das nuvens estão evoluindo constantemente com dashboards e ferramentas relacionadas a custos. Já no mundo opensource, existe também algumas ferramentas e mecanismos que podem te ajudar nesse papel. Nesse outro artigo falo um pouco da ferramenta Cloud Custodian, em uma visão mais voltada para segurança, mas no meu GitHub adicionei algumas policies voltadas para o controle de FinOps. Fique a vontade para dar uma olhada e modificar para o cenário atual da sua empresa! ;)

Além disso, outras estratégias como a utilização de TAGs podem ser nossas aliadas para coletar e consolidar todo o custo...por isso é super importante uma boa gestão de TAGs no seu ambiente!

Mais para frente, vou dedicar um artigo exclusivo para falar de algumas automações no mundo de FinOps! _(me cobre se eu esquecer!)_

Indo para o lado de ações, ai não tem segredo...é olhar para a conta, analisar e verificar tudo que podemos executar para melhorar os custos, onde temos alguns bons aliados que acabam nos dando algumas pistas, como o Trusted Advisor da AWS...nele conseguimos ter um cenário mais "mastigado" de onde conseguimos já obter algumas reduções; Porém nenhuma dessas ações ou ferramentas dispensa aquela boa analisada na arquitetura de software VS arquitetura de infra, para tirar algumas ideias de como manter o mesmo comportamento da solução, mas de uma forma mais eficiente em questão de custos...esse é o desafio!

###3. Cultura!

Esse é o pilar mais importante, mas pode ser o que mais teremos trabalho, pois mudar a cultura nunca foi fácil...mas uma boa forma de começar é mostrando para os times o quanto estão pagando pela sua infraestrutura e trazer alternativas para redução de custos, visto que já temos os dados obtidos e feito uma primeira análise deles

Além disso, existem outras forma de abordagem em um escopo mais amplo, disseminando para toda a empresa, como vídeos (mesmo que pílulas pequenas), documentação e eventos (que tal implementar algo relacionado com a FinOps com gamificação? Todo mundo adora brindes!), e para nos orientar qual tema devemos abordar, novamente os dados coletados vão dar dicas preciosas de "onde dóis mais" na questão de custo

Com o passar do tempo e uma cultura FinOps na empresa, os times passarão a ter a percepção de custo e adequar suas arquiteturas...será natural! Usando a nuvem não orientado a maneira mais barata, mas sim da maneira correta, onde a redução será consequência, e uma boa estratégia é sempre mostrar e deixar disponível os resultados obtidos, para motivar quem já está na jornada e incentivar quem está adotando

Com todos os dados coletados, ações feitas e times treinados, podemos agora criar relatórios, dashboards, alarmes (automação!), metas, KPIs, etc...a ideia é dar visibilidade para os times e para a empresa de como está nossa saúde financeira na Cloud, onde quanto maior a colaboração, menor será o índice de desperdício, lembrando novamente que nosso objetivo ainda não é somente financeiro, e sim a utilização correta da nuvem, fazendo valer a pena cada "doleta" gasto nos seus produtos!

##E para encerrar...

Precisamos esclarecer uma coisa, dinheiro gasto não retorna para a carteira, o que podemos fazer é aprender como estamos gastando e melhorar isso

Com a maturidade do time e da metodologia, conseguimos usar a Cloud de uma maneira mais efetiva ainda com outras estratégias, por exemplo, tem medo de reservar instâncias? Não precisa ter!! Instâncias Spots? Não é tão "complicado" utilizar como o pessoal pensa...Em breve vou publicar outros artigos que entram mais no detalhe dessas duas abordagens super interessantes e que nos ajudam demais nesse controle de custos

E lembrando...todo esse fluxo e ações que falei aqui, são contínuas, onde devemos sempre medir, analisar e repetir, conseguindo sim deixar nossa Cloud muito mais efetiva e atrativa! O tema FinOps não tem regra e muito menos fim, o ideal é ter em mente seus conceitos e adequar da melhor maneira para o seu dia-dia...

...E quem sabe utilizar uma pequena parte das economias para um Happy Hour com todo o time? Afinal, eles merecem!! _Cheers_!


_Até mais e muito obrigado pela Leitura! Ah, e se sentiu falta de alguma informação, algo que possa estar errado ou se quiser tirar dúvidas, fiquem a vontade de comentar!_ :smiley:
##Referências

* [FinOps Foundations](https://www.finops.org/)
* [Curso Linux Foundations — Introduction to FinOps](
https://www.edx.org/course/introduction-to-finops)