Over a million developers have joined DZone.

13 Keys to Continuous Delivery

DZone's Guide to

13 Keys to Continuous Delivery

· DevOps Zone ·
Free Resource

Read why times series is the fastest growing database category.

I've summarized some key takeaways from a ThoughtWorks quarterly update on Continuous Delivery that I attended some months ago. This took the form of a panel discussion with Martin Fowler, Evan Bottcher and Neal Ford. Smart guys, interesting topic and tantalising banner ad:

Flickr deploy ten times each day... why don't you?

The good news is that I didn’t hear anything that sounded too foreign. Either they were principles I’d written about, experienced firsthand or at least had a good understanding of. Usually it was all three but hearing the words from these guys in a very candid fashion is a great endorsement of the beliefs.

Here’s the “best of the best” in terms of the messages that really resonated with the crowd:

  1. Software that is not automatable is broken.

  2. Not being able to reproduce a production environment on demand is extremely risky.

  3. Get the computers to do the low value, automatable things (i.e. deployments) and let the humans focus on the high value work.

  4. If it hurts, do it more often (i.e. build and deploy).

  5. Any time a dev executes a repetitive task manually, all the servers get together late at night and laugh (always wondered why they looked so damn smug each morning).

  6. Everything – EVERYTHING – that is required for the app to be built and deployed must exist in source control.

  7. Get used to pushing into production regularly, it takes away the fear.

  8. Far too much emphasis is put on “it’s looking good” and “code complete” (downplays the risks yet to be faced by deployment).

  9. Every time you’ve done something for the third time, automate it!

  10. No test should remain un-automated that could be automated.

  11. Once you start automating, you find all sorts of ways of doing it better.

  12. Start pumping lorem ipsum text into change scripts and see if anyone notices (funny, I found a “If you are reading this I will buy you a coffee” statement in a standards doc last week; apparently I was the only one to spot it in the last year).

  13. Smells – sysadmins manually logging onto servers installing patches, prod server being thrown out the window (deployment to new one should be mundane), trying to “fix” an environment rather than just re-deploying.

Want more continuous integration and deployment goodness?  Try these:

  1. You're deploying it wrong! TeamCity, Subversion & Web Deploy part 1: Config transforms
  2. You're deploying it wrong! TeamCity, Subversion & Web Deploy part 2: MSBuild and deployable packages
  3. You're deploying it wrong! TeamCity, Subversion & Web Deploy part 3: Publishing with Web Deploy
  4. You're deploying it wrong! TeamCity, Subversion & Web Deploy part 4: Continuous builds with TeamCity
  5. You're deploying it wrong! TeamCity, Subversion & Web Deploy part 5: Web Deploy with TeamCity

Source:  http://www.troyhunt.com/2011/03/continuous-delivery-panel-discussion-at.html

Learn how to get 20x more performance than Elastic by moving to a Time Series database.


Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}