SLL.IT   Archive

Archive ·

Continuous Deployment From The Trenches

Written in 2012 and kept as it was, at the address it was published at. It is not maintained, and parts of it have aged. Back to the archive.

This is what we are learning in the Company that I work for, where we are moving from an "svn update /var/www" anti-pattern to a deployment pipeline in 4 different environments, from Dev to Production.

Here you can find real solutions and how-to that worked on our environment.

Practices that we follow for Continuous Deployment


As soon as we feel that we are suffering in some way, we try to find a Practice to mitigate this sufferance. Here what we did until now

Practice #1: Same software stack from dev to production environment
Mitigate: "on my PC works!"

Practice #2: Dedicated Continuous Integration environment for unit test
Mitigate: "on my PC works!"

Practice #3: Deploy on the same way from dev to production environment
Mitigate: deployment to production fails

Practice #4: Smoke test the deployments
Mitigate: major configuration errors

Practice #5: Use Business Metrics (KPI) to validate deploy
Mitigate: deployment to production secceded, but business was impacted

Practice #6: Automate Rollback
Mitigate: production downtime after a failed deploy

Practice #7: Keep deployment pipeline fast
Mitigate: too much time required to go in production

Practice #8: Scale down, not up
Mitigate: "on my PC works!"

(updated soon...)