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

Microservices, DevOps, Continuous Delivery – Mo...

Microservices, DevOps, Continuous Delivery – More Than Three Buzzwords

Microservices, DevOps and Continuous Delivery are three hypes at the moment. This talk looks into the relationships between these three approaches and gives an idea how these approaches help to solve concrete problems. Held at Continuous Lifecycle 2015.

Eberhard Wolff

November 11, 2015
Tweet

More Decks by Eberhard Wolff

Other Decks in Programming

Transcript

  1. UNIX Philosophy > Write programs that do one thing and

    do it well > Write programs to work together > Write programs with a common interface
  2. Definition Microservice > Independent deployment unit > Separate data handling

    & storage > Should include UI > Order process, Billing, Catalog… > Process > VM > Docker container Server Micro Service
  3. Continuous Delivery: Build Pipeline Commit Stage Automated Acceptance Testing Automated

    Capacity Testing Manual Explorative Testing Release Deploy Deploy Deploy Deploy Automated Reproducible Fast
  4. Continuous Delivery: Build Pipeline Commit Stage Automated Acceptance Testing Automated

    Capacity Testing Manual Explorative Testing Release Deploy Deploy Deploy Deploy Billing
  5. Microservices: Challenges > 50 or 100 Microservices > Deployment? >

    Monitoring? > Log Analysis? > Need Automation > Need common foundation for operations > Small deployment units are not enough
  6. Continuous Delivery Pipeline Commit Stage Automated Acceptance Testing Automated Capacity

    Testing Manual Explorative Testing Release Integration Test Microservice Complete System Commit Stage Automated Acceptance Testing Automated Capacity Testing Manual Explorative Testing Commit Stage Automated Acceptance Testing Automated Capacity Testing Manual Explorative Testing
  7. Conway’s Law as a Limit > Organization drives architecture >

    Teams of experts > i.e. UI, logic & database team > Three technical artifacts
  8. Order Search Billing Team for each business feature Let architecture

    drive the organization Order Billing Search
  9. Deployment Monolith + Conway’s Law Deployment Monolith Stories Technical Coordination

    Coordinating Releases Stories Stories Order Billing Search
  10. Team can deploy without integration Changes can be deployed independently

    & quickly Strong & enforced modularization Technology stack per Microservice One or many Microservices per Team Synergy Microservices / Conway’s Law Order Search Billing Order Billing Search
  11. Microservices Microservice Stories Technical Coordination Microservice Stories Technical Coordination Microservice

    Stories Technical Coordination Order Billing Search Release Release Release
  12. Macro-Architecture > Global decision > Influence the whole system >

    i.e. all Microservices > Less Marco-Architecture – less coordination
  13. Macro- and Micro- Architecture for Ops > Macro > Define

    Log Analysis, Monitoring, Deployment tools > Defined globally > Micro > Concrete deployment, monitoring, logging > Defined per team / Microservice
  14. DevOps / Microservices > Teams consist primarily of Devs >

    Devs interested in Docker, ELK ... > ... lots of experience in Ops > More Ops effort
  15. How Much DevOps is Needed? > Should all teams do

    full ops for their services? > IMHO optional > But: Organizational barriers might cause additional technical complexity
  16. Continuous Delivery: Build Pipeline Commit Stage Automated Acceptance Testing Automated

    Capacity Testing Manual Explorative Testing Release Dev Ops Common Technologies Log, Monitoring, Deployment
  17. Maintainability: New Approach Commit Stage Automated Acceptance Testing Automated Capacity

    Testing Manual Explorative Testing Release Fast und Reliable Fast Feedback
  18. Maintainibility: New Approach > Continuous Delivery simplifies roll out >

    ...and test them > ...and monitor them > Microservices limit size and risk of changes DevOps
  19. Performance Risk > Hard to really predict performance > Load

    test simulate user on a different environment
  20. Scalability: Alternative Approach > Don‘t do anything stupid in the

    architecture > Identify bottleneck > Eliminate bottleneck > Common technique
  21. Maintainability: New Approach Commit Stage Automated Acceptance Testing Automated Capacity

    Testing Manual Explorative Testing Release Fast Monitor all relevant data
  22. Conclusion > Synergy: Microservices and Continuous Delivery > Microservices and

    Continuous Delivery support and require DevOps > DevOps = Collaboration > Enable alternative approaches e.g. to maintainability and scalability