I am a big fan of automation, and this passion of mine has taken me to become also a big fan of Continuous Delivery. I may have not searched hard enough, but I can't seem to come across some practical examples of Continuous Delivery, so I decided to make my own for two reasons:
- to help myself in learning more about the pratical applications of Continuous Delivery
- to hopefully help others in doing the same
It is worth noting that Continuous Delivery does not imply Continuous Release. The idea is to make sure that the system as a whole (not just the application) is always in a releasable state. This way, a release becomes purely a business task that doesn't require lots of coordination efforts with a number of technical teams.
This post series is going to be loosely based on the book "Continuous Delivery" by Jez Humble and David Farley, which is (needless to say) a must read for anyone interested in this topic. The book outlines some fundamental principles of Continuous Delivery:
- Create a repetable, reliable process for releasing software
- Automate (almost) everything
- Keep everything in version control
- If it hurts, do it more frequently and bring the pain forward
- Build quality in, right from the start
- Done means released
- Everybody is responsible for the delivery process
- Continuous improvement
In the first post I will be setting up some virtual environments right from the start before any code is written, and by driving environment changes through source control.
Finally, the obligatory disclaimer:
Please note: I am making this stuff up as I go along, so I may have to update each post at a later stage to reflect some changes that I think might make things easier to manage.
Please note: I am making this stuff up as I go along, so I may have to update each post at a later stage to reflect some changes that I think might make things easier to manage.
No comments:
Post a Comment