Microservices, Service Mesh, and CI/CD Pipelines

Microservices come with many advantages for massively scaling applications. CI/CD is a common approach to automating updates to these applications in kubernetes. Strategies such as canary deployments can be simple with a basic website, but this is a difficult task with distributed systems. I would argue that many CI/CD systems are missing some key components such as: advanced routing, observability, and chaos testing. Service mesh solutions bring these missing components to kubernetes allowing us to shape traffic to specific versions and obtain metrics to better understand the impact of updates. will show how service mesh technologies such as istio, conduit, or linkerd ease the ability to efficiently deliver and test microservices in Kubernetes.
展开查看详情

1.Microservices, Service Mesh, and CI/CD Pipelines: Making it All Work Together Brian Redmond, Microsoft

2.Who am I? Brian Redmond • Cloud Architect @ Microsoft (17 years) • Azure Global Black Belt Team • Live in Pittsburgh, PA, USA • Avid marathon runner and outdoors enthusiast • World traveler @chzbrgr71

3.

4.Microservices The answer to all problems. @chzbrgr71

5.Containers The answer to all problems. @chzbrgr71

6.Kubernetes The answer to all problems. @chzbrgr71

7.

8.

9.

10.

11.@chzbrgr71

12.Deployment Strategies • Container Native Development • Continuous Integration • Continuous Deployment • Blue/Green Testing • Canary Testing • A/B Testing @chzbrgr71

13.Blue / Green Testing v1 proxy testing v2 @chzbrgr71

14.Canary Testing v1 80% proxy 100% 20% v2 @chzbrgr71

15.A / B Testing v1 Live Traffic proxy Duplicate for analysis v2 @chzbrgr71

16.Microservices Deployment proxy ui @chzbrgr71

17.What’s missing?

18.advanced routing

19.observability

20.chaos testing

21.Enter Istio • Service discovery and routing • Health checking • Observability • Authentication and authorization • Resiliency • Policy enforcement @chzbrgr71

22.Istio @chzbrgr71

23.What can I do with Istio? advanced routing → route rules, traffic shaping observability → metrics, logs, and tracing chaos testing → fault injection (delays, faults) @chzbrgr71

24.what about a CI/CD tool?

25.@chzbrgr71

26. What is brigade? brigade = event-driven scripting for kubernetes • Encapsulate functions in containers • Run in parallel or serial • Trigger workflow from Github, Docker registry, etc. • Javascript (pipeline as code) • Project config stored as secrets • Well suited for CI/CD pipelines @chzbrgr71

27.@chzbrgr71

28.Demo Time @chzbrgr71

29.Demo App Architecture Azure Kubernetes Service api-earthquakes Azure api-fracking CosmosDB web-earth api-weather api-location api-flights @chzbrgr71