Publicado a

Arquitetura de um pipeline de custos

Do ficheiro em bruto do fornecedor ao dado que serve para decidir há seis camadas, e cada uma existe por uma razão. É assim que se desenha um pipeline de custos que se pode auditar e que não depende de ninguém.

Linha de serviço Engenharia FinOps

Porquê camadas e não um único passo

A tentação é escrever uma única transformação que leia a exportação do fornecedor e entregue o relatório final. Funciona até ao primeiro erro: quando um número não bate certo, não há forma de saber em que ponto se desviou.

Um pipeline por camadas resolve isso. Cada camada tem uma única responsabilidade, guarda o seu resultado e pode ser revista em separado. Se algo falhar, sabe-se em que camada, e reprocessa-se a partir daí sem mexer no que vem antes.

As seis camadas

O que acontece ao dado em cada camadaSeis camadas do pipeline com uma amostra de como o dado muda em cada uma e a contagem ilustrativa de linhas.FINOPS · PIPELINE DE CUSTOSO que acontece ao dado em cada camada01Em brutoFicheiro do fornecedor, intacto1.204.000 linhas02NormalizadoColunas FOCUS, mesmo significado1.204.000 linhas03Corrigido−23.500 duplicados · compromissos repartidos1.180.500 linhas04AtómicoRecurso × dia × tipo de encargo3.412.000 linhas×305AtribuídoCada linha com equipa e aplicação94 % atribuído06ConsumoTabelas prontas para decidir12 tabelasDados ilustrativos, não correspondem a nenhum caso realN100F · n100f.com

1. Em bruto. A exportação do fornecedor tal como chega, sem mexer. Guarda-se sempre, porque é a evidência: se amanhã se descobrir um erro de interpretação, volta-se a processar a partir daqui.

2. Normalizado. O dado traduzido para FOCUS. Cada fornecedor tem a sua própria tradução, mas todas produzem o mesmo formato. A partir desta camada, o pipeline já não sabe, nem lhe interessa, de que fornecedor vem cada linha.

3. Corrigido. Aqui corrige-se o que o dado de origem traz mal ou de forma ambígua: linhas duplicadas, compromissos que não refletem bem a que utilização se aplicaram, encargos mal classificados. Cada correção é uma regra escrita e com a sua razão, não um ajuste à mão.

4. Atómico. O dado levado à sua unidade mínima útil: uma linha por recurso, por período e por tipo de encargo, com custo de tabela, faturado e efetivo. É a camada da qual deriva tudo o resto e a que se usa para conciliar com a fatura.

5. Atribuído. Cada custo atribuído a um responsável: equipa, aplicação, produto. Inclui as regras para repartir o que é partilhado e o que não tem etiqueta.

6. Consumo. Tabelas largas e preparadas para responder a perguntas concretas: custo por produto e mês, custo por unidade de negócio, desvio face ao orçamento. É o que leem os painéis e os relatórios.

Princípios de desenho

  • O que está em bruto nunca se modifica. Tudo o resto pode ser regenerado a partir daí.
  • Uma responsabilidade por camada. Se uma camada normaliza e atribui, quando falhar não se saberá qual das duas coisas falhou.
  • Regras escritas, não ajustes manuais. Cada correção e cada regra de atribuição vive no código ou na configuração, com a razão ao lado.
  • Conciliação em cada volta. O total do período na camada atómica tem de bater certo com a fatura. Se não bater, o pipeline para antes de publicar.
  • Reprocessável. Qualquer período pode ser recalculado de ponta a ponta e deve dar o mesmo resultado.

Com essa disciplina, o pipeline deixa de ser a caixa negra de uma pessoa e passa a ser um sistema que qualquer pessoa da equipa consegue auditar seis meses depois.


Como o aplicamos: Engenharia FinOps.

Se o seu custo cloud cresce sem que ninguém saiba porquê, ou a sua arquitetura depende de quem a montou, falemos.

Falemos