Slide 1

Slide 1 text

Continuous Delivery of MicroServices

Slide 2

Slide 2 text

Topics ● CI vs CD ● Challenges in CD of Microservices ● Testing strategies ● Feature Toggles ● Managing multiple environments ● Deployment/Rollback Strategies ● Monitoring vs Observability ● Security

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

Categories of toggles

Slide 8

Slide 8 text

Managing Environments

Slide 9

Slide 9 text

Deployment Strategies ● Canary Deployments ● Blue-Green Deployments ● Rolling Update ● Server instance per Virtual machine vs Server instance per Container

Slide 10

Slide 10 text

RollBack Strategies ● Emergency fix Strategies ○ Roll forward ○ Roll back ● Backward Compatibility ○ Versioning ○ Database Refactoring ○ Apply database changes out of band

Slide 11

Slide 11 text

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.

Slide 12

Slide 12 text

Security in CD ● Secrets Management ● Scanning Images and Containers for Vulnerabilities ● Alternatives to containers which provide high security