Making it All Work Together CI/CD Pipelines: Microservices ... · CI/CD Pipelines: Making it All...

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

Transcript of Making it All Work Together CI/CD Pipelines: Microservices ... · CI/CD Pipelines: Making it All...

Page 1: Making it All Work Together CI/CD Pipelines: Microservices ... · CI/CD Pipelines: Making it All Work Together Brian Redmond, Microsoft. Who am I? ... Docker registry, etc. • Javascript

Microservices, Service Mesh, and CI/CD Pipelines:

Making it All Work Together

Brian Redmond, Microsoft

Page 2: Making it All Work Together CI/CD Pipelines: Microservices ... · CI/CD Pipelines: Making it All Work Together Brian Redmond, Microsoft. Who am I? ... Docker registry, etc. • Javascript

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

Page 3: Making it All Work Together CI/CD Pipelines: Microservices ... · CI/CD Pipelines: Making it All Work Together Brian Redmond, Microsoft. Who am I? ... Docker registry, etc. • Javascript
Page 4: Making it All Work Together CI/CD Pipelines: Microservices ... · CI/CD Pipelines: Making it All Work Together Brian Redmond, Microsoft. Who am I? ... Docker registry, etc. • Javascript

Microservices

@chzbrgr71

The answer to all problems.

Page 5: Making it All Work Together CI/CD Pipelines: Microservices ... · CI/CD Pipelines: Making it All Work Together Brian Redmond, Microsoft. Who am I? ... Docker registry, etc. • Javascript

Containers

@chzbrgr71

The answer to all problems.

Page 6: Making it All Work Together CI/CD Pipelines: Microservices ... · CI/CD Pipelines: Making it All Work Together Brian Redmond, Microsoft. Who am I? ... Docker registry, etc. • Javascript

Kubernetes

@chzbrgr71

The answer to all problems.

Page 7: Making it All Work Together CI/CD Pipelines: Microservices ... · CI/CD Pipelines: Making it All Work Together Brian Redmond, Microsoft. Who am I? ... Docker registry, etc. • Javascript
Page 8: Making it All Work Together CI/CD Pipelines: Microservices ... · CI/CD Pipelines: Making it All Work Together Brian Redmond, Microsoft. Who am I? ... Docker registry, etc. • Javascript
Page 9: Making it All Work Together CI/CD Pipelines: Microservices ... · CI/CD Pipelines: Making it All Work Together Brian Redmond, Microsoft. Who am I? ... Docker registry, etc. • Javascript
Page 10: Making it All Work Together CI/CD Pipelines: Microservices ... · CI/CD Pipelines: Making it All Work Together Brian Redmond, Microsoft. Who am I? ... Docker registry, etc. • Javascript
Page 11: Making it All Work Together CI/CD Pipelines: Microservices ... · CI/CD Pipelines: Making it All Work Together Brian Redmond, Microsoft. Who am I? ... Docker registry, etc. • Javascript

@chzbrgr71

Page 12: Making it All Work Together CI/CD Pipelines: Microservices ... · CI/CD Pipelines: Making it All Work Together Brian Redmond, Microsoft. Who am I? ... Docker registry, etc. • Javascript

Deployment Strategies

• Container Native Development• Continuous Integration• Continuous Deployment• Blue/Green Testing• Canary Testing• A/B Testing

@chzbrgr71

Page 13: Making it All Work Together CI/CD Pipelines: Microservices ... · CI/CD Pipelines: Making it All Work Together Brian Redmond, Microsoft. Who am I? ... Docker registry, etc. • Javascript

Blue / Green Testing

v1

proxy

v2

testing

@chzbrgr71

Page 14: Making it All Work Together CI/CD Pipelines: Microservices ... · CI/CD Pipelines: Making it All Work Together Brian Redmond, Microsoft. Who am I? ... Docker registry, etc. • Javascript

Canary Testing

v1

proxy

v2

80%

20%100%

@chzbrgr71

Page 15: Making it All Work Together CI/CD Pipelines: Microservices ... · CI/CD Pipelines: Making it All Work Together Brian Redmond, Microsoft. Who am I? ... Docker registry, etc. • Javascript

A / B Testing

v1

proxy

v2

Duplicate for analysis

Live Traffic

@chzbrgr71

Page 16: Making it All Work Together CI/CD Pipelines: Microservices ... · CI/CD Pipelines: Making it All Work Together Brian Redmond, Microsoft. Who am I? ... Docker registry, etc. • Javascript

Microservices Deployment

ui

proxy

@chzbrgr71

Page 17: Making it All Work Together CI/CD Pipelines: Microservices ... · CI/CD Pipelines: Making it All Work Together Brian Redmond, Microsoft. Who am I? ... Docker registry, etc. • Javascript

What’s missing?

Page 18: Making it All Work Together CI/CD Pipelines: Microservices ... · CI/CD Pipelines: Making it All Work Together Brian Redmond, Microsoft. Who am I? ... Docker registry, etc. • Javascript

