continuous delivery antipatterns from the wild - matthew skelton - continuous lifecycle london 2016
TRANSCRIPT
Continuous Delivery Anti-patternsfrom the wild
Wednesday 4th May 2016 - #ConlifecycleLon
Matthew SkeltonSkelton Thatcher Consulting
@matthewpskelton
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
“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)
“…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!
versioning approachesinterdependencies
evaluation of new techniquessplitting / joining components
infrastructure availability
ApexSQLActiveRecord (and similar)
DbMaestroFluentMigrator
FlywayLiquibase
Redgate toolsVendor-native (e.g. EF, SSDT)
Limited unit testsNo re-architecture
1 Ops person for 25 techiesOpaque component names
No logging or metrics
No unit or integration testsNo logging or monitoring
200+ ETL jobs only in ProdDB on a single node (no HA!)
Limited Dev+Ops collaboration
Not reading any of ‘Continuous Delivery’ bookLong and slow deployment pipelines
“Continuous Delivery is not for us”No effective logging or application metrics
No investment in build & deploymentOperational aspects not addressed well
Forgetting the database“Just plug in a deployment pipeline”
Container envy
Use the CD bookShort, wide pipelines
Deliver to a simulation environmentAggregated logging + metrics
Explicitly fund build & deploymentSingle backlog for all features
Use a tool for DB changes + version controlRe-architect for Continuous Delivery
Adopt good practices before using containers
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 Humblehttp://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, 2016http://cdwithwindows.net/
‘Database Lifecycle Management’ by Grant Fritchey and Matthew Skelton, Redgate, 2016http://thedlmbook.com/
Thank you
http://skeltonthatcher.com/[email protected]
@SkeltonThatcher
+44 (0)20 8242 4103
@matthewpskelton