CI stands for Continuous Integration. CI enables software developers to push code to central repositories multiple times a day. This process is managed via automated builds running several automated tests.
CD stands for Continuous Delivery. CD is on top of CI and enables to continuously deploy/release software in an automated fashion. CD enables to deploy applications to various environments like production, staging, qa, development etc., in a automated fashion.
Pros:
- Encourages developers to commit code more frequently and validate the code by running series of automated tests.
- Fault isolation is faster due to smaller commits and faster mean time resolution.
- Helps to shrink backlog tickets faster due to continuous deployment.
Cons:
- Immediate deployment of code to production may cause panic in the business and may need to extra cautious.
- CI/CD goes hand in hand and a lot of details need to be flushed out for smooth functioning, thus may need lot of human intervention.