advanced routing

Page 19: Making it All Work Together CI/CD Pipelines: Microservices ... · CI/CD Pipelines: Making it All Work Together Brian Redmond, Microsoft. Who am I? ... Docker registry, etc. • Javascript

observability

Page 20: Making it All Work Together CI/CD Pipelines: Microservices ... · CI/CD Pipelines: Making it All Work Together Brian Redmond, Microsoft. Who am I? ... Docker registry, etc. • Javascript

chaos testing

Page 21: Making it All Work Together CI/CD Pipelines: Microservices ... · CI/CD Pipelines: Making it All Work Together Brian Redmond, Microsoft. Who am I? ... Docker registry, etc. • Javascript

Enter Istio

• Service discovery and routing• Health checking• Observability• Authentication and authorization• Resiliency• Policy enforcement

@chzbrgr71

Page 22: Making it All Work Together CI/CD Pipelines: Microservices ... · CI/CD Pipelines: Making it All Work Together Brian Redmond, Microsoft. Who am I? ... Docker registry, etc. • Javascript

Istio

@chzbrgr71

Page 23: Making it All Work Together CI/CD Pipelines: Microservices ... · CI/CD Pipelines: Making it All Work Together Brian Redmond, Microsoft. Who am I? ... Docker registry, etc. • Javascript

What can I do with Istio?

advanced routing → route rules, traffic shaping

observability → metrics, logs, and tracing

chaos testing → fault injection (delays, faults)

@chzbrgr71

Page 24: Making it All Work Together CI/CD Pipelines: Microservices ... · CI/CD Pipelines: Making it All Work Together Brian Redmond, Microsoft. Who am I? ... Docker registry, etc. • Javascript

what about a CI/CD tool?

Page 25: Making it All Work Together CI/CD Pipelines: Microservices ... · CI/CD Pipelines: Making it All Work Together Brian Redmond, Microsoft. Who am I? ... Docker registry, etc. • Javascript

@chzbrgr71

Page 26: Making it All Work Together CI/CD Pipelines: Microservices ... · CI/CD Pipelines: Making it All Work Together Brian Redmond, Microsoft. Who am I? ... Docker registry, etc. • Javascript

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

Page 27: Making it All Work Together CI/CD Pipelines: Microservices ... · CI/CD Pipelines: Making it All Work Together Brian Redmond, Microsoft. Who am I? ... Docker registry, etc. • Javascript

@chzbrgr71

Page 28: Making it All Work Together CI/CD Pipelines: Microservices ... · CI/CD Pipelines: Making it All Work Together Brian Redmond, Microsoft. Who am I? ... Docker registry, etc. • Javascript

Demo Time

@chzbrgr71

Page 29: Making it All Work Together CI/CD Pipelines: Microservices ... · CI/CD Pipelines: Making it All Work Together Brian Redmond, Microsoft. Who am I? ... Docker registry, etc. • Javascript

web-earth

Demo App Architecture

api-earthquakes

api-fracking

api-weather

api-flights

api-location

AzureCosmosDB

Azure Kubernetes Service

@chzbrgr71

Page 30: Making it All Work Together CI/CD Pipelines: Microservices ... · CI/CD Pipelines: Making it All Work Together Brian Redmond, Microsoft. Who am I? ... Docker registry, etc. • Javascript

Demo - What you will see

web-earth api-earthquakes

webhook

ACR Build helm slack

Azure Container Registry

Istio

api-location

version: prod

api-location

version: canary

100%

50%

“virtualservice”

50%

@chzbrgr71

Page 31: Making it All Work Together CI/CD Pipelines: Microservices ... · CI/CD Pipelines: Making it All Work Together Brian Redmond, Microsoft. Who am I? ... Docker registry, etc. • Javascript

Summary

• Microservices and containers bring added challenges for deployment/testing

• Testing in production is a good idea (with canary)• Service Mesh solutions help with:

– Observability– Advanced Routing– Chaos Testing

• CI/CD can automate the process

@chzbrgr71

Page 32: Making it All Work Together CI/CD Pipelines: Microservices ... · CI/CD Pipelines: Making it All Work Together Brian Redmond, Microsoft. Who am I? ... Docker registry, etc. • Javascript
Page 33: Making it All Work Together CI/CD Pipelines: Microservices ... · CI/CD Pipelines: Making it All Work Together Brian Redmond, Microsoft. Who am I? ... Docker registry, etc. • Javascript

Questions?

you can find me at:

• Twitter, Github: @chzbrgr71 • [email protected]• Demo code: https://github.com/chzbrgr71/os-summit-tokyo • Slides:

@chzbrgr71

Page 34: Making it All Work Together CI/CD Pipelines: Microservices ... · CI/CD Pipelines: Making it All Work Together Brian Redmond, Microsoft. Who am I? ... Docker registry, etc. • Javascript