Deploying Straight to Prod
A guide to the holy grail
Damian Brady
@damovisa
Who am I?
Damian Brady
An Australian guy who talks about DevOps a lot
I am
here
@damovisa
@damovisa
@damovisa
Is this guy really going to tell us
to deploy straight to production?
No
Yes
?
OH NO PLEASE NO
Pipelines
Production?
AGENDA
@damovisa
Continuous
Delivery
Continuous
Integration
Continuous
Deployment
merge, build, test ready to deploy automatically deployed
TERMINOLOGY
@damovisa
Continuous
Delivery
Continuous
Integration
Continuous
Deployment
merge, build, test ready to deploy automatically deployed
TERMINOLOGY
DEMO
Uhhh, wait a second…
The Pipeline
@damovisa
THE PIPELINE
@damovisa
A pipeline is about automation
THE PIPELINE
@damovisa
THE PIPELINE
A pipeline is about automation
@damovisa
A pipeline is about automation
THE PIPELINE
@damovisa
BUILD
Does it merge?
Does it compile?
TEST
Do our tests pass?
Is our code secure?
DEPLOY + TEST
Do the tests still pass?
Does the UI work?
Can we talk to our DB?
PRODUCTION
I might buy a yacht.
A pipeline is about testing
THE PIPELINE
Did our deployment work?
@damovisa
BUILD
Does it merge?
Does it compile?
TEST
Do our tests pass?
Is our code secure?
PRODUCTION
I might buy a yacht.
A pipeline is about testing
THE PIPELINE
DEPLOY + TEST
Do the tests still pass?
Does the UI work?
Can we talk to our DB?
Did our deployment work?
DEMO
Back in the real world…
@damovisa
@damovisa
Feature
Branching
Feature
Flags
in-progress features
don’t go all the way to
production
everything goes to
production, but in-progress
features are invisible
PRODUCTION?
@damovisa
DeploymentRelease Launch
the artifacts and
deployment steps that
define a version
putting a release
in an environment
giving a change to
the users
TERMINOLOGY
Deploying a Release is a technical event
A Launch is a business event
@damovisa
Build and Test
Deploy to …
FEATURE FLAG PIPELINE
Deploy to Prod
Test features
Launch
@damovisa
Build and Test
Deploy to …
FEATURE FLAG PIPELINE
Deploy to Prod
Test features
Launch
@damovisa
BENEFITS
Pipeline provides a filter
Separates the Launch from the Deployment
Test in Production!
DEMO
@damovisa
BUT WHAT ABOUT…
One-way changes
Branch by
Abstraction
Transitional
Deployments
Technical
Debt
give yourself a
way back
resolve dependencies
based on feature flags
clean up after
yourself
@damovisa
+ + =
Everything.
Yes, everything.
Automation01
Stop the bad from
getting to Production
Testing02
Separate Deployment from Release
Test in Production!
Feature Flags03
A white yacht please.
Success
TAKEAWAYS
damovisa.me
THANK YOU
@damovisa
http://brdy.in/NDCProd

Deploying Straight to Production: A Guide to the Holy Grail - PrDC

Editor's Notes

  • #10 Don’t argue. These definitions come from the bible – the Continuous Delivery book by Jez Humble and David Farley. It’s a progression.
  • #14 …The end goal of this pipeline is…
  • #15 …For this to work, the pipeline must be concerned with two things…
  • #29 You’re testing the stuff you couldn’t test before – does this meet customer expectations? With real data? In a real live environment?
  • #31 Make sure your code can run with the flag on and off. Avoid clashes and things you can’t undo. It’s hard. For large architectural changes, branch by abstraction (look it up) lets you resolve dependencies based on feature flags