Continuous Delivery
and Zero Downtime
AXEL FONTAINE
@axelfontaine
axelfontaine.com
Entrepreneur - Public Speaker - Continu...
photon
flywaydb.org

getphoton.com

AXEL FONTAINE
@axelfontaine
axelfontaine.com
Entrepreneur - Public Speaker - Continuou...
about

questions
Fully automated deployment
of a complete application
into production
multiple times a day
with zero downtime

GOAL
Putting
things
into

PERSPECTIVE
http://digitalcitizen.ca/2009/06/22/simpsons-profile-pics-for-facebook-and-other-applications/
CONTINUOUS

DELIVERY

http://www.flickr.com/photos/kamshots/3096111340/
stackoverflow.com
stackoverflow.com
stackoverflow.com
stackoverflow.com
Prerequisites
Process
http://www.flickr.com/photos/feffef/460299390/in/photostream/
Process
http://www.flickr.com/photos/feffef/460299390/in/photostream/
Build
Build
Version Control
Version Control
Test
http://www.flickr.com/photos/vitorcastillo/2994723741/
Test
http://www.flickr.com/photos/vitorcastillo/2994723741/
DEV

Build

Small
Tests
DEV

Build

Small
Tests

Medium
Tests
DEV

Build

Small
Tests

Medium
Tests

Large
Tests
Continuous
Integration

DEV

Build

Version
Control

Build

Small
Tests

Small
Tests

Medium
Tests

Medium
Tests

Large
Te...
DEPLOYMENT
automation

http://www.flickr.com/photos/soldiersmediacenter/3650607959/
do
NOT

deploy
SNAPSHOTS !
Continuous
Integration

DEV

Build

Version
Control

Build

Small
Tests

Small
Tests

Medium
Tests

Medium
Tests

Large
Te...
What gets deployed?

Code

Configuration

DB Delta
Code

Deployment
Package
backup
stop
install
start
…

Deployment
Script

Code

Deployment
Package
backup
stop
install
start
…

Deployment
Script

Code

Deployment
Package
Continuous
Integration

Target
backup
stop
install
start
…

Release

Artifact
Repository

Deployment
Script
Configuration

Maybe it could
change one day

Code

≠ Environments

Deployment
Package
Environment
Detection

?
Code

Deployment
Package
Environment
Detection

Test

Code

AutoConfiguration
Continuous
Integration

Target
backup
stop
install
start
…

Release

Artifact
Repository

Deployment
Script
DB Delta
The Fear
of
DDL
VS
DML

DDL
Name

Balance

Homer

163

Marge

214

Bart

9

Lisa

25
Name

Balance

Name

Homer

0

Homer

Marge

0

Bart

0

Lisa

0

DML

VS

Marge
Bart
Lisa

DDL
DB Delta

Code

Deployment
Package
?

Code

?
Deployment
Package

DB
flywaydb.org
Continuous
Integration

Target
backup
stop
install
start
…

Release

Artifact
Repository

Deployment
Script
MailService

Registration
MailService

Registration
MailService

Registration
v2
ParcelService
Feature Toggles
Branch by Abstraction

MailService

Registration

ParcelService
Feature Toggles
Branch by Abstraction

MailService

Registration

ParcelService
DB
DB
DB
State Management
Blue/Green Deployments

DB
Surname

Last_Name

Surname

ALTER TABLE … RENAME COLUMN
Last_Name

Surname

Last_Name

Last_Name

ALTER TABLE …
DROP TRIGGER …
ADD COLUMN Last_Name
ALTER TABLE …
CREATE TRIGGER …...
Last_Name

Last_Name

DROP TRIGGER …
ALTER TABLE …
DROP COLUMN Surname
Summary
DEV

Build

Target

Continuous
Integration

Version
Control

backup
stop
install
start
…

Build Release
Artifact
Repositor...
http://de.wikipedia.org/wiki/Datei:Yemen_Chameleon.jpg
One more thing
AXEL FONTAINE
Software Development Expert

@axelfontaine
axelfontaine.com
business@axelfontaine.com
Further reading:

http://axelfontaine.com/blog/final-nail.html
http://axelfontaine.com/blog/environment-detection.html
htt...
Continuous Delivery and Zero Downtime
Continuous Delivery and Zero Downtime
Continuous Delivery and Zero Downtime
Continuous Delivery and Zero Downtime
Continuous Delivery and Zero Downtime
Continuous Delivery and Zero Downtime
Continuous Delivery and Zero Downtime
Continuous Delivery and Zero Downtime
Continuous Delivery and Zero Downtime
Continuous Delivery and Zero Downtime
Continuous Delivery and Zero Downtime
Continuous Delivery and Zero Downtime
Continuous Delivery and Zero Downtime
Continuous Delivery and Zero Downtime
Continuous Delivery and Zero Downtime
Upcoming SlideShare
Loading in...5
×

Continuous Delivery and Zero Downtime

11,344

Published on

Slides from my Jfokus 2014 talk about Continuous Delivery and Zero Downtime

