$30 off During Our Annual Pro Sale. View Details »

Platform Engineering - Lessons Learned

Platform Engineering - Lessons Learned

Apresentação para o evento Platform Engineering Days São Paulo sobre algumas lições aprendidas de construir e implementar plataformas nos últimos anos.

https://www.linkedin.com/events/7043629247650770944/comments/

Fernando ike

March 27, 2023
Tweet

More Decks by Fernando ike

Other Decks in Technology

Transcript

  1. 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
  2. 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/
  3. “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."
  4. 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”
  5. 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
  6. 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
  7. 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.
  8. 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)
  9. 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
  10. 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
  11. 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
  12. Ciclo de desenvolvimento da plataforma Etapas de desenvolvimento definida Política

    de Deploy Semantic Version WIP Limit Classe de Serviço (SLAs)
  13. 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.
  14. 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
  15. Indicadores % de uso % de aderência aos padrões %

    Champions/Ambassadors % de suporte % novas funcionalidades DORA Metrics (Capabilities Metrics) SPACE Framework
  16. 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