Pular para o conteúdo principal

Engenharia de Plataforma

Capa do livro Engenharia de Plataforma

Engenharia de Plataforma

Autor: Camille Fournier e Ian Nowland
Data de publicação: 2025

Notas

  • Pelo menos 60-70% do custo da vida útil do software aumenta apos o desenvolvimento inicial. (p. 25)
  • Na pressa de entregar, eles criam qualquer cola personalizada necessária para manter tudo unido e são recompensados com elogios pela entrega rápida (p. 25)
  • Antigo principio de arquitetura, mais caixas, menos linhas (p. 26)
  • Mias cola YAML e menos cola terraform. Mas o objetivo principal da engenharia de plataforma é reduzir a cola total. (p. 29)
  • O problema com o OSS é proliferação de escolhas, Equipes de aplicativos com necessidades especificas geralmente podem encontrar uma solução OSS que seja ótima para elas mas não necessariamente para a organização como um todo. (p. 29)
  • Padronização por meio de autoridade não basta. (p. 32)
  • Pode ser difícil para um ovo se transformar em um pássaro; seria muita mais difícil para um pássaro apresentar a voar enquanto permanece um ovo. - C. S. Lewis (p. 55)
  • Construir plataformas /e mais do que operar, dimensionar e dar suporte ao software de outras pessoas. (p. 57)
  • Quantos mais pontos de coordenação ele tem que atravessar para entregar seus produtos, mais difícil o trabalho se torna (p. 67)
  • Desembaraçar mais do que rearquitetar (p. 69)

Conceitos

  • Plataforma: Base de APIs de autoatendimento, ferramentas e serviços que suportam o desenvolvimento, implantação e operação de aplicativos.
  • Engenharia de Plataforma: Disciplina focada na criação e manutenção de plataformas que facilitam o trabalho das equipes de desenvolvimento, promovendo eficiência e escalabilidade.
  • Alavancagem: Capacidade de maximizar a produtividade e eficiência das equipes de desenvolvimento através do uso de plataformas e ferramentas compartilhadas. O trabalho de uma equipe de plataforma é criar alavancagem para outras equipes.
  • Produto: Uma plataforma deve ser tratada como um produto, com foco nas necessidades dos usuários (desenvolvedores) e na entrega de valor contínuo.
  • Primitivo: Componentes básicos e reutilizáveis que formam a base de uma plataforma, permitindo que as equipes construam soluções mais complexas de maneira eficiente.
  • Caminhos pavimentados: Conjuntos de práticas recomendadas e ferramentas que facilitam o desenvolvimento e a implantação de aplicativos, reduzindo a complexidade para as equipes de desenvolvimento.
  • Ferrovias: Como as equipes de aplicativos solucinam problemas na lacuna.

Pantano generalizado: Situação em que múltiplas equipes criam soluções personalizadas para problemas semelhantes, resultando em complexidade e ineficiência. Causas:

  • Explosão de escolhas: Muitas opções de ferramentas e tecnologias levam as equipes a escolherem soluções diferentes para problemas semelhantes.

  • Maiores necessidades operacionais: À medida que as organizações crescem, as necessidades operacionais se tornam mais complexas, levando as equipes a desenvolverem soluções personalizadas.

  • Integrando registro de metadados: Propriedade, controle de acesso, eficiência de custos, migrações, sistema de gerenciamento de tags, registro de API/esquema, portais internos do desenvolvedor (IDP).

  • Autoatendimento: Interfaces de autoatendimento, observabilidade do usuário, guardrails e multilocação

**Plataformas que dão alavancagem em tempo de desenvolvimento mas não de operação: Plataformas de provisionamento, plataformas de framework e plataforma de ferramentas.