import continuous.delivery.*
Anton Arhipov
@antonarhipov
Product Lead
ZeroTurnaround
Monday, November 19, 12
Slide 2
Slide 2 text
INDIVIDUALS and INTERACTIONS
over
Agenda
PROCESSES and TOOLS,
blah, blah, blah ...
Agile Manifesto says:
Monday, November 19, 12
Slide 3
Slide 3 text
Agenda
PROCESSES and TOOLS
Monday, November 19, 12
Slide 4
Slide 4 text
Fedex process
• Package
• Dropoff
• Transfer
• Delivery
• Profit!
Monday, November 19, 12
Slide 5
Slide 5 text
• Package
• Test
• Approve
• Deploy
• Profit!
Java EE
Monday, November 19, 12
Slide 6
Slide 6 text
• What exactly is in prod now?
• How did it get deployed?
• How did it get there?
• Where did it come from?
• How did you package the application?
Questions?
Monday, November 19, 12
Slide 7
Slide 7 text
Fedex FAIL
Monday, November 19, 12
Slide 8
Slide 8 text
Software FAIL
Monday, November 19, 12
Slide 9
Slide 9 text
Monday, November 19, 12
Slide 10
Slide 10 text
Continuous Delivery
Pipeline
Monday, November 19, 12
Slide 11
Slide 11 text
A pipeline?
Source: http://startupblog.files.wordpress.com/2008/09/pipeline1.jpg
Monday, November 19, 12
Slide 12
Slide 12 text
Continuous Delivery pipeline!
Source: http://studentthinktank.eu/wp-content/uploads/2012/02/03_TURKMEN-PIPELINE.jpg
Monday, November 19, 12
Slide 13
Slide 13 text
• Automate
• Record
• Test
• Recover
Philosophy
Monday, November 19, 12
Slide 14
Slide 14 text
• Orchestration Platform
• Delivery Manager
• Artifact Repository
The Pipeline
Monday, November 19, 12
Slide 15
Slide 15 text
Jenkins
(OSS Continuous Integration Server)
Monday, November 19, 12
Slide 16
Slide 16 text
Orchestration
platform
Monday, November 19, 12
Slide 17
Slide 17 text
LiveRebel
(Commercial Delivery Manager)
Monday, November 19, 12
Slide 18
Slide 18 text
• Deploy/Undeploy
• Update
• No downtime
• No lost sessions
• Plain old restarts
• Environment/deployment status
What can you do with LiveRebel?
Monday, November 19, 12
Slide 19
Slide 19 text
• No good OSS alternative
• Supports many app servers
• No downtime updates
• Integrates with OSS projects
Why LiveRebel?
Monday, November 19, 12
Slide 20
Slide 20 text
And we freakin’
built it!
Monday, November 19, 12
Slide 21
Slide 21 text
Artifactory
(OSS/Commercial Artifact Repository)
Monday, November 19, 12
Slide 22
Slide 22 text
• FTP
• Jenkins
• Nexus (and the like)
Alternatives
Monday, November 19, 12
Slide 23
Slide 23 text
Monday, November 19, 12
Slide 24
Slide 24 text
Now let’s build a
pipeline!
Monday, November 19, 12
Slide 25
Slide 25 text
The Pipeline / The Repos
Monday, November 19, 12
Slide 26
Slide 26 text
Test
Build
Repository
Pipeline Build Test
QA
QA Dist
Deployment Test
RC
GO!
Prod
Staging
Monday, November 19, 12
Slide 27
Slide 27 text
The tools in the pipeline
Monday, November 19, 12
Slide 28
Slide 28 text
Pipeline phases
Monday, November 19, 12
Slide 29
Slide 29 text
Build phase
Monday, November 19, 12
Slide 30
Slide 30 text
Test phase
Monday, November 19, 12
Slide 31
Slide 31 text
QA phase
Monday, November 19, 12
Slide 32
Slide 32 text
Production phase
Monday, November 19, 12
Slide 33
Slide 33 text
Dirty details in
Jenkins
Monday, November 19, 12
Slide 34
Slide 34 text
• Database
• Configuration & Environment
• Tests & Monitoring
Themes Not Covered
Monday, November 19, 12
Slide 35
Slide 35 text
• How do you package the application?
• Where did it come from?
• Where does it go?
• How does it get deployed?
• What exactly is in prod now?
Questions?
Monday, November 19, 12
Slide 36
Slide 36 text
The answers are
in the pipeline!
Monday, November 19, 12
Slide 37
Slide 37 text
• Jenkins jobs represent the workflow
• Artifactory is a sync-point
• LiveRebel manages apps and versions
• Manual flows with REST
• Tracking with scripts & text files
Pipeline Summary
Monday, November 19, 12
Slide 38
Slide 38 text
Not bad, but what about the process??
Monday, November 19, 12
Slide 39
Slide 39 text
Monday, November 19, 12
Slide 40
Slide 40 text
Traditional Process
Developer
Release Engineer SysOp
QA
Monday, November 19, 12
Slide 41
Slide 41 text
Powered by CD
Developer
CD Engineer SysOp
QA
Manager
Monday, November 19, 12
Slide 42
Slide 42 text
What’s changed?
Monday, November 19, 12
Slide 43
Slide 43 text
What’s changed?
• Increased significance of automated QA
Monday, November 19, 12
Slide 44
Slide 44 text
What’s changed?
• Increased significance of automated QA
• Reduced manual testing
Monday, November 19, 12
Slide 45
Slide 45 text
What’s changed?
• Increased significance of automated QA
• Reduced manual testing
• Infrastructure roles NOT involved with release
Monday, November 19, 12
Slide 46
Slide 46 text
What’s changed?
• Increased significance of automated QA
• Reduced manual testing
• Infrastructure roles NOT involved with release
• Release approval is a business decision
Monday, November 19, 12
Slide 47
Slide 47 text
What’s changed?
• Increased significance of automated QA
• Reduced manual testing
• Infrastructure roles NOT involved with release
• Release approval is a business decision
• Automation is the key
Too good to be true, eh?
Monday, November 19, 12