Slide 1

Slide 1 text

Stefan Prodan Progressive Delivery Techniques with Flagger @stefanprodan

Slide 2

Slide 2 text

CICD - all-in-one monolith

Slide 3

Slide 3 text

CICD - challenges Traceability ● What app version is running on the cluster? ● What happens if multiple builds run in parallel? Security ● How to manage cluster auth? What if 2FA is required? ● How to target multiple clusters? Configuration Drift & Rollback ● How to deal with infra dependencies? ● Rollback an app means rebuilding the image? ● How to manage shared resources between apps?

Slide 4

Slide 4 text

CICD break-up

Slide 5

Slide 5 text

CI - build/push

Slide 6

Slide 6 text

CD - GitOps reconciliation

Slide 7

Slide 7 text

CD - challenges ● What if my app misbehaves after begin deployed? ● How can I run conformance tests after a deployment? ● Can I bundle Kubernetes configuration changes with an app version? ● How to rollback automatically? ● Can I run multiple versions of an app in parallel? ● How to A/B test between versions?

Slide 8

Slide 8 text

CD break-up

Slide 9

Slide 9 text

Progressive Delivery

Slide 10

Slide 10 text

Flagger Flagger is a progressive delivery tool that automates the release process for applications running on Kubernetes. It reduces the risk of introducing a new software version in production by gradually shifting traffic to the new version while measuring metrics and running conformance tests. Flagger comes with a declarative model for decoupling the deployment of apps on Kubernetes from the release process.

Slide 11

Slide 11 text

Flagger - Traffic Management ● Service Mesh ○ Istio ○ Linkerd ○ App Mesh ● Ingress Controllers ○ Contour ○ Gloo ○ NGINX ○ Skipper

Slide 12

Slide 12 text

Deployment Strategies ● Canary Release (progressive traffic shifting) ○ Applications that expose HTTP or gRPC APIs ● A/B Testing (HTTP headers and cookies traffic routing) ○ User-facing applications that need session affinity ● Blue/Green (traffic mirroring) ○ Idempotent APIs ● Blue/Green (traffic switch) ○ Stateful applications ○ Legacy applications

Slide 13

Slide 13 text

Canary Release

Slide 14

Slide 14 text

A/B Testing

Slide 15

Slide 15 text

Blue/Green

Slide 16

Slide 16 text

Continuous Delivery with Flux v2 Progressive Delivery with Flagger Traffic management with Contour and Linkerd v2 Demo

Slide 17

Slide 17 text

Links Flagger Repo https://github.com/weaveworks/flagger Flagger Docs https://docs.flagger.app Linkerd + Contour Demo https://github.com/stefanprodan/gitops-linkerd Istio Demo https://github.com/stefanprodan/gitops-istio

Slide 18

Slide 18 text

No content