CI - Continuous Integration
CD - Continuous Delivery/Continuous Deployment
The process involved in a project in an orgranisation are -
- Dev
- Testing
- Deployment/Release
Continuous Integration -This process happens mostly in Dev Phase.In this process,
team members integrate their code or their work in a shared repository and this process
is best achieve by some source code management tool like - Git.So,they integrate their work
on a regular basis.Members in dev team will integrate their work and check in the shared
repository and then this check-in is than followed and validated by an automated build and
automated unit test.
This process expands from dev phase to some parts of testing phase as most of the test are
unit test which are automated at the dev end.
Under this phase, we run some unit test.
Continuous Delivery - After CI process ,there is requirement of deployment in an
environment that can be a QA or can be a staging environment and than some automated test
are run to ensure that the code is now ready to be deployed.Goal of this process is always
to make sure that build is always in a deployable state or a deployment ready state.
Here occures deployment in pre-prod or staging environment not actual environment.
It expands from dev phase to the entire testing phase till the staging environment.So,here
goal is that our build or code is now ready to be deployed on any environment.
Staging Environment is like a production like environment and goal here is that we
keep a environment exactly like a copy of our production environment so that before deploying
anyrhing on the production we can check it on the pre-prod or staging environment.And also if
we want to check anything instead of going to actual prod environmennt we can check it on the staging or pre-
prod environment.
Continuous Deployment -Here Deployment takes place in the actual prod environment.Here along
with CI and continuous delivery , we also do production deployment.So,this automated deployment to
production and every change,every release that passes through all the automated test is than directly
deployed to production environment.This process is not done automatically but there are organisation
who do very frequent and very fast deployment.
Stages | Build | Test | Deploy | Release |
Continuous Integration | ✔ | ✔ (till QA phase) | | |
Continuous Delivery | ✔ | ✔ | ✔ (till staging environment) | |
Continuous Deployment | ✔ | ✔ | ✔ | ✔ (till end stage of production) |
If we chain all these process through an automated trigger,it will be CI/CD Pipeline.