This is the first article of the Continuous Integration, Delivery and Deployment series. We'll start out journey with brief explanation of Continuous Delivery. After short exploration of some of the tools used today, we'll move towards the flow (from setting up brand new environment and getting the code from the repository to the creation of fully tested and verified distribution). Each section will present different approaches, compare different tools and, finally, provide some hand-on examples. After the flow, we'll explore changes required in the development life cycle. Finally, we'll dive into last steps required for the transition from Continuous Integration towards Continuous Delivery and Deployment.
To programmers, benefits of source control are obvious. Revision history, revert and recovery, team work, build and continuous integration tools integration, and so on and so forth. No one is questioning usage of source countrol any more. It all boils down to a simple rule: if it is not in source control, it does not exist. Build and continuous integration tools expect it to be in source control. If it is not there, it will not be built. If it was not built, it will not be deployed. If it was not deployed, it will not be tested. If it was not tested, it will not be put to production.