DevOps Tutorial : What is Continuous Delivery ?
This is part of DevOps tutorials which will cover most of DevOps tools like Salt, Docker, Vagrant, Puppet and more.
What is Continuous Delivery
Any application needs to have some development phases with new features, with continuous delivery you are simply automating the steps of that delivery. You can simply automate the process using some tools to build, test and deploy to your environment.
Continuous delivery (CD) is a software engineering approach in which teams produce software in short cycles, ensuring that the software can be reliably released at any time. It aims at building, testing, and releasing software faster and more frequently. The approach helps reduce the cost, time, and risk of delivering changes by allowing for more incremental updates to applications in production. A straightforward and repeatable deployment process is important for continuous delivery.
Continuous Delivery vs Continuous Deployment
The only difference between these is the step of the deployment, in continuous delivery you need to push the code to the production environment manually while in continuous deployment the system will automate it after passing all tests.
In a simple word in Continuous Delivery or Continuous Deployment every step from pushing the source to your source versioning system, build, staging or production deployment is automated.
(c) Amazon AWS
What does a Continuous Delivery Look Like "Pipeline Example"
- Developers / Development Environment
- Unit Tests "For quicker feedback"
- Integration tests "Application with different pieces interacting together"
- Testing on different environments and/or security tests ..etc
- Production "In continuous Delivery the last step will be done manually, in Continuous Deployment it will be deployed automatically after passing all previous steps"
The more time and money you spend on pipeline the more you confident you have before you deploy to production.