Slide 1

Slide 1 text

Platform Engineering Lessons Learned Platform Days Sao Paulo - 2023

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

“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 7

Slide 7 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 8

Slide 8 text

No content

Slide 9

Slide 9 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 10

Slide 10 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 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

https://xkcd.com/2347/

Slide 14

Slide 14 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 15

Slide 15 text

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

Slide 16

Slide 16 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 17

Slide 17 text

Feedbacks

Slide 18

Slide 18 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 > NPS

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

No content

Slide 21

Slide 21 text

No content

Slide 22

Slide 22 text

Cumulative Flow Diagram

Slide 23

Slide 23 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 24

Slide 24 text

Platform as Product/Product Um Technical Product Manager pode acelerar adoção e valor Migrações de funcionalidades pouco "maduras" exigem um custo de coordenação alto (considerar um Technical Project Management) Evite concorrência de adoção ou migração de funcionalidades (Death March) de pouca ou nenhuma abstração

Slide 25

Slide 25 text

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

Slide 26

Slide 26 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

Slide 27

Slide 27 text

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