Slide 1

Slide 1 text

WHY YOU MIGHT NOT NEED YET ANOTHER ENVIRONMENT @bradgignac

Slide 2

Slide 2 text

Deliver Quality Software The Goal:

Slide 3

Slide 3 text

Development Production

Slide 4

Slide 4 text

Development Production Staging

Slide 5

Slide 5 text

What’s the big deal?

Slide 6

Slide 6 text

Environments drift.

Slide 7

Slide 7 text

Environments lie.

Slide 8

Slide 8 text

Environments multiply.

Slide 9

Slide 9 text

Development Production Staging

Slide 10

Slide 10 text

Development DI CI Test Staging Production Stable

Slide 11

Slide 11 text

Development DI CI Test Staging Production Stable Development DI CI Test Staging Production Stable Development DI CI Test Staging Production Stable Development DI CI Test Staging Production Stable Development DI CI Test Staging Production Stable

Slide 12

Slide 12 text

Environments are expensive.

Slide 13

Slide 13 text

We have more tools available. Good News:

Slide 14

Slide 14 text

Feature Flags if feature.IsEnabled("newWidget") { widget := widget.New() } else { widget := widget.Old() } widget.Render()

Slide 15

Slide 15 text

Team Shipping if user.IsInGroup("my-team") { widget := widget.New() } else { widget := widget.Old() } widget.Render();

Slide 16

Slide 16 text

Phased Rollout if user.IsInPercentage(10) { widget := widget.New() } else { widget := widget.Old() } widget.Render();

Slide 17

Slide 17 text

Parallel Code Paths Request Old Code New Code Compare Results Persist (Old Result) Graphite

Slide 18

Slide 18 text

Parallel Code Paths 0 25 50 75 100 2:00 2:30 3:00 3:30 4:00 4:30 5:00 5:30 6:00 6:30 7:00 7:30 8:00 8:30 9:00 9:30 10:00 Total Mismatch

Slide 19

Slide 19 text

Parallel Code Paths Request Old Code New Code Compare Results Persist (New Result) Graphite

Slide 20

Slide 20 text

Canary v1 v1 v1 v1 v1 v1 v1 v1 Standby DC Production DC Release

Slide 21

Slide 21 text

Canary v2 v2 v2 v2 v1 v1 v1 v1 Standby DC Production DC Release

Slide 22

Slide 22 text

Canary v2 v2 v2 v2 v2 v2 v2 v2 Standby DC Production DC Release

Slide 23

Slide 23 text

Blue-Green Deployments Load Balancer v1 v1 v1 v1 v2 v2 v2 v2 100% 0%

Slide 24

Slide 24 text

Blue-Green Deployments Load Balancer v1 v1 v1 v1 v2 v2 v2 v2 50% 50%

Slide 25

Slide 25 text

Blue-Green Deployments Load Balancer v1 v1 v1 v1 v2 v2 v2 v2 0% 100%

Slide 26

Slide 26 text

No Free Lunch Increased operation complexity. Automated deployment pipeline. Centralized logging and metrics.

Slide 27

Slide 27 text

Happy Accidents Everything is automated. Experimentation is built-in. Disaster recovery is built-in.

Slide 28

Slide 28 text

Lessons Learned Test everything. Measure everything. Feature flags by default. Operational viability matters. Team culture matters most.

Slide 29

Slide 29 text

DO YOU REALLY NEED YET ANOTHER ENVIRONMENT

Slide 30

Slide 30 text

Questions?