Continuous Delivery (CD)
CD is an automated process of delivering code changes to server quickly and efficiently.
It is the natural extension of CI.
CD, so, it’s the practice of to be sure that the code is ready to be deployed in production.
The (old) process
Operations team will get regular requests to deploy artifacts of CI on servers to have QA tests.
Developers and Operation team need to work together to fix eventual deployment issues.
Because Deployment is not only deploy the artifact but also configuration change, Networking, and so on.
Then finally QA team can test further and send back feedback.
So there is too much human intervention in this process.
Solution is automation
Every step in deployment should be automated (server provision, dependencies, configuration change, deploy,…)
Tools
- System automation (Ansible, Puppet, Chef,…)
- Cloud infrastructure automation (Terraform, CFormation,…)
- CICD automation (Jenkins, Octopus deploy,…)
- Code testing
- and many other
Ops team will write automation code for deployment
QA Testers will write automation code for software test
Dev team will write code and unit test code