Finops na prática - Informando
Tags: finops, aws, cncf, productivity
Published: 2022-03-31 09:28:46

Esta é a primeira fase da jornada FinOps, capacitando organizações e equipes com visibilidade, alocação, benchmarking, orçamento e previsão. A natureza elástica e sob demanda da nuvem, juntamente com preços e descontos personalizados, torna necessária a visibilidade precisa e oportuna para decisões inteligentes. A alocação precisa de gastos na nuvem com base em tags, contas ou mapeamentos de negócios permite estorno e demonstração precisos. As partes interessadas comerciais e financeiras também querem garantir que estão gerando ROI, mantendo-se dentro do orçamento e prevendo gastos com precisão, evitando surpresas. O benchmarking como coorte e contra equipes fornece às organizações as métricas necessárias para desenvolver uma equipe de alto desempenho.

## Gestão de tag
Gestão de tag é o coração da fase de informar em Finops, é fundamental para todos se apropriarem do uso da nuvem e os relatórios sejam acessíveis e oportunos. 

A AWS tem um [whitepapers sobre boas praticas de tag](https://d1.awsstatic.com/whitepapers/aws-tagging-best-practices.pdf) super importante de ser lido. 

Tags são usadas para alocação de custos entre outras utilizações, mas falando de custo, existem dois tipos de tags; [geradas pela AWS](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/aws-tags.html?icmpid=docs_billing_hp-costallocation-awsgen) e [geradas pelo usuário](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/custom-tags.html?icmpid=docs_billing_hp-costallocation-userdef).

Além disso existem duas ferramenta excenciais para gestão de tag, o [Tag Editor](https://docs.aws.amazon.com/pt_br/ARG/latest/userguide/tag-editor.html) e o [Tag policies](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_tag-policies.html).

Feito isso, você pode criar [Budgets Reports](https://aws.amazon.com/pt/about-aws/whats-new/2019/07/introducing-aws-budgets-reports/) filtrando pela tag do time ter uma previsão de gastos no mês e configurar [Cost & Usage Reports](https://docs.aws.amazon.com/cur/latest/userguide/what-is-cur.html) para o time ter um histórico de gastos. 

## Como fazer no dia a dia: 
- O time deve definir as tags que irão identificar os recursos de nuvem utilizados pelo time. 
- O time, com apoio do time de Finops, deve gerar dashboards com custos realizados e planejados para o mês corrente. 
- O time precisa pensar em alertas, orçamento de custos e na responsabilidade de gastos durante o desenho de arquitetura e implementação de soluções. 
- O time precisa ter esses dados imersos em reuniões de PDCA para melhoria contínua em suas cerimônias corriqueiras. Leve o dashboard de Finops do time para a retrospectiva!

## Landscape FinOps
A CNCF junto com a finops.org mantêm um Landscape super legal com vários players divididos em Training Partners, Service Providers e Certified Platforms. 

Vale muito a pena sempre que for se envolver em temas para buscar players de soluções para rever essa lista, está sempre em mudança. O link é [https://landscape.finops.org/](https://landscape.finops.org/)

## Dashboard

A várias ferramentas de dashboard, todos os players de Service Providers do Landscape FinOps oferecem alguma solução desse tipo. 
A AWS possui o [AWS Billing dashboard](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/view-billing-dashboard.html?icmpid=docs_billing_hp-billing-dash) com várias ferramentas bem bacanas. 

Eu gostaria de sugerir a utilização do kubecost caso você utilize o ecossistema Kubernetes. Simples de usar e um resultado incrível.
Bora começar agora? 

## Instalando o kubecost
### 1. Tenha um ambiente Kubernetes 
Caso não tenha, nesse post mostro como criar usando EKS e Terraform passo a passo [https://dev.to/aws-builders/provisionando-eks-com-terraform-3e41](https://dev.to/aws-builders/provisionando-eks-com-terraform-3e41)

### 2. Instale Helm
Vamos precisar do cliente Helm (versão 3.0+) instalado. [Veja aqui como instalar](https://helm.sh/docs/intro/install/)

### 3. Instale o Kubecost
- Crie o namespace do Kubecost
- Adicione o repo helm 
- Instale o Kubecost no namespace
- Inclua o token de acesso
```bash
kubectl create namespace kubecost
helm repo add kubecost https://kubecost.github.io/cost-analyzer/
helm install kubecost kubecost/cost-analyzer --namespace kubecost --set kubecostToken="bHVpei5iZXJuYXJkb0BkYjEuY29tLmJyxm343yadf98"
```

### 4. Habilite a porta em seu localhost
- Certifique de realizar esse passo depois que a instalação no namespace estiver concluída e o namespace ativo. Caso contrário correrá o seguinte erro

"error: unable to forward port because pod is not running. Current status=Pending"
Espere um pouco e tente novamente.
```bash
$ kubectl port-forward --namespace kubecost deployment/kubecost-cost-analyzer 9090
```

### 5. Veja os dados
Acesse [http://localhost:9090](http://localhost:9090)
Provavelmente os dados ainda estarão sendo carregados, demora um pouco mais no resultado será como esse. 

![Kubecost Dashboard](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/su8qzqt8e8bgf5riak00.png)

No menu lateral tem várias features bacanas. mas queria destacar a aba savings.

![savings menu](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pkhra81alqozzw7uled5.png)

Ela traz um resumo de algumas práticas que podem ser aplicadas na sua conta para redução de custo com base no seu histórico de consumo e recomendações de frameworks como well-architected.


![savings dashboard](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gk1hju4q120bypccbuyx.png)

[Clique aqui](https://guide.kubecost.com/hc/en-us/articles/4425134686743-User-Metrics) para conhecer algumas métricas que ele monitora. 

O Kubecost ainda tem alguns serviços pagos que podem ser acrescentados, mas recomendo explorá-los depois de validar um pouco a utilização dele no seu ecossistema. 

[Você pode conhecer aqui.](https://www.kubecost.com/pricing/?ref=product&upgrade=true#price-options-container)

Para conhecer outros serviços focados no no ciclo de vida FinOps é sempre recomendado olhar o [FinOps Landscape](https://landscape.finops.org/)

Vlw flw