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

Continuous Delivery of Microservices

February 01, 2019

Continuous Delivery of Microservices


February 01, 2019

Other Decks in Technology


  1. Topics • CI vs CD • Challenges in CD of

    Microservices • Testing strategies • Feature Toggles • Managing multiple environments • Deployment/Rollback Strategies • Monitoring vs Observability • Security
  2. CI vs CD “Continuous Integration (CI) is a development practice

    that requires developers to integrate code into a shared repository several times a day.” Continuous Delivery(CD) is the ability to take changes of all types - including new features, configuration, bug fixes and experiments - into production, safely and quickly in a sustainable way If you can not deploy right now, you are not following CD
  3. Challenges in CD of Microservices • Maintaining the integrity of

    complex distributed systems • Safely and Rapidly releasing features constantly • Managing deployments of disparate technology stacks • Process and tooling for deploying services independently and out of band
  4. Testing Strategies • Test pyramid - Is it good enough?

    • Test pyramid helps in testing individual services - how about the complete product? • Integration vs End to End testing • Are you ready to test on production? ◦ Distributed Testing ◦ Fault-Injection Testing ◦ A/B Testing
  5. Feature toggles • Feature toggles are essential to maintain WIP

    and completed features together • Types of feature toggles ◦ Release toggles ◦ Ops toggles ◦ Permission toggles ◦ Experimental toggles
  6. Deployment Strategies • Canary Deployments • Blue-Green Deployments • Rolling

    Update • Server instance per Virtual machine vs Server instance per Container
  7. RollBack Strategies • Emergency fix Strategies ◦ Roll forward ◦

    Roll back • Backward Compatibility ◦ Versioning ◦ Database Refactoring ◦ Apply database changes out of band
  8. Monitoring vs Observability • Observability is achieved when data is

    made available from within the system that you wish to monitor. • Monitoring is the actual task of collecting and displaying this data. • Analysis is performed on the data collected from the monitoring tools.
  9. Security in CD • Secrets Management • Scanning Images and

    Containers for Vulnerabilities • Alternatives to containers which provide high security