Successfully reported this slideshow.

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

7

Share

Loading in …3
×
1 of 79
1 of 79

More Related Content

Related Books

Free with a 14 day trial from Scribd

See all

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

  1. 1. Continuous Deliveryand Zero DowntimeWhat your architecture needs to succeed AXEL FONTAINE@axelfontaineaxel@boxfuse.com
  2. 2. flywaydb.org
  3. 3. boxfuse.com
  4. 4. aboutquestions
  5. 5. Disclaimer Two days agomy voice completelyabandoned me
  6. 6. Advanced Swiss Technology
  7. 7. GOALFullyautomateddeploymentof a complete applicationinto productionmultiple times a daywith zero downtime
  8. 8. PuttingthingsintoPERSPECTIVE
  9. 9. http://digitalcitizen.ca/2009/06/22/simpsons-profile-pics-for-facebook-and-other-applications/
  10. 10. CONTINUOUSDELIVERY http://www.flickr.com/photos/kamshots/3096111340/
  11. 11. 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
  12. 12. stackoverflow.com
  13. 13. stackoverflow.com
  14. 14. stackoverflow.com
  15. 15. stackoverflow.com
  16. 16. Prerequisites
  17. 17. Process http://www.flickr.com/photos/feffef/460299390/in/photostream/
  18. 18. Build
  19. 19. Version Control
  20. 20. Test http://www.flickr.com/photos/vitorcastillo/2994723741/
  21. 21. Build DEV Small Tests
  22. 22. Build DEV Small Tests Medium Tests
  23. 23. Build DEV Small Tests Medium Tests Large Tests
  24. 24. Version Control Build Build DEV Continuous Integration Small Tests Medium Tests Large Tests Small Tests Medium Tests Large Tests
  25. 25. DEPLOYMENTautomation http://www.flickr.com/photos/soldiersmediacenter/3650607959/
  26. 26. do NOT deploy SNAPSHOTS !
  27. 27. Version Control Build Build Release DEV Continuous Integration Small Tests Medium Tests Large Tests Small Tests Medium Tests Large Tests Artifact Repository
  28. 28. DB Delta Code ConfigurationWhat gets deployed?
  29. 29. CodeDeploymentPackage
  30. 30. CodeDeploymentPackageDeploymentScript backup stop install start …
  31. 31. CodeDeploymentPackageDeploymentScript backup stop install start …
  32. 32. Release Continuous Integration Artifact Repository Target Deployment Script backup stop install start …
  33. 33. Configuration Deployment Package Code Maybe it could change one day ≠Environments
  34. 34. CodeDeploymentPackage ?Environment Detection
  35. 35. CodeAuto- Configuration TestEnvironment Detection
  36. 36. Release Continuous Integration Artifact Repository Target Deployment Script backup stop install start …
  37. 37. DB Delta
  38. 38. The FearofDDL
  39. 39. VS DML DDL
  40. 40. Name Balance Homer 163 Marge 214 Bart 9 Lisa 25
  41. 41. VS DML DDL Name Balance Homer 0 Marge 0 Bart 0 Lisa 0 Name Homer Marge Bart Lisa
  42. 42. DB Delta CodeDeploymentPackage
  43. 43. CodeDeploymentPackage DB ? ?
  44. 44. flywaydb.org
  45. 45. Release Continuous Integration Artifact Repository Target Deployment Script backup stop install start …
  46. 46. Registration MailService
  47. 47. Registration MailService
  48. 48. Registration v2 MailService ParcelService
  49. 49. Registration MailService Feature Toggles a.k.a. Release at any time ParcelService
  50. 50. Registration MailService ParcelService Feature Toggles a.k.a. Release at any time
  51. 51. DB
  52. 52. DB
  53. 53. DB
  54. 54. DBZero DowntimeBlue/Green Deployments
  55. 55. Surname Last_Name ALTER TABLE … RENAME COLUMN Surname
  56. 56. 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
  57. 57. Last_Name Last_Name DROP TRIGGER … ALTER TABLE … DROP COLUMN SurnameExpand & Contracta.k.a. Release Independently
  58. 58. OS Kernel Libraries Language App Server App
  59. 59. OS Kernel Libraries Language App Server App } One immutable unit Regenerated after every commit Promoted from Envto Env } ???
  60. 60. OS Kernel Libraries Language App Server App One immutable unit Regenerated after every commit Promoted from Envto Env
  61. 61. OS Kernel Libraries Language App Server App One immutable unitRegenerated after every commit Promoted from Envto EnvImmutable Infrastructure
  62. 62. Summary
  63. 63. 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 …
  64. 64. http://de.wikipedia.org/wiki/Datei:Yemen_Chameleon.jpg
  65. 65. flywaydb.org
  66. 66. boxfuse.com
  67. 67. Thanks ! AXEL FONTAINE@axelfontaineaxel@boxfuse.com boxfuse.com
  68. 68. 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/

×