Continuous Delivery and Zero Downtime: What your architecture needs to succeed

Axel Fontaine
Axel FontaineSoftware Development Expert at Snow Mountain Labs UG
Continuous Deliveryand Zero DowntimeWhat your architecture needs to succeed 
AXEL FONTAINE@axelfontaineaxel@boxfuse.com
flywaydb.org
boxfuse.com
aboutquestions
Disclaimer 
Two days agomy voice completelyabandoned me
Advanced Swiss Technology
GOALFullyautomateddeploymentof a complete applicationinto productionmultiple times a daywith zero downtime
PuttingthingsintoPERSPECTIVE
http://digitalcitizen.ca/2009/06/22/simpsons-profile-pics-for-facebook-and-other-applications/
Continuous Delivery and Zero Downtime: What your architecture needs to succeed
Continuous Delivery and Zero Downtime: What your architecture needs to succeed
CONTINUOUSDELIVERY 
http://www.flickr.com/photos/kamshots/3096111340/
Poll: How often do you deploy in production? 
At least 
-Once a year 
-Every 3 months 
-Every Month 
-Every 2 weeks 
-Every week 
-Multiple times a week 
-Every day 
-Multiple times a day
Continuous Delivery and Zero Downtime: What your architecture needs to succeed
Continuous Delivery and Zero Downtime: What your architecture needs to succeed
Continuous Delivery and Zero Downtime: What your architecture needs to succeed
Continuous Delivery and Zero Downtime: What your architecture needs to succeed
stackoverflow.com
stackoverflow.com
stackoverflow.com
stackoverflow.com
Prerequisites
Process 
http://www.flickr.com/photos/feffef/460299390/in/photostream/
Build
Version Control
Test 
http://www.flickr.com/photos/vitorcastillo/2994723741/
Build 
DEV 
Small 
Tests
Build 
DEV 
Small 
Tests 
Medium 
Tests
Build 
DEV 
Small 
Tests 
Medium 
Tests 
Large 
Tests
Version 
Control 
Build Build 
DEV Continuous 
Integration 
Small 
Tests 
Medium 
Tests 
Large 
Tests 
Small 
Tests 
Medium 
Tests 
Large 
Tests
DEPLOYMENTautomation 
http://www.flickr.com/photos/soldiersmediacenter/3650607959/
do 
NOT 
deploy 
SNAPSHOTS !
Version 
Control 
Build Build Release 
DEV Continuous 
Integration 
Small 
Tests 
Medium 
Tests 
Large 
Tests 
Small 
Tests 
Medium 
Tests 
Large 
Tests 
Artifact 
Repository
DB Delta 
Code 
ConfigurationWhat gets deployed?
CodeDeploymentPackage
Continuous Delivery and Zero Downtime: What your architecture needs to succeed
CodeDeploymentPackageDeploymentScript 
backup 
stop 
install 
start 
…
CodeDeploymentPackageDeploymentScript 
backup 
stop 
install 
start 
…
Release 
Continuous 
Integration 
Artifact 
Repository 
Target 
Deployment 
Script 
backup 
stop 
install 
start 
…
Configuration 
Deployment 
Package 
Code 
Maybe it could change one day 
≠Environments
CodeDeploymentPackage 
?Environment Detection
CodeAuto- Configuration 
TestEnvironment Detection
Release 
Continuous 
Integration 
Artifact 
Repository 
Target 
Deployment 
Script 
backup 
stop 
install 
start 
…
DB Delta
The FearofDDL
Continuous Delivery and Zero Downtime: What your architecture needs to succeed
VS 
DML 
DDL
Name 
Balance 
Homer 
163 
Marge 
214 
Bart 
9 
Lisa 
25
VS 
DML 
DDL 
Name 
Balance 
Homer 
0 
Marge 
0 
Bart 
0 
Lisa 
0 
Name 
Homer 
Marge 
Bart 
Lisa
DB Delta 
CodeDeploymentPackage
CodeDeploymentPackage 
DB 
? 
?
flywaydb.org
Release 
Continuous 
Integration 
Artifact 
Repository 
Target 
Deployment 
Script 
backup 
stop 
install 
start 
…
Registration 
MailService
Registration 
MailService
Registration 
v2 
MailService 
ParcelService
Registration 
MailService 
Feature Toggles 
a.k.a. Release at any time 
ParcelService
Registration 
MailService 
ParcelService 
Feature Toggles 
a.k.a. Release at any time
DB
DB
DB
DBZero DowntimeBlue/Green Deployments
Surname 
Last_Name 
ALTER TABLE … RENAME COLUMN 
Surname
Last_Name 
Last_Name 
Last_Name 
Surname 
ALTER TABLE … 
ADD COLUMN Last_Name 
CREATE TRIGGER … 
UPDATE … SET Last_Name= Surname 
DROP TRIGGER … 
ALTER TABLE … 
DROP COLUMN Surname
Last_Name 
Last_Name 
DROP TRIGGER … 
ALTER TABLE … 
DROP COLUMN SurnameExpand & Contracta.k.a. Release Independently
OS Kernel 
Libraries 
Language 
App Server 
App
OS Kernel 
Libraries 
Language 
App Server 
App 
} 
One immutable unit 
Regenerated after every commit 
Promoted from Envto Env 
} 
???
OS Kernel 
Libraries 
Language 
App Server 
App 
One immutable unit 
Regenerated after every commit 
Promoted from Envto Env
OS Kernel 
Libraries 
Language 
App Server 
App 
One immutable unitRegenerated after every commit 
Promoted from Envto EnvImmutable Infrastructure
Summary
Version 
Control 
Build Build Release 
DEV Continuous 
Integration 
Small 
Tests 
Medium 
Tests 
Large 
Tests 
Small 
Tests 
Medium 
Tests 
Large 
Tests 
Artifact 
Repository 
Target 
Deployment 
Script 
backup 
stop 
install 
start 
…
Continuous Delivery and Zero Downtime: What your architecture needs to succeed
http://de.wikipedia.org/wiki/Datei:Yemen_Chameleon.jpg
flywaydb.org
Continuous Delivery and Zero Downtime: What your architecture needs to succeed
Continuous Delivery and Zero Downtime: What your architecture needs to succeed
boxfuse.com
Thanks ! 
AXEL FONTAINE@axelfontaineaxel@boxfuse.com 
boxfuse.com
Further reading: 
http://axelfontaine.com/blog/final-nail.html 
http://axelfontaine.com/blog/environment-detection.html 
http://martinfowler.com/bliki/FeatureToggle.html 
http://googletesting.blogspot.com/2010/12/test-sizes.html 
http://blog.shinetech.com/2012/12/18/simple-session-sharing-in- tomcat-cluster-using-the-session-in-cookie-pattern/
1 of 79

