Continuous Delivery techniques and practices are often misunderstood. This session will explore some Continuous Delivery anti-patterns based on work 'in the wild' with a wide range of organisations across different industry sectors:
- Believing that "Continuous Delivery is not for us"
- Ignoring the database
- Thinking that a deployment pipeline is just a series of chained jobs in Jenkins
- Not measuring delays between value-add activities
- Ignoring Cost-of-Delay and job size
- Not funding the build/test/deployment capability properly
By avoiding these pitfalls, we can increase the effectiveness of our software delivery efforts.
Attendees will learn:
1. Why Continuous Delivery (CD) is useful for almost all modern software
2. How to approach CD for databases
3. How to make CD really 'fly' within the organisation
4. How to 'sell' CD to business stakeholders
12. Keep Everything in Version Control
Done Means Released
Don’t Check In on a Broken Build
Never Go Home on a Broken Build
Fail the Build for Slow Tests
Only Build Your Binaries Once
Deploy the Same Way to Every Environment
25. “Nope.
CD is fine for some
systems/teams/software,
but each company should
make their own business
decisions about how often
to release code.”
(Why every development team needs
continuous delivery)
26. “…each company should make their own business
decisions about how often to release code…”
err, this is exactly what we get with
Continuous Delivery practices!
72. Not reading any of ‘Continuous Delivery’ book
Long and slow deployment pipelines
“Continuous Delivery is not for us”
No effective logging or application metrics
No investment in build & deployment
Operational aspects not addressed well
Forgetting the database
“Just plug in a deployment pipeline”
Container envy
73. Use the CD book
Short, wide pipelines
Deliver to a simulation environment
Aggregated logging + metrics
Explicitly fund build & deployment
Single backlog for all features
Use a tool for DB changes + version control
Re-architect for Continuous Delivery
Adopt good practices before using containers
75. References
‘Continuous Delivery’ by Jez Humble & Dave Farley, 2010
https://www.amazon.co.uk/Continuous-Delivery-Deployment-Automation-Addison-
Wesley/dp/0321601912/
‘Deployment Pipeline anti-patterns’ by Jez Humble
http://continuousdelivery.com/2010/09/deployment-pipeline-anti-patterns/
‘Why every development team needs continuous delivery’ by Sarah Goff-Dupont [Atlassian]
http://blogs.atlassian.com/2015/10/why-continuous-delivery-for-every-development-team/
‘Continuous Delivery with Windows and .NET’ by Chris O’Dell & Matthew Skelton, O’Reilly, 2016
http://cdwithwindows.net/
‘Database Lifecycle Management’ by Grant Fritchey and Matthew Skelton, Redgate, 2016
http://thedlmbook.com/