Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Continuous Delivery, DevOps, Cloud - New Requir...

Continuous Delivery, DevOps, Cloud - New Requirements for New Architectures

How Continuous Delivery, DevOps and Cloud influence Software Architecture - and how it all helps to achieve the goals for the system.

Eberhard Wolff

October 21, 2015
Tweet

More Decks by Eberhard Wolff

Other Decks in Technology

Transcript

  1. Scenario “Support Different Mobile platform” Scenario “Search faster than 5s”

    Efficency Latency Cost Security Data privacy Secrecy Integrity Maintainability Understandability Changeability Portability Changeability Availability User error Hardware failure Recovery time Usability Time to learn
  2. ECommerce Order Customer Delivery Ca. 100 developers QA Operations Software

    modules How to test? Manual Hand over Manual Hand over How to operate? Scalability Availability Changeability Architecture
  3. Continuous Delivery (CD) Pipeline >  Better Time-to-Market >  Reproducible tests

    and deployments >  More tests >  Deployment = natural part of the process Commit Stage Automated Acceptance Testing Automated Capacity Testing Manual Explorative Testing Release
  4. ECommerce Order Customer Delivery Ca. 100 developers QA Operations Software

    modules How to test? Manual Hand over Manual Hand over How to operate? Architecture Scalability Availability Changeability Continuous Delivery
  5. Quality Attributes for Continuous Delivery >  Simple Deployment >  …simplifies

    automation >  Easy testing >  …for acceptance tests, too >  ...probably API, not UI-based >  Hexagonal Architecture: Tests = another client
  6. Quality Attributes for Continuous Delivery >  Make deployment less risky

    >  Resilience >  i.e. failure of one module should not make other modules fail >  Bulkhead
  7. Continuous Delivery >  Supports Quality Attributes >  Changeability >  Demand

    Quality Attributes >  Simple Deployment >  Good testability >  Resilience
  8. Size Matters! >  Large applications hard to deploy >  Hard

    to test >  Lots of regression testing >  Hard to roll back / safeguard deployments
  9. Microservices solve all problems? >  Probably not >  But: Software

    Architecture was about modules and development >  It should be about testing, deployment and operations, too!
  10. ECommerce Order Customer Delivery Ca. 100 developers QA Operations Software

    modules How to test? Manual Hand over Manual Hand over How to operate? Scalability Availability Changeability
  11. ECommerce Order Customer Delivery Ca. 100 developers QA Operations Software

    modules How to test? How to operate? Architecture Scalability Availability Changeability Continuous Delivery
  12. ECommerce Order Customer Delivery Ca. 100 developers QA Operations JVM

    ClassLoader App Server No visibility in production App-specific metrics Kernel I/Os CPU Monitoring, alarms
  13. DevOps Architecture >  Broadens scope of architecture >  What are

    relevant metrics? App or OS >  How to monitor? >  Alarm if? >  Provide access to full team
  14. Efficency Latency Cost Security Data privacy Secrecy Integrity Maintainability Understandability

    Changeability Portabiity Changeability Availability User error Hardware failure Recovery time Usability Time to learn
  15. ECommerce Order Customer Delivery Ca. 100 developers QA Operations Software

    modules How to test? How to operate? Architecture Scalability Availability Changeability Continuous Delivery
  16. Scaling >  Traditional: Architecture will solve it >  Cloud: Start

    more server >  …if load increases >  Pay-as-you-go
  17. Scaling >  Traditional: Architecture enables scaling >  There will be

    bottlenecks >  But: Hard to know bottleneck >  Monitoring to identify bottleneck >  Continuous Delivery to deploy fixes for bottleneck
  18. ECommerce Order Customer Delivery Ca. 100 developers QA Operations Software

    modules How to test? How to operate? Architecture Scalability Availability Changeability Continuous Delivery
  19. Instagram >  Global photo sharing >  S3 storage >  Cloudfront

    Content Delivery Network >  Custom code >  3 engineers (Dev and Ops) >  10 mio user >  100 mio photos
  20. Efficency Latency Cost Security Data privacy Secrecy Integrity Maintainability Understandability

    Changeability Portabiity Changeability Availability User error Hardware failure Recovery time Usability Time to learn
  21. Enabler Continuous Delivery / DevOps >  Much easier deployment > 

    Create server, deploy software – via API >  Integrated Monitoring
  22. Amazon SLAs on One Slide >  If one of our

    data centers fails… >  Well, that’s your problem >  And we do reboot your server randomly.
  23. Amazon SLAs on One Slide >  If a data center

    fails >  Well, that’s your problem >  And we do reboot your server randomly. >  But you can always start new servers >  …in other data centers >  ...or regions
  24. Efficency Latency Cost Security Data privacy Secrecy Integrity Maintainability Understandability

    Changeability Portabiity Changeability Availability User error Hardware failure Recovery time Usability Time to learn
  25. Dynamic Scaling & Availability >  Start more server >  …if

    servers crash >  Architecture must be stateless >  Servers must handle load from the beginning
  26. The Cloud Paradox >  Unreliable hardware >  …and not too

    powerful hardware >  …are the ideal foundation for reliable & scalable software.
  27. Cloud >  Supports Quality Attributes >  Scaling >  Time-to-Market > 

    Availability >  Demand Quality Attributes >  Resilience
  28. Conclusion >  Know the desired quality attributes! >  Continuous Delivery

    >  Demands smaller, easier to deploy units >  Demands testability >  Offers changeability
  29. Conclusion >  DevOps enables CD architectures >  …brings other experts

    to the teams >  Scalability = Monitoring + fast deployment?