CI/CD is the process that makes the software product delivery easy by automating the whole process.
Do you know how?
It builds the code written by the developer, then runs the tests written by the developer, then the newer version of your software product will be ready to be delivered.
By following this approach manual errors are reduced, and developers are provided with feedback so that they can improve and work quickly and more efficiently on the iterations of the product to be made.
CI/CD also allows automation and continuous monitoring of the iterations of the product development throughout the lifecycle of the software product.
It also has the phase of integration and testing of the software product to the delivery and deployment of the software product.
WHAT IS CONTINUOUS INTEGRATION i.e. CI?
Continuous integration is the method in which the team members working on the respective development of the particular software will integrate their work at least once a day(mostly at the end of the day) and this integration will be checked by the automated tests and builds and also they check if there is any error or not.
WHAT IS CONTINUOUS DELIVERY i.e. CD?
Continous delivery here means that when a team develops a software product, the changes made by the developer are automatically tested and uploaded to the repository from where the code can be deployed at any point of time on the live production environment.
WHAT IS CONTINUOUS DEPLOYMENT?
Continuous deployment is a process where the developers deliver the fulfilled product functionalities using automated deployment. This process mainly helps the testers of the team to validate whether the code changes are correct and stable and are ready to be deployed or not.
CI/CD involves four basic steps-
Source - is the first stage where the code is pushed into the repository if any change is made.
Build - is the second stage of the CI/CD pipeline where your source code is merged along with its dependencies. The purpose of the build is to check the runnable instance of the software product that can be potentially be delivered to the end-user. if some failure found in the build stage then that has to be addressed immediately.
Test - is the next stage where the execution of the automated tests is done to validate the correctness of the code and the behavior of the software product. This stage prevents easily reproducible bugs from reaching the end-user.
Deploy - is the last stage of the whole process where the software product goes into the live production environment. Once every stage is passed successfully then your newer version of the software is ready to be deployed.
Advantages of CI/CD -
Better code quality.
Faster software product delivery in the market.
Your product can start making money early than waiting for getting deployed into the live production server.
Some Popular CI/CD tools-
Jenkins
Spinnaker
GoCI
CircleCI
AzureDevOps
ScrewDrivers