# finops-architect-toolkit

Calculadoras FinOps para arquitetos AWS: RI, S3, Lambda e estratégia de tagging.

- URL: https://fernando.moretes.com/open-source/finops-architect-toolkit

- Markdown: https://fernando.moretes.com/open-source/finops-architect-toolkit/guide.md?lang=pt

- GitHub: https://github.com/fernandofatech/finops-architect-toolkit

- Language: TypeScript

- Topics: 

- Stars: 0

- Forks: 0

- Updated: 2026-05-16T02:18:59Z

---

finops-architect-toolkit é uma aplicação web em Next.js 16 + TypeScript que oferece a arquitetos de soluções um conjunto de calculadoras de custo objetivas — break-even de Reserved Instances EC2, otimizador de classes de armazenamento S3, estimador de custo Lambda e gerador de estratégia de tagging — projetadas para embasar conversas reais de engenharia e procurement sobre gastos na AWS.

## Por que construí isso

Decisões de arquitetura determinam a maior parte de uma fatura de nuvem. Quando estou em uma reunião com procurement, engenharia e finanças, a conversa trava porque cada grupo trabalha com planilhas diferentes e premissas diferentes. Construí este toolkit para fechar essa lacuna com uma única URL compartilhável.

Cada calculadora é autocontida e opinativa: solicita apenas os inputs que realmente movem o ponteiro e exibe o número que importa — meses de break-even para RIs, custo efetivo por GB-mês entre as camadas de armazenamento S3, gasto mensal total para uma carga Lambda dado taxa de invocação, duração média e memória. O gerador de tagging produz uma taxonomia de alocação estruturada alinhada às recomendações da FinOps Foundation, que uso como ponto de partida ao definir políticas de alocação de custos para clientes.

Este não é um substituto para o AWS Cost Explorer ou o Compute Optimizer. É uma ferramenta de conversa — rápida, transparente e reproduzível. As fórmulas estão visíveis no código-fonte, então qualquer engenheiro pode auditá-las, questionar as premissas e adaptá-las aos seus próprios acordos de preço.

## O que o toolkit inclui

- **Calculadora EC2 RI vs On-Demand** — calcula o mês de break-even e a economia total em termos de 1 ou 3 anos para RIs Standard e Convertible.
- **Otimizador de classes de armazenamento S3** — compara o custo efetivo por GB-mês entre Standard, Standard-IA, Glacier Instant Retrieval e Deep Archive, considerando a frequência de recuperação.
- **Estimador de custo Lambda** — calcula o custo mensal de computação a partir da contagem de invocações, duração média (ms) e memória alocada (MB), alinhado ao preço atual da AWS.
- **Gerador de estratégia de tagging** — produz uma taxonomia de tags estruturada (environment, cost-center, team, workload, data-classification) pronta para colar em uma política de tags do AWS Organizations.
- **Templates de relatório de alocação de custos e padrões de showback/chargeback** — pontos de partida reutilizáveis para modelos de faturamento interno.
- **CI/CD com GitHub Actions** — três pipelines (CI, deploy Frontend/Vercel, varredura de segurança) mantêm o site ao vivo em finops.moretes.com sempre atualizado.

## Como a aplicação é estruturada

O toolkit é uma aplicação Next.js puramente client-side — todos os cálculos rodam no navegador. Não há API de backend. O deploy é automatizado via GitHub Actions para a Vercel, com DNS gerenciado pelo Cloudflare.

### 👤 User

- Architect browser (user)

### 🌐 Edge / CDN

- Cloudflare DNS + proxy (edge)

### ☁️ Hosting

- Vercel Next.js 16 SSG (frontend)

### 💻 Frontend Modules

- RI vs On-Demand calculator (compute)
- S3 storage-class optimizer (compute)
- Lambda cost estimator (compute)
- Tagging strategy generator (compute)

### 🔁 CI/CD

- GHA: CI lint + type-check (ci)
- GHA: Frontend Vercel deploy (ci)
- GHA: Security scan (security)

### Fluxos

- user -> cloudflare: Requisição HTTPS
- cloudflare -> vercel: proxy
- vercel -> ri_calc: rota /ri
- vercel -> s3_opt: rota /s3
- vercel -> lambda_est: rota /lambda
- vercel -> tag_gen: rota /tagging
- gha_ci -> vercel: no push
- gha_fe -> vercel: deploy
- gha_sec -> gha_ci: scan paralelo

## Stack tecnológica e decisões de design

O frontend é construído com **Next.js 16** e **React 19**, estilizado com **Tailwind CSS 4** e escrito inteiramente em **TypeScript 5**. Escolhi Next.js porque a geração estática oferece carregamento de página com latência zero e deploy trivial na Vercel — não há servidor para gerenciar, banco de dados para provisionar nem API para proteger. Toda a lógica de cálculo reside em funções TypeScript puras, fáceis de testar unitariamente e auditar.

Três workflows do GitHub Actions são executados a cada push: um **pipeline de CI** que roda lint e verificação de tipos, um **pipeline de Frontend** que faz build e deploy na Vercel, e um **pipeline de Segurança** que escaneia dependências e código estático. O workflow de segurança não é cosmético — trato um repositório público de portfólio da mesma forma que um serviço em produção: higiene da cadeia de suprimentos importa.

