Overview of CI/CD Pipeline

Continuous Integration/ Continuous Deployment (CI/CD Pipeline) is a process adopted by software teams to deploy their product faster. Unlike traditional software development models such as waterfall, with CI/CD pipeline, the software is shipped weekly, daily or more than one time in a day! It is surprising, but the updates in the software take place without disturbing the customer, rather the customer may not realize the software being updated while they are using it.

As Software as A Service (SaaS) applications are growing, the companies are following DevOps. The software development teams are now moving towards shorter build cycles with automated check-in and deployment. Efforts to automate the testing process of the build are now put for successful DevOps operations.

DevOps basically comprises of 2 words: “Development” and “Operation”. Development is function of software developers and Operations is testing the automated build using test automation.

Terminology in CI/CD

  1. Continuous Integration: This phase of CI/CD pipeline is collecting and integrating the work done by individual developers in a software development team. Each developer writes their own piece of code, which is then integrated and put into a common repository (e.g. GIT, TFS, etc.). This process helps in reducing the individual build costs of every piece of code. When the developer checks-in the code, he will find integration conflicts between the new code and the existing code in the repository. This in turn will help in early detection resolution of conflicts and less overhead costs. A new build version is created whenever the developers add their code to the repository. In CI the quality assurance checks require manual and automated test suites to test for any bugs in the builds.

  2. Continuous Deployment: When changes are made to the build, the deployment of those changes occurs in the CD phase of the pipeline. This phase relies on automation testing and automated deployment process. Automated test suites are built for further automated deployment as soon as they pass through the continuous integration step in the CI/CD. An efficient CI/CD process is marked by a readily available code base in CD for automated deployment without interference.