Slide 1

Slide 1 text

Platform Engineering Lessons Learned Maio/2024

Slide 2

Slide 2 text

Fernando Ike // linkedin.com/in/fernandoike // hachyderm.io/@fernandoike // pontocafe.fernandoike.com

Slide 3

Slide 3 text

O que são Plataformas? ● Plataformas?

Slide 4

Slide 4 text

Plataformas “... é uma fundação de APIs, ferramentas, serviços, conhecimento e suporte de forma self-service no qual eles são organizados como um produto interno atrativo. Equipes autônomas podem usar a plataforma para entregar as funcionalidades em ritmo acelerado e com redução da coordenação” Evan Bottcher - https://martinfowler.com/articles/talk-about-platforms.html

Slide 5

Slide 5 text

Plataformas “Platform Engineering é uma disciplina que envolve o que seja necessário para construir, manter e fornecer uma experiência de plataforma com uma curadoria para toda comunidade que está usando” Nikki Watt - https://www.infoq.com/articles/platform-engineering-as-community-service/

Slide 6

Slide 6 text

No content

Slide 7

Slide 7 text

Trusted Advisor ● Serem “guardiões” dos conceitos, práticas e aplicados pelas equipes ● Ser guardião é não ser dono mas “governar” ● Capacitação dos usuários ○ Treinamentos ○ Workshops ○ Office-Hours ○ Documentação

Slide 8

Slide 8 text

Trusted Advisor ● Suporte (Dê atenção aos seus usuários): ○ Nāo despreze perguntas de recorrentes ○ Muito suporte ocorrendo pode significar falta de conhecimento do(s) usuário(s) ○ Muito suporte pode ser baixa qualidade ou pouca abstração ○ Uma boa UX/UI diminui a carga cognitiva ● Ser a referência em Engenharia de Software da organização

Slide 9

Slide 9 text

“Usuários não precisam saber (se não quiserem) o que está relacionado ao(s) conceito(s), técnicas e regras (guard-rails) para usar a plataforma. Devem saber quais são as regras básicas de uso e sentir que agrega valor ao que ele precisa fazer."

Slide 10

Slide 10 text

Usuários da(s) “plataforma(s)” Não precisam saber tudo da(s) plataforma(s) que utilizam Irão querer saber o necessário (para eles) Quando desenvolver funcionalidades é “caro”, priorize entregas de curto prazo que impactem o longo prazo (Network Effect) Saber quem são seus usuários e como se comportam é mais importante do que acreditar que está fazendo “a coisa certa” Seus usuários não são “idiotas”

Slide 11

Slide 11 text

Uma boa fundação da(s) plataforma(s) construída, potencialmente, pode aumentar a produtividade, resiliência e segurança de forma exponencial ao longo dos anos.

Slide 12

Slide 12 text

Foundation ● Curadoria ou influência em frameworks de linguagens de programação ● Um framework de decisão arquitetural ● SDKs, Libs, integrações e templates para os principais frameworks da organização ● Microservice chassis specification ● Domain-Driven Design (responsabilidades e limites claros) ● Modular (Building Blocks)

Slide 13

Slide 13 text

Foundation Uma decisão ruim de arquitetura, integração, interface, tecnológica pode ter impacto de anos na produtividade das pessoas, novas funcionalidades e competitividade

Slide 14

Slide 14 text

https://www.latimes.com/archives/la-xpm-1999-oct-01-mn-17288-story.html

Slide 15

Slide 15 text

Contratos Fortes ● JSON, Protobuf, YAML, CLI, UI… ● SDKs, bibliotecas, wrappers, scaffolders, templates… ● Logs, Métricas e Traces ● Recursos computacionais ○ Instance Types ○ CPUs, Memory, Disk ○ Databases Types ○ Guard-rails ● SLAs

Slide 16

Slide 16 text

Guard-Rails das Plataformas São mecanismo, processos de contenção, mitigação e proteção das plataformas para evitar uso inadequado pelos workloads e usuários, mantendo uma boa experiência, atendendo o regulatório e eficiência operacional, como também financeira.

Slide 17

Slide 17 text

BR-376 - Área de Escape

Slide 18

Slide 18 text

Comparação antes e depois - Área de Escape Revista de Engenharia e Pesquisa Aplicada, v., n. 1, p. 1-10, 2022 - Análise comparativa do aumento na segurança dos usuários da rodovia BR-376/PR com a implantação das áreas de escape

Slide 19

Slide 19 text

Feedbacks

Slide 20

Slide 20 text

Feedback dos "usuários" Feedbacks rápidos ou pontuais (IDP, PR/MR, Slack, Teams, IRC…) Feedbacks quantitativos, vide formulários (Chats, Mailist, etc.) Feedbacks qualitativos (Entrevistas) Quantidade de bugs reportados ou suporte Fit for Purpose, CSAT, NPS…

Slide 21

Slide 21 text

Ciclo de desenvolvimento da plataforma Etapas de desenvolvimento definida Política de Deploy Semantic Version WIP Limit Classe de Serviço (SLAs)

Slide 22

Slide 22 text

No content

Slide 23

Slide 23 text

No content

Slide 24

Slide 24 text

Cumulative Flow Diagram

Slide 25

Slide 25 text

Engineering stuff Refactoring > substituição de projeto/serviço Excelência em desenvolvimento, operações, segurança Tenha testes de regressão Tenha testes de integração SBOM, SAST, WAF, etc.

Slide 26

Slide 26 text

Platform as Product/Product Um Technical Product Manager acelera adoção e valor Migrações de funcionalidades pouco "maduras" exigem um custo de coordenação alto demanda papel dedicado de Technical Project Management Evite concorrência de adoção ou migração de funcionalidades (Death March) de pouca ou nenhuma abstração Communicação (as)síncrona com stakeholders, usuários, entusiastas e toda comunidade tech

Slide 27

Slide 27 text

Indicadores % de uso % de aderência aos padrões % Champions/Ambassadors % de suporte % novas funcionalidades DORA Metrics (Capabilities Metrics) SPACE Framework

Slide 28

Slide 28 text

Eficiência “Econômica” Custo da(s) plataforma(s) por mil/milhão de transações % da(s) plataforma(s) no CAPEX/OPEX em Tecnologia Impacto financeiro da(s) plataforma(s) num incidente Platform(s) com seu próprio “unit economic”

Slide 29

Slide 29 text

Plataformas vs Custos

Slide 30

Slide 30 text

Evolução das plataformas

Slide 31

Slide 31 text

Referências DORA Research Program Domain-Driven Design Distilled Continuous Delivery Kanban DevOps Capabilities Conway Law The Goal PixBay CNCF Landscape XKCD Platform Revolution Fit for Purpose Death March Platform Engineering Maturity

Slide 32

Slide 32 text

Fernando Ike // linkedin.com/in/fernandoike // hachyderm.io/@fernandoike // pontocafe.fernandoike.com