Download - Continuous Deployment Demystified
Licensed Under Creative Commons by Naresh Jain
Continuous DeploymentEmbrace Continuous Improvement
Naresh Jain@nashjain
[email protected]://blogs.agilefaqs.com
1
Licensed Under Creative Commons by Naresh Jain
2
Licensed Under Creative Commons by Naresh Jain
2
Licensed Under Creative Commons by Naresh Jain
Continuous Deployment
3
Licensed Under Creative Commons by Naresh Jain
But....
4
Licensed Under Creative Commons by Naresh Jain
ROI?
Is there a p
roblem here?We a
re diffe
rent!
For us?Too much Chaos?Who? When?
Productivity?
4
Licensed Under Creative Commons by Naresh Jain
Me
5
Licensed Under Creative Commons by Naresh Jain
6
Licensed Under Creative Commons by Naresh Jain
Mumbai
7
Licensed Under Creative Commons by Naresh Jain
Tech Talks!
AgilePhilly
8
Licensed Under Creative Commons by Naresh Jain
FitNesse ProTest
PatangLa"u
FitDecoratorDBFit
QWick
ProFIT
Panopticode
9
Licensed Under Creative Commons by Naresh Jain
10
Licensed Under Creative Commons by Naresh Jain
11
Licensed Under Creative Commons by Naresh Jain
12
Licensed Under Creative Commons by Naresh Jain
13
Licensed Under Creative Commons by Naresh Jain
14
Licensed Under Creative Commons by Naresh Jain
15
Licensed Under Creative Commons by Naresh Jain
Back in the Stone-age
16
Licensed Under Creative Commons by Naresh Jain
Hap
pine
ss/E
xcite
men
t
Time/Money/Opportunity Cost17
Licensed Under Creative Commons by Naresh Jain
Plan
Hap
pine
ss/E
xcite
men
t
Time/Money/Opportunity Cost17
Licensed Under Creative Commons by Naresh Jain
Plan
Design
Hap
pine
ss/E
xcite
men
t
Time/Money/Opportunity Cost17
Licensed Under Creative Commons by Naresh Jain
Plan
Design
Distribute
Hap
pine
ss/E
xcite
men
t
Time/Money/Opportunity Cost17
Licensed Under Creative Commons by Naresh Jain
Plan
Design
Distribute
Work in IsolationH
appi
ness
/Exc
item
ent
Time/Money/Opportunity Cost17
Licensed Under Creative Commons by Naresh Jain
Plan
Design
Distribute
Work in Isolation
Integrate
Hap
pine
ss/E
xcite
men
t
Time/Money/Opportunity Cost17
Licensed Under Creative Commons by Naresh Jain
Last Minute Integration Surprises
18
Licensed Under Creative Commons by Naresh Jain
BAD things were visible too Late...
19
Licensed Under Creative Commons by Naresh Jain
Birth of CI
20
Licensed Under Creative Commons by Naresh Jain
21
Licensed Under Creative Commons by Naresh Jain
CI Helped Us Learn That... Life can Suck a lot Less!
22
Licensed Under Creative Commons by Naresh Jain
CI Helped Us Learn That... Life can Suck a lot Less!
Feedback Quality
Delivery Time Wastage
Collaboration
22
Licensed Under Creative Commons by Naresh Jain
If people are afraid to check-in frequently...your CI process is
NOT working.
23
Licensed Under Creative Commons by Naresh Jain
We already do CI.What’s next?
24
Licensed Under Creative Commons by Naresh Jain
Multi-Stage CI ProcessScaling CI using Build Promotion
25
Licensed Under Creative Commons by Naresh Jain
26
Licensed Under Creative Commons by Naresh Jain
While the Lean-Start-up Community
They tried something quite disruptive...
27
Licensed Under Creative Commons by Naresh Jain
Continuous Deployment (CD)
28
Licensed Under Creative Commons by Naresh Jain
CD is quite natural for companies delivering
content via Web
29
Licensed Under Creative Commons by Naresh JainFreeset - In Business for Freedom
30
Licensed Under Creative Commons by Naresh Jain
freesetglobal.com
Updates View
DB
StaticFiles
Stage 1
Freeset - In Business for Freedom30
Licensed Under Creative Commons by Naresh Jain
freesetglobal.com
Updates View
DB
StaticFiles
Stage 1
Structural
Changes
freesetglobal.com
Upda
tes View
DB
StaticFiles
Stage 2
dev.freesetglobal.com
DB
StaticFiles
Single-Click
Deploy
Sync
Freeset - In Business for Freedom30
Licensed Under Creative Commons by Naresh Jain
Freeset Demo
31
Licensed Under Creative Commons by Naresh Jain
Benefits of CD
32
Licensed Under Creative Commons by Naresh Jain
Automation removes Errors
33
Licensed Under Creative Commons by Naresh Jain
Eliminates stressful release crunch
34
Licensed Under Creative Commons by Naresh Jain
Users continuously see improvements
35
Licensed Under Creative Commons by Naresh Jain
Reducing batch size helps drive out waste
36
Licensed Under Creative Commons by Naresh Jain
Faster responses to customer issues
37
Licensed Under Creative Commons by Naresh Jain
A/B testing is easier due to less release
overhead
38
Licensed Under Creative Commons by Naresh Jain
Encourages experimenting with
new ideas
39
Licensed Under Creative Commons by Naresh Jain
Allows for fine-grained monitoring of changes
40
Licensed Under Creative Commons by Naresh Jain
Provides satisfaction from seeing constant
progress
41
Licensed Under Creative Commons by Naresh Jain
Can we embrace CD for eLearning?
Rich Multi-Media ContentVideo, Screencasts, Quizzes, Images, Personas, etc.
Programming ExercisesJava, C#, C++, C & Python
Mac OS, Windows, Linux, Solaris
Different IDE Plugins
Server side code analysis (Java, C#, C++, C & Python)
42
Licensed Under Creative Commons by Naresh Jain
This is what we did...
43
Licensed Under Creative Commons by Naresh Jain
Deploy build to inactive production servers
44
Licensed Under Creative Commons by Naresh Jain
Inactive joins the cluster
45
Licensed Under Creative Commons by Naresh Jain
Delivery tests verify inactive release
46
Licensed Under Creative Commons by Naresh Jain
Reverse proxy swaps inactive with active
47
Licensed Under Creative Commons by Naresh Jain
48
Licensed Under Creative Commons by Naresh Jain
CD Requires Zero Downtime
49
Licensed Under Creative Commons by Naresh Jain
Zero Downtime Requires
• The application code
• Database schema
• Data files
• Web Server
• Application Server or Servlet Container
• Database Server
• OS upgrades and patches
Performing updates without interrupting users is essential for Zero Downtime deployments.
50
Licensed Under Creative Commons by Naresh Jain
What about DB Upgrades?
Will Continuous Deployment work?
51
Licensed Under Creative Commons by Naresh Jain
Hibernate
• hbm2ddl.auto = update
• Rarely we need to go in and update DB manually
52
Licensed Under Creative Commons by Naresh Jain
Zero-downtime DB Updates
012_rename_login_id_to_user_name
012_add_user_name_column 02_remove_login_id_column
expansion contraction
Src: Owen Rogers http://exortech.com/blog/
53
Licensed Under Creative Commons by Naresh Jain
Zero-downtime DB Updates
Src: Owen Rogers http://exortech.com/blog/
54
Licensed Under Creative Commons by Naresh Jain
• expansion
Zero-downtime DB Updates
Src: Owen Rogers http://exortech.com/blog/
54
Licensed Under Creative Commons by Naresh Jain
• expansion
• preserves backwards compatibility
Zero-downtime DB Updates
Src: Owen Rogers http://exortech.com/blog/
54
Licensed Under Creative Commons by Naresh Jain
• expansion
• preserves backwards compatibility
• contract
Zero-downtime DB Updates
Src: Owen Rogers http://exortech.com/blog/
54
Licensed Under Creative Commons by Naresh Jain
• expansion
• preserves backwards compatibility
• contract
• clean up
Zero-downtime DB Updates
Src: Owen Rogers http://exortech.com/blog/
54
Licensed Under Creative Commons by Naresh Jain
Industrial Logic’s eLearning CD Demo
55
Licensed Under Creative Commons by Naresh Jain
Eventually...
56
Licensed Under Creative Commons by Naresh Jain
CD’s Impact on Team Culture
57
Licensed Under Creative Commons by Naresh Jain
Encourage Evolutionary Design and Continuous Improvement culture
58
Licensed Under Creative Commons by Naresh Jain
Breaks work into micro-pieces, thereby enabling micro-deliveries
59
Licensed Under Creative Commons by Naresh Jain
Limited Work In Progress
60
Licensed Under Creative Commons by Naresh Jain
Knows when to hide or reveal work in progress
61
Licensed Under Creative Commons by Naresh Jain
Team takes shared ownership of the entire software development lifecycle
62
Licensed Under Creative Commons by Naresh Jain
The product is in a always-working-state
No developer is blocked because they can't get stable code 63
Licensed Under Creative Commons by Naresh Jain
Stop the Line Culture
Team catches issues at the source and avoid last minute integration and deployment nightmares
64
Licensed Under Creative Commons by Naresh Jain
Team crave for rapid feedback
65
Licensed Under Creative Commons by Naresh Jain
Complete Traceability
Version Control, Project & Requirements Managements tool, Bug Tracking and Build
system are completely integrated66
Licensed Under Creative Commons by Naresh Jain
Questions?Naresh Jain
http://blogs.agilefaqs.com
67