SLIDE 1 From 2½ days to 2½ seconds
Dan North @tastapod
SLIDE 2
Once upon a time…
SLIDE 3
Once upon a time…
back in the mists of 2005
SLIDE 4
Once upon a time…
back in the mists of 2005 before Continuous Delivery™
SLIDE 5
Once upon a time…
back in the mists of 2005 before Continuous Delivery™ a team was stuck.
SLIDE 6
Once upon a time…
back in the mists of 2005 before Continuous Delivery™ a team was stuck. This is their story.
SLIDE 7
Life was tough back then
SLIDE 8
Life was tough back then
2½ days to deploy a build
SLIDE 9
Life was tough back then
2½ days to deploy a build Testers were frustrated!
SLIDE 10
Life was tough back then
2½ days to deploy a build Testers were frustrated! Developers were frustrated!
SLIDE 11
Life was tough back then
2½ days to deploy a build Testers were frustrated! Developers were frustrated! We were bottlenecked at testing :(
SLIDE 12
Life was tough back then
2½ days to deploy a build Testers were frustrated! Developers were frustrated! We were bottlenecked at testing :( actually bottlenecked at deployment!
SLIDE 14 The causes were
“snowflake” environments
SLIDE 15 The causes were
“snowflake” environments too many moving parts
SLIDE 16 The causes were
“snowflake” environments too many moving parts multiple teams
SLIDE 17 The causes were
“snowflake” environments too many moving parts multiple teams contention for resources
SLIDE 18
Where do we start?
SLIDE 19 Where do we start?
"Elevate the constraint"
SLIDE 20 Where do we start?
"Elevate the constraint" Engage Operations as customer
SLIDE 21 Where do we start?
"Elevate the constraint" Engage Operations as customer Understand the manual steps
SLIDE 22 Where do we start?
"Elevate the constraint" Engage Operations as customer Understand the manual steps Identify where time is being sunk
SLIDE 23 Where do we start?
"Elevate the constraint" Engage Operations as customer Understand the manual steps Identify where time is being sunk Focus on the outcome, not the steps
SLIDE 24
Idea: Treat the container as code
SLIDE 25
Idea: Treat the container as code
WebLogic is just XML
SLIDE 26
Idea: Treat the container as code
WebLogic is just XML so create templates
SLIDE 27
Idea: Treat the container as code
WebLogic is just XML so create templates and version-control them!
SLIDE 28
Idea: Treat deployment as code
SLIDE 29
Idea: Treat deployment as code
Instrument the UI tools
SLIDE 30
Idea: Treat deployment as code
Instrument the UI tools Learn the command-line tools
SLIDE 31
Idea: Build the app as a single entity
SLIDE 32
Idea: Build the app as a single entity
Single Deployable Artefact
SLIDE 33
Idea: Make all the servers look the same
SLIDE 34
Idea: Make all the servers look the same
Same OS
SLIDE 35
Idea: Make all the servers look the same
Same OS Same packages
SLIDE 36
Idea: Make all the servers look the same
Same OS Same packages Same versions
SLIDE 37
Idea: Make all the servers look the same
Same OS Same packages Same versions Same(ish) settings
SLIDE 38
Idea: Automate the entire deployment
SLIDE 39
Idea: Automate the entire deployment
Conan the Deployer!
SLIDE 40
Conan the Deployer
SLIDE 41 Conan the Deployer
- Create a new container instance
SLIDE 42 Conan the Deployer
- Create a new container instance
- Generate container config
SLIDE 43 Conan the Deployer
- Create a new container instance
- Generate container config
- Deploy container config
SLIDE 44 Conan the Deployer
- Create a new container instance
- Generate container config
- Deploy container config
- Bring up the master node
SLIDE 45 Conan the Deployer
- Create a new container instance
- Generate container config
- Deploy container config
- Bring up the master node
- Deploy the app into the node
SLIDE 46 Conan the Deployer
- Create a new container instance
- Generate container config
- Deploy container config
- Bring up the master node
- Deploy the app into the node
- Bring up the app
SLIDE 47 Conan the Deployer
- Create a new container instance
- Generate container config
- Deploy container config
- Bring up the master node
- Deploy the app into the node
- Bring up the app
- Smoke test the environment
SLIDE 48
This was the big breakthrough
SLIDE 49
This was the big breakthrough
Any build into any environment
SLIDE 50
This was the big breakthrough
Any build into any environment 2½ days down to 25 minutes!
SLIDE 51
This was the big breakthrough
Any build into any environment 2½ days down to 25 minutes! Deterministically.
SLIDE 52
Then optimise…
SLIDE 53 Then optimise…
Blue-Green Deployments
SLIDE 54 Then optimise…
Blue-Green Deployments Create self-serve deployments
SLIDE 55 Then optimise…
Blue-Green Deployments Create self-serve deployments Sub-second cutover, during office hours!
SLIDE 56
What did we learn?
SLIDE 57
What did we learn?
Focus on the outcome
SLIDE 58
What did we learn?
Focus on the outcome Focus on the current bottleneck
SLIDE 59
What did we learn?
Focus on the outcome Focus on the current bottleneck You don't "have an investment" in hardware
SLIDE 60
What did we learn?
Focus on the outcome Focus on the current bottleneck You don't "have an investment" in hardware DevOps requires collaboration
SLIDE 61
Epilogue
SLIDE 62 Epilogue
Sam Newman develops DbDeploy
SLIDE 63 Epilogue
Sam Newman develops DbDeploy Jez Humble and Chris Read (and me :) describe the Build Production Line
SLIDE 64 Epilogue
Sam Newman develops DbDeploy Jez Humble and Chris Read (and me :) describe the Build Production Line Chris Read co-creates DevOps Days
SLIDE 65 Epilogue
Sam Newman develops DbDeploy Jez Humble and Chris Read (and me :) describe the Build Production Line Chris Read co-creates DevOps Days Julian Simpson becomes the Build Doctor
SLIDE 66 Epilogue
Sam Newman develops DbDeploy Jez Humble and Chris Read (and me :) describe the Build Production Line Chris Read co-creates DevOps Days Julian Simpson becomes the Build Doctor Jez Humble and Dave Farley write “Continuous Delivery” and win Jolt Award
SLIDE 67
Whither DevOps?
SLIDE 68 Whither DevOps?
Commoditise All the Things!
SLIDE 69 Whither DevOps?
Commoditise All the Things! Cloud All the Things!
SLIDE 70 Whither DevOps?
Commoditise All the Things! Cloud All the Things! Hug a SysAdmin today
SLIDE 71 Whither DevOps?
Commoditise All the Things! Cloud All the Things! Hug a SysAdmin today And remember: A “build team” is still an anti-pattern!
SLIDE 72 Thanks for listening
@tastapod dan@dannorth.net http:/ /dannorth.net
t forget to vote!