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

Continuous Delivery of Microservices

Sponsored · SiteGround - Reliable hosting with speed, security, and support you can count on.
Avatar for Aditya Aditya
February 01, 2019

Continuous Delivery of Microservices

Avatar for Aditya

Aditya

February 01, 2019
Tweet

Other Decks in Technology

Transcript

  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