Tailwind CSS 4 mantém o estilo co-localizado com os componentes e elimina a necessidade de um pacote de design system separado nessa escala. O resultado é uma base de código que qualquer engenheiro TypeScript pode clonar, ler e estender em menos de uma hora.

O site ao vivo é servido em **finops.moretes.com**, implantado na Vercel com DNS proxiado pelo Cloudflare para proteção contra DDoS e cache na borda.

## Executando localmente

1. **Clone o repositório** — Execute `git clone https://github.com/fernandofatech/finops-architect-toolkit.git` e entre no diretório do projeto.

2. **Instale as dependências** — Navegue até o diretório `frontend` e execute `npm install`. Node 18+ é recomendado para corresponder ao runtime da Vercel.

3. **Inicie o servidor de desenvolvimento** — Execute `npm run dev`. A aplicação estará disponível em `http://localhost:3000`. Hot reload está habilitado — alterações na lógica das calculadoras ou nos estilos são refletidas imediatamente.

4. **Build para produção** — Execute `npm run build` seguido de `npm start` para verificar a saída estática localmente antes de fazer push. Consulte `SETUP.md` e `OPERATIONS.md` para configuração específica de deploy.

5. **Revise a documentação de arquitetura** — Leia `docs/architecture.md` para uma explicação mais aprofundada das premissas de fórmula de cada calculadora e a justificativa da taxonomia de tagging.

_Quick start — clone, instale e execute em três comandos_

```bash
git clone https://github.com/fernandofatech/finops-architect-toolkit.git
cd finops-architect-toolkit/frontend
npm install && npm run dev
# App available at http://localhost:3000
```

> **Todos os cálculos são client-side e auditáveis:** Não há backend, chamada de API nem telemetria. Cada fórmula roda no navegador e é legível no código-fonte TypeScript. Se sua organização negociou preços customizados ou descontos EDP, você pode fazer fork do repositório e ajustar as constantes de taxa diretamente — o código é intencionalmente direto.

## Perguntas frequentes

### Os preços da AWS nas calculadoras são mantidos atualizados?

As constantes de taxa no código-fonte refletem os preços públicos da AWS no momento de cada commit. A AWS altera preços com pouca frequência para computação e armazenamento, mas você deve verificar nas páginas oficiais de Preços da AWS antes de usar os resultados em um business case formal. As fórmulas são transparentes o suficiente para que atualizar uma taxa seja uma mudança de uma linha.

### Posso usar este toolkit com Savings Plans em vez de Reserved Instances?

A calculadora de RI atual modela RIs Standard e Convertible. Savings Plans têm uma estrutura de compromisso diferente ($/hora em vez de por instância). A calculadora não modela Savings Plans atualmente — essa é uma lacuna conhecida e uma contribuição razoável se você quiser estender o projeto.

### É adequado para ambientes AWS Organizations com múltiplas contas?

O gerador de estratégia de tagging é explicitamente projetado com alocação multi-conta em mente — a taxonomia que produz mapeia para políticas de tags do AWS Organizations e Cost Categories. As calculadoras em si têm escopo de workload, não de conta, então você as executaria por workload e agregaria manualmente.

### Por que Next.js para um toolkit sem lógica server-side?

Geração estática, roteamento baseado em arquivos e deploy na Vercel sem configuração tornam o Next.js uma escolha pragmática mesmo para sites totalmente estáticos. A alternativa — uma SPA Vite simples — teria sido igualmente válida. Escolhi Next.js porque se alinha com a forma como construo frontends de produção e mantém a porta aberta para adicionar server components ou rotas de API posteriormente sem uma reescrita.

## Para quem é isso

Este toolkit é para arquitetos de soluções e engenheiros de nuvem que precisam tornar os trade-offs de custo legíveis para stakeholders não técnicos — rapidamente, sem construir uma planilha personalizada para cada engajamento. Se você está executando uma prática de FinOps, preparando um business case de migração ou definindo um modelo de governança de tagging para um novo ambiente AWS, as calculadoras oferecem um ponto de partida reproduzível que você pode compartilhar como URL ou fazer fork e adaptar.

Não é uma ferramenta de monitoramento, nem um detector de anomalias de custo, nem um substituto para o AWS Cost Explorer. É um auxílio de planejamento e comunicação. O código-fonte é licenciado MIT, as fórmulas são auditáveis e a arquitetura é simples o suficiente para que adaptá-la aos preços ou à taxonomia específicos da sua organização leve horas, não dias.

A versão ao vivo está em [finops.moretes.com](https://finops.moretes.com) se você quiser experimentar antes de clonar.

## Referências e links

- [GitHub — fernandofatech/finops-architect-toolkit](https://github.com/fernandofatech/finops-architect-toolkit)
- [Live site — finops.moretes.com](https://finops.moretes.com)
- [AWS EC2 Reserved Instances pricing](https://aws.amazon.com/ec2/pricing/reserved-instances/)
- [AWS S3 storage classes pricing](https://aws.amazon.com/s3/pricing/)
- [AWS Lambda pricing](https://aws.amazon.com/lambda/pricing/)
- [FinOps Foundation — Tagging and allocation](https://www.finops.org/framework/capabilities/cost-allocation/)
- [Next.js 16 documentation](https://nextjs.org/docs)

## Links

- [GitHub repository](https://github.com/fernandofatech/finops-architect-toolkit)