More Related Content

Viewers also liked(20)

Similar to Continuous Delivery and Zero Downtime: What your architecture needs to succeed(20)

Recently uploaded(20)

ThroughputThroughput
Throughput
Moisés Armani Ramírez28 views
Green Leaf Consulting: Capabilities DeckGreen Leaf Consulting: Capabilities Deck
Green Leaf Consulting: Capabilities Deck
GreenLeafConsulting170 views
The Research Portal of Catalonia: Growing more (information) & more (services)The Research Portal of Catalonia: Growing more (information) & more (services)
The Research Portal of Catalonia: Growing more (information) & more (services)
CSUC - Consorci de Serveis Universitaris de Catalunya51 views
ChatGPT and AI for Web DevelopersChatGPT and AI for Web Developers
ChatGPT and AI for Web Developers
Maximiliano Firtman152 views
[2023] Putting the R! in R&D.pdf[2023] Putting the R! in R&D.pdf
[2023] Putting the R! in R&D.pdf
Eleanor McHugh34 views
CXL at OCPCXL at OCP
CXL at OCP
CXL Forum183 views
METHOD AND SYSTEM FOR PREDICTING OPTIMAL LOAD FOR WHICH THE YIELD IS MAXIMUM ...METHOD AND SYSTEM FOR PREDICTING OPTIMAL LOAD FOR WHICH THE YIELD IS MAXIMUM ...
METHOD AND SYSTEM FOR PREDICTING OPTIMAL LOAD FOR WHICH THE YIELD IS MAXIMUM ...
Prity Khastgir IPR Strategic India Patent Attorney Amplify Innovation23 views
Java Platform Approach 1.0 - Picnic MeetupJava Platform Approach 1.0 - Picnic Meetup
Java Platform Approach 1.0 - Picnic Meetup
Rick Ossendrijver23 views

Continuous Delivery and Zero Downtime: What your architecture needs to succeed