Continuous Integration (CI) is a development practice that requires developers to integrate code early and often. Code is integrated into a shared repository several times a day. Each check-in is then verified by an automated build, thus providing fast and automated feedback on the correctness of your application every time there is a change of code.
By integrating regularly, you can detect errors quickly, and locate them more easily. According to Martin Fowler, "Continuous Integration doesn’t get rid of bugs, but it does make them dramatically easier to find and remove.”
You can quickly read about the most important concepts of continous intergration, including its benefits, related practices, how to do it, responsibilities of a team that follows it etc. @ https://www.thoughtworks.com/continuous-integration.
Continuous Deployment refers to releasing software into production that passes the automated tests and is closely related to Continuous Integration. You can consider continous deployment as adding deployment as the the final stage of Continous Integration.
Continous Deployment means that software is always deployable. Continous Deployment does not however imply production release, but Continous Delivery does. Continous Deployment can deploy code to any environment, like UAT.
You can read more @ https://continuousdelivery.com/2010/08/continuous-delivery-vs-continuous...
Continous Delivery (CD) involves continous flow of features into production. Continous Delivery requires fast and automated feedback on the production readiness of your application every time there is a change to code, infrastructure or configuration. This means that a new build will be automatically created every time there is any change in the continous delivery environment including code, infrastructure or configuration.
A proper implementation of Continous Delivery system requires a comprehensive configuration management and excellent automated testing at multiple levels. You should automate almost everything, including build, deploy, test, release, using technologies such as puppet, chef, jenkins, bamboo etc. You also need to keep everything you need to build, deploy, test and release in version control, to avoid friction between various components, as the versions for most of these are inter-related in each deployment.
Continous Delivery is often backed up by DevOps, and unlike traditional programming, everyone is responsible for delivery Dev team, DBA, QA and Ops.
Continuous Delivery can be considered as the natural extension of Continuous Integration.
You can read more @ https://www.thoughtworks.com/continuous-delivery.