Delivering continuous and high-quality software is an important part of software development. By combining Continuous Integration and automated deployment through a Continuous Delivery System we can:
- Deploy a branch on a separate staging environment for review
- Merged code into staging branch can be deployed to staging test system for review.
- Production-ready code merged to the production branch can be deployed automatically by the system without a trigger by the developer making it a repeatable and bulletproof process.
These are only view cases you may use a Continuous Delivery for. But to make it a success, you need to provide a special ground in your software development.
Requirements for Continuous Delivery
Continuous Delivery improves software development by providing highly automated and quality-assuring system to deploy code to testing systems (also called staging) and production without manual user intervention.
First of all, you need a bullet proved software test suite using Test Driven Development. If you can’t rely on your test suite, you need a review team to guarantee high-quality production systems, which is mostly repeatable, boring and therefore error prone work.
Having a working and reliable Continuous Integration and Continuous Delivery system combined with a bulletproof test suite has a big impact on the quality, speed and reliablity of software development and software itself.