![Page 1: Modern Continuous Delivery · Continuous Delivery “ a set of practices and principles in software engineering aimed at building , testing , and releasing software safely , faster](https://reader033.vdocuments.site/reader033/viewer/2022042321/5f0b23447e708231d42f0903/html5/thumbnails/1.jpg)
Modern Continuous DeliveryModern Continuous Delivery
“ deploy to productiondeploy to productionfrom commit #1from commit #1
![Page 2: Modern Continuous Delivery · Continuous Delivery “ a set of practices and principles in software engineering aimed at building , testing , and releasing software safely , faster](https://reader033.vdocuments.site/reader033/viewer/2022042321/5f0b23447e708231d42f0903/html5/thumbnails/2.jpg)
Peter BittnerPeter BittnerDeveloperDeveloper
of people, companies and codeof people, companies and code
@peterbittner, [email protected]
behave-djangopyclean
djangocms-mapsansible-role-software
django-probesdjango-apptemplates
codeship-yamldjango-organice
PythonTurtlepainless/tox
django-bootstrap-static
![Page 3: Modern Continuous Delivery · Continuous Delivery “ a set of practices and principles in software engineering aimed at building , testing , and releasing software safely , faster](https://reader033.vdocuments.site/reader033/viewer/2022042321/5f0b23447e708231d42f0903/html5/thumbnails/3.jpg)
Continuous DeliveryContinuous Delivery“ a set of practices and principles in software engineering
aimed at building, testing, and releasing software safely, faster, more frequently, and in a sustainable way.
Source: painless.software/continuous-delivery
![Page 4: Modern Continuous Delivery · Continuous Delivery “ a set of practices and principles in software engineering aimed at building , testing , and releasing software safely , faster](https://reader033.vdocuments.site/reader033/viewer/2022042321/5f0b23447e708231d42f0903/html5/thumbnails/4.jpg)
Continuous DeliveryContinuous Delivery“ a set of practices and principles in software engineering
aimed at building, testing, and releasing software safely, faster, more frequently, and in a sustainable way.
“ the goal is to put the release schedule in the hands of the business, not in the hands of IT.
Source: painless.software/continuous-delivery
![Page 5: Modern Continuous Delivery · Continuous Delivery “ a set of practices and principles in software engineering aimed at building , testing , and releasing software safely , faster](https://reader033.vdocuments.site/reader033/viewer/2022042321/5f0b23447e708231d42f0903/html5/thumbnails/5.jpg)
Continuous DeliveryContinuous Delivery“ a set of practices and principles in software engineering
aimed at building, testing, and releasing software safely, faster, more frequently, and in a sustainable way.
“ the goal is to put the release schedule in the hands of the business, not in the hands of IT.
Source: painless.software/continuous-delivery
?? ??
Continuous
Continuous
inte
gratio
n
inte
gratio
n
![Page 6: Modern Continuous Delivery · Continuous Delivery “ a set of practices and principles in software engineering aimed at building , testing , and releasing software safely , faster](https://reader033.vdocuments.site/reader033/viewer/2022042321/5f0b23447e708231d42f0903/html5/thumbnails/6.jpg)
Continuous DeliveryContinuous Delivery“ a set of practices and principles in software engineering
aimed at building, testing, and releasing software safely, faster, more frequently, and in a sustainable way.
“ the goal is to put the release schedule in the hands of the business, not in the hands of IT.
Source: painless.software/continuous-delivery
?? ??
Continuous
Continuous
inte
gratio
n
inte
gratio
n
?? ??
Continuous
Continuous
deployment
deployment
![Page 7: Modern Continuous Delivery · Continuous Delivery “ a set of practices and principles in software engineering aimed at building , testing , and releasing software safely , faster](https://reader033.vdocuments.site/reader033/viewer/2022042321/5f0b23447e708231d42f0903/html5/thumbnails/7.jpg)
Modern?Modern?
![Page 8: Modern Continuous Delivery · Continuous Delivery “ a set of practices and principles in software engineering aimed at building , testing , and releasing software safely , faster](https://reader033.vdocuments.site/reader033/viewer/2022042321/5f0b23447e708231d42f0903/html5/thumbnails/8.jpg)
Modern?Modern?Immutable infrastructureImmutable infrastructure
![Page 9: Modern Continuous Delivery · Continuous Delivery “ a set of practices and principles in software engineering aimed at building , testing , and releasing software safely , faster](https://reader033.vdocuments.site/reader033/viewer/2022042321/5f0b23447e708231d42f0903/html5/thumbnails/9.jpg)
Modern?Modern?Immutable infrastructureImmutable infrastructure
Container orchestrationContainer orchestration
![Page 10: Modern Continuous Delivery · Continuous Delivery “ a set of practices and principles in software engineering aimed at building , testing , and releasing software safely , faster](https://reader033.vdocuments.site/reader033/viewer/2022042321/5f0b23447e708231d42f0903/html5/thumbnails/10.jpg)
Modern?Modern?Immutable infrastructureImmutable infrastructure
Container orchestrationContainer orchestration
Version control + automationVersion control + automation
![Page 11: Modern Continuous Delivery · Continuous Delivery “ a set of practices and principles in software engineering aimed at building , testing , and releasing software safely , faster](https://reader033.vdocuments.site/reader033/viewer/2022042321/5f0b23447e708231d42f0903/html5/thumbnails/11.jpg)
Modern?Modern?Immutable infrastructureImmutable infrastructure
Container orchestrationContainer orchestration
Version control + automationVersion control + automation
Cloud-native applicationsCloud-native applications
![Page 12: Modern Continuous Delivery · Continuous Delivery “ a set of practices and principles in software engineering aimed at building , testing , and releasing software safely , faster](https://reader033.vdocuments.site/reader033/viewer/2022042321/5f0b23447e708231d42f0903/html5/thumbnails/12.jpg)
Choice or Lock-in?Choice or Lock-in?
![Page 13: Modern Continuous Delivery · Continuous Delivery “ a set of practices and principles in software engineering aimed at building , testing , and releasing software safely , faster](https://reader033.vdocuments.site/reader033/viewer/2022042321/5f0b23447e708231d42f0903/html5/thumbnails/13.jpg)
1. Clean code1. Clean code
2. Deploy to production2. Deploy to production from commit #1from commit #1
There must be a better way!There must be a better way!
![Page 14: Modern Continuous Delivery · Continuous Delivery “ a set of practices and principles in software engineering aimed at building , testing , and releasing software safely , faster](https://reader033.vdocuments.site/reader033/viewer/2022042321/5f0b23447e708231d42f0903/html5/thumbnails/14.jpg)
DemoDemo
![Page 15: Modern Continuous Delivery · Continuous Delivery “ a set of practices and principles in software engineering aimed at building , testing , and releasing software safely , faster](https://reader033.vdocuments.site/reader033/viewer/2022042321/5f0b23447e708231d42f0903/html5/thumbnails/15.jpg)
Responsibility LayersResponsibility Layers
![Page 16: Modern Continuous Delivery · Continuous Delivery “ a set of practices and principles in software engineering aimed at building , testing , and releasing software safely , faster](https://reader033.vdocuments.site/reader033/viewer/2022042321/5f0b23447e708231d42f0903/html5/thumbnails/16.jpg)
Responsibility LayersResponsibility Layers
ApplicationApplication
![Page 17: Modern Continuous Delivery · Continuous Delivery “ a set of practices and principles in software engineering aimed at building , testing , and releasing software safely , faster](https://reader033.vdocuments.site/reader033/viewer/2022042321/5f0b23447e708231d42f0903/html5/thumbnails/17.jpg)
Responsibility LayersResponsibility Layers
ApplicationApplication
DevelopmentDevelopment
![Page 18: Modern Continuous Delivery · Continuous Delivery “ a set of practices and principles in software engineering aimed at building , testing , and releasing software safely , faster](https://reader033.vdocuments.site/reader033/viewer/2022042321/5f0b23447e708231d42f0903/html5/thumbnails/18.jpg)
Responsibility LayersResponsibility Layers
ApplicationApplication
DevelopmentDevelopment
DeploymentDeployment
![Page 19: Modern Continuous Delivery · Continuous Delivery “ a set of practices and principles in software engineering aimed at building , testing , and releasing software safely , faster](https://reader033.vdocuments.site/reader033/viewer/2022042321/5f0b23447e708231d42f0903/html5/thumbnails/19.jpg)
Responsibility LayersResponsibility Layers
ApplicationApplication
DevelopmentDevelopment
DeploymentDeployment
AutomationAutomation
![Page 20: Modern Continuous Delivery · Continuous Delivery “ a set of practices and principles in software engineering aimed at building , testing , and releasing software safely , faster](https://reader033.vdocuments.site/reader033/viewer/2022042321/5f0b23447e708231d42f0903/html5/thumbnails/20.jpg)
ApplicationApplication
One environment!12-factor app.
Build with features.Compose in environments.
11
![Page 21: Modern Continuous Delivery · Continuous Delivery “ a set of practices and principles in software engineering aimed at building , testing , and releasing software safely , faster](https://reader033.vdocuments.site/reader033/viewer/2022042321/5f0b23447e708231d42f0903/html5/thumbnails/21.jpg)
DevelopmentDevelopment
Make it easy!Standard practices.
No comprehensive instructions.Simple & user-friendly!
33
![Page 22: Modern Continuous Delivery · Continuous Delivery “ a set of practices and principles in software engineering aimed at building , testing , and releasing software safely , faster](https://reader033.vdocuments.site/reader033/viewer/2022042321/5f0b23447e708231d42f0903/html5/thumbnails/22.jpg)
DeploymentDeployment
Make it beautiful!Easy to explain.
Generate + seal your secrets,or seal + commit your secrets.
22
![Page 23: Modern Continuous Delivery · Continuous Delivery “ a set of practices and principles in software engineering aimed at building , testing , and releasing software safely , faster](https://reader033.vdocuments.site/reader033/viewer/2022042321/5f0b23447e708231d42f0903/html5/thumbnails/23.jpg)
AutomationAutomation
Keep it simple!What you would do manually.
Tell a story!ASAP
44
![Page 24: Modern Continuous Delivery · Continuous Delivery “ a set of practices and principles in software engineering aimed at building , testing , and releasing software safely , faster](https://reader033.vdocuments.site/reader033/viewer/2022042321/5f0b23447e708231d42f0903/html5/thumbnails/24.jpg)
ASAP!ASAP!as simple as possibleas simple as possible
![Page 25: Modern Continuous Delivery · Continuous Delivery “ a set of practices and principles in software engineering aimed at building , testing , and releasing software safely , faster](https://reader033.vdocuments.site/reader033/viewer/2022042321/5f0b23447e708231d42f0903/html5/thumbnails/25.jpg)
Deploy to production!Deploy to production!often + from commit #1often + from commit #1
![Page 26: Modern Continuous Delivery · Continuous Delivery “ a set of practices and principles in software engineering aimed at building , testing , and releasing software safely , faster](https://reader033.vdocuments.site/reader033/viewer/2022042321/5f0b23447e708231d42f0903/html5/thumbnails/26.jpg)
Iterate!Iterate!... and improve... and improve
![Page 27: Modern Continuous Delivery · Continuous Delivery “ a set of practices and principles in software engineering aimed at building , testing , and releasing software safely , faster](https://reader033.vdocuments.site/reader033/viewer/2022042321/5f0b23447e708231d42f0903/html5/thumbnails/27.jpg)
Agile, please.Agile, please.test-driven, pair-programmingtest-driven, pair-programming
![Page 28: Modern Continuous Delivery · Continuous Delivery “ a set of practices and principles in software engineering aimed at building , testing , and releasing software safely , faster](https://reader033.vdocuments.site/reader033/viewer/2022042321/5f0b23447e708231d42f0903/html5/thumbnails/28.jpg)
Free your softwareFree your softwareno secrets, no security holesno secrets, no security holes
![Page 29: Modern Continuous Delivery · Continuous Delivery “ a set of practices and principles in software engineering aimed at building , testing , and releasing software safely , faster](https://reader033.vdocuments.site/reader033/viewer/2022042321/5f0b23447e708231d42f0903/html5/thumbnails/29.jpg)
“ The only way to go fastThe only way to go fast is to go well.is to go well.
--- Robert C. Martin
Source: , 2015Technology and Friends, Episode 354
![Page 30: Modern Continuous Delivery · Continuous Delivery “ a set of practices and principles in software engineering aimed at building , testing , and releasing software safely , faster](https://reader033.vdocuments.site/reader033/viewer/2022042321/5f0b23447e708231d42f0903/html5/thumbnails/30.jpg)
Thank you!Thank you!for your precious timefor your precious time
Painless SoftwarePainless SoftwareLess pain, more fun.
![Page 31: Modern Continuous Delivery · Continuous Delivery “ a set of practices and principles in software engineering aimed at building , testing , and releasing software safely , faster](https://reader033.vdocuments.site/reader033/viewer/2022042321/5f0b23447e708231d42f0903/html5/thumbnails/31.jpg)
Beautiful is better than ugly. Explicit is better than implicit. Simple is better than complex. Complex is better than complicated. Flat is better than nested. Sparse is better than dense. Readability counts. Special cases aren't special enough to break the rules. Although practicality beats purity.
Pythonistas OathPythonistas Oath
11
![Page 32: Modern Continuous Delivery · Continuous Delivery “ a set of practices and principles in software engineering aimed at building , testing , and releasing software safely , faster](https://reader033.vdocuments.site/reader033/viewer/2022042321/5f0b23447e708231d42f0903/html5/thumbnails/32.jpg)
Errors should never pass silently. Unless explicitly silenced. In the face of ambiguity, refuse the temptation to guess. There should be one only one obvious way to do it. Although that way may not be obvious at first sight.
Pythonistas OathPythonistas Oath
22
![Page 33: Modern Continuous Delivery · Continuous Delivery “ a set of practices and principles in software engineering aimed at building , testing , and releasing software safely , faster](https://reader033.vdocuments.site/reader033/viewer/2022042321/5f0b23447e708231d42f0903/html5/thumbnails/33.jpg)
Now is better than never. Although never is often better than *right* now. If the implementation is hard to explain, it's a bad idea. If the implementation is easy to explain, it may be a good idea.
Pythonistas OathPythonistas Oath
33
![Page 34: Modern Continuous Delivery · Continuous Delivery “ a set of practices and principles in software engineering aimed at building , testing , and releasing software safely , faster](https://reader033.vdocuments.site/reader033/viewer/2022042321/5f0b23447e708231d42f0903/html5/thumbnails/34.jpg)
Continuous delivery is a honking great idea. If you deploy to production from commit #1. Let's do it! I start today.
Pythonistas OathPythonistas Oath
44
Python