Meet Henry (Business Owner)
He needs an app built in the next 8 weeks
He knows what the app should do
He expects competitors to try to beat us to
market
4
Slide 5
Slide 5 text
Meet Jane (App Architect)
Jane is a little worried:
Not everyone understands agile here
Environment setup takes a long time
8 Weeks isn’t much time to release to prod (!)
5
Cycle Time
How Long Does It Take To Deploy
One Line Of Code To Production?
8
Slide 9
Slide 9 text
Silos
… But We Follow ITIL!
9
Slide 10
Slide 10 text
Process
You Need To Open A Ticket For That!
10
Slide 11
Slide 11 text
Feedback Loop
Are We Building The Right Thing?
11
Slide 12
Slide 12 text
Change
Production Breaks When Changes Are Made (!)
… Right?
12
Slide 13
Slide 13 text
13
“Agile Infrastructure” -
Andrew Clay Shafer and
Patrick Debois
Agile 2008 conference
Use DevOps
Slide 14
Slide 14 text
DEV learn from OPS to think about
Resources (CPU, RAM, Disk)
Services (Start, Stop, Status)
Dependencies (Start DB before App)
Logfiles (Rotate, Remove)
Disk Space
Monitoring and Alarming
14
Slide 15
Slide 15 text
OPS learn from DEV to think about
Incremental Improvement
Infrastructure as Code
Version Control System (git, mercurial…)
Coding (OO, Functions, Libraries …)
Code Quality (Static Analysis, Metrics
Test Automation (Unit & Integration Tests)
15
Slide 16
Slide 16 text
DevOps do Test First
Unit Tests
Test the smallest possible components in an artifical
environment.
System Tests
Test the entire application in a real(istic) environment
together with other applications.
16
Slide 17
Slide 17 text
UNTESTED
BROKEN
17
Slide 18
Slide 18 text
Jane Needs Some Help
(This Seems Insurmountable)
Strategies For Success
18
Slide 19
Slide 19 text
Strategies For Success
Do Implement Continuous Integration
19
Slide 20
Slide 20 text
Strategies For Success
Do Not Create Environment Specific Packages
20
Slide 21
Slide 21 text
Strategies For Success
Do Externalize Environment Specific
Configuration
21
Slide 22
Slide 22 text
Strategies For Success
Do Automate Everything
22
Slide 23
Slide 23 text
Strategies For Success
Do Not Assume Existing Processes Are Right
(Engage In Continuous Improvement)
23
!
Slide 24
Slide 24 text
Strategies For Success
Do Not Use A Different Process For Different
Environments
24
Slide 25
Slide 25 text
Strategies For Success
Do Recreate App Environments Frequently
(Also Known As: Servers Are Not Puppies)
25
Slide 26
Slide 26 text
Strategies For Success
Do Ensure Database Changes Are Automated
26
Where is the process broken
43
$
Business
Development
QA
Operations
Customer
Slide 44
Slide 44 text
What is Continuous Delivery?
44
$
Slide 45
Slide 45 text
Continuous Delivery To The Rescue!
45
Slide 46
Slide 46 text
Continuous Delivery != Continuous Deployment
46 twitter.com/ccaum/statuses/372620989257232384
“Continuous Delivery is a software development
discipline where you build software in such a way
that the software can be released to production at
any time.” Martin Fowler
“Continuous Deployment means that every change
goes through the pipeline and automatically gets put
into production” Martin Fowler
The Difference:
Who Presses The Button For A Production Deployment?