Architecting for Continuous Delivery

A5318ed063b0aee67b594cc29975da7c?s=47 Erwin Staal
February 28, 2019

Architecting for Continuous Delivery

A5318ed063b0aee67b594cc29975da7c?s=128

Erwin Staal

February 28, 2019
Tweet

Transcript

  1. Architecting for Continuous Delivery Erwin Staal | 4DotNet | @erwin_staal

  2. Software Engineer 4DotNet @erwin_staal Erwin Staal

  3. How do we architect for Continuous Delivery?

  4. The ability to get changes—features, configuration changes, bug fixes and

    experiments—into production, or into the hands of users, safely and quickly in a sustainable way Jez Humble - Author of ‘Continuous Delivery’
  5. State of DevOps Report 2018

  6. The two rules Everyone is checking into trunk daily (at

    least) Software (trunk) is always deployable
  7. Foundations Configuration management Continuous integration (CI) Continuous testing

  8. None
  9. Portability Testability Scalability Security Maintainability Usability Availability Personalizability Responsiveness Upgradability

    Extensibility Flexibility Deployability
  10. Deployability Testability

  11. Operations at web scale is the ability to consistently create

    and deploy reliable software to an unreliable platform that scales horizontally Jesse Robbins - former ‘Master of Disaster’ @ Amazon
  12. CAP Theorem Eric Brewers

  13. Operations at web scale is the ability to consistently create

    and deploy reliable software to an unreliable platform that scales horizontally Jesse Robbins - former ‘Master of Disaster’ @ Amazon
  14. Decomposition of systems

  15. Component / service Part of your system that could be

    swapped out for another implementation Martin Fowler
  16. Component / service Make system more maintainable (better encapsulation, lower

    coupling) Make system easier to build and test Enable collaboration (one team per service)
  17. Bind components at Run Time (Microservice) Independent deployment Use cluster

    infrastructure Kubernetes, Service Fabric, … Don’t break downstream API versioning Blue / Green deployment Cater for failure in downstream system Circuit breaker Retry pattern Monitoring is complex
  18. Bind components at Build Time (Monolith) Google, Facebook, Etsy Continuous

    Integration at scale
  19. Architecture evolves

  20. Monolith First Martin Fowler

  21. Microservice Monolith Productivity Complexity

  22. None
  23. Strangler application

  24. None
  25. Erwin Staal @erwin_staal https://www.linkedin.com/in/erwinstaal/ Contact