Published in: Technology
1 Comment
9 Likes
Statistics
Notes
  • nice slides - it would be nice to save them, I would like to use them in my company to get awareness to this topics
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total Views
11,344
On Slideshare
0
From Embeds
0
Number of Embeds
20
Actions
Shares
0
Downloads
6
Comments
1
Likes
9
Embeds 0
No embeds

No notes for slide

Transcript of "Continuous Delivery and Zero Downtime"

  1. 1. Continuous Delivery and Zero Downtime AXEL FONTAINE @axelfontaine axelfontaine.com Entrepreneur - Public Speaker - Continuous Delivery Expert
  2. 2. photon flywaydb.org getphoton.com AXEL FONTAINE @axelfontaine axelfontaine.com Entrepreneur - Public Speaker - Continuous Delivery Expert
  3. 3. about questions
  4. 4. Fully automated deployment of a complete application into production multiple times a day with zero downtime GOAL
  5. 5. Putting things into PERSPECTIVE
  6. 6. http://digitalcitizen.ca/2009/06/22/simpsons-profile-pics-for-facebook-and-other-applications/
  7. 7. CONTINUOUS DELIVERY http://www.flickr.com/photos/kamshots/3096111340/
  8. 8. stackoverflow.com
  9. 9. stackoverflow.com
  10. 10. stackoverflow.com
  11. 11. stackoverflow.com
  12. 12. Prerequisites
  13. 13. Process http://www.flickr.com/photos/feffef/460299390/in/photostream/
  14. 14. Process http://www.flickr.com/photos/feffef/460299390/in/photostream/
  15. 15. Build
  16. 16. Build
  17. 17. Version Control
  18. 18. Version Control
  19. 19. Test http://www.flickr.com/photos/vitorcastillo/2994723741/
  20. 20. Test http://www.flickr.com/photos/vitorcastillo/2994723741/
  21. 21. DEV Build Small Tests
  22. 22. DEV Build Small Tests Medium Tests
  23. 23. DEV Build Small Tests Medium Tests Large Tests
  24. 24. Continuous Integration DEV Build Version Control Build Small Tests Small Tests Medium Tests Medium Tests Large Tests Large Tests
  25. 25. DEPLOYMENT automation http://www.flickr.com/photos/soldiersmediacenter/3650607959/
  26. 26. do NOT deploy SNAPSHOTS !
  27. 27. Continuous Integration DEV Build Version Control Build Small Tests Small Tests Medium Tests Medium Tests Large Tests Large Tests Release Artifact Repository
  28. 28. What gets deployed? Code Configuration DB Delta
  29. 29. Code Deployment Package
  30. 30. backup stop install start … Deployment Script Code Deployment Package
  31. 31. backup stop install start … Deployment Script Code Deployment Package
  32. 32. Continuous Integration Target backup stop install start … Release Artifact Repository Deployment Script
  33. 33. Configuration Maybe it could change one day Code ≠ Environments Deployment Package
  34. 34. Environment Detection ? Code Deployment Package
  35. 35. Environment Detection Test Code AutoConfiguration
  36. 36. Continuous Integration Target backup stop install start … Release Artifact Repository Deployment Script
  37. 37. DB Delta
  38. 38. The Fear of DDL
  39. 39. VS DML DDL
  40. 40. Name Balance Homer 163 Marge 214 Bart 9 Lisa 25
  41. 41. Name Balance Name Homer 0 Homer Marge 0 Bart 0 Lisa 0 DML VS Marge Bart Lisa DDL
  42. 42. DB Delta Code Deployment Package
  43. 43. ? Code ? Deployment Package DB
  44. 44. flywaydb.org
  45. 45. Continuous Integration Target backup stop install start … Release Artifact Repository Deployment Script
  46. 46. MailService Registration
  47. 47. MailService Registration
  48. 48. MailService Registration v2 ParcelService
  49. 49. Feature Toggles Branch by Abstraction MailService Registration ParcelService
  50. 50. Feature Toggles Branch by Abstraction MailService Registration ParcelService
  51. 51. DB
  52. 52. DB
  53. 53. DB
  54. 54. State Management Blue/Green Deployments DB
  55. 55. Surname Last_Name Surname ALTER TABLE … RENAME COLUMN
  56. 56. Last_Name Surname Last_Name Last_Name ALTER TABLE … DROP TRIGGER … ADD COLUMN Last_Name ALTER TABLE … CREATE TRIGGER … DROP COLUMN Surname UPDATE … SET Last_Name = Surname
  57. 57. Last_Name Last_Name DROP TRIGGER … ALTER TABLE … DROP COLUMN Surname
  58. 58. Summary
  59. 59. DEV Build Target Continuous Integration Version Control backup stop install start … Build Release Artifact Repository Small Tests Small Tests Medium Tests Medium Tests Large Tests Large Tests Deployment Script
  60. 60. http://de.wikipedia.org/wiki/Datei:Yemen_Chameleon.jpg
  61. 61. One more thing
  62. 62. AXEL FONTAINE Software Development Expert @axelfontaine axelfontaine.com business@axelfontaine.com
  63. 63. 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-intomcat-cluster-using-the-session-in-cookie-pattern/

×