Introduction to CI/CD Pipeline

Shadini Kalansooriya
4 min readApr 7, 2021

--

Before going into the topic straight, here’s the reason for me to start writing this article. Before One week I had an interview at the place where I am doing my current internship. Trust me I could not even answer a single question. I was honestly disappointed in my self and I just thought of giving up everything at that moment. But still, but still, I thought of trying one more time to make my mistakes and develop myself back. With that being said, CI/CD pipeline was one main question that was asked and unfortunately, I did not even know what it stands for. So here I am writing a blog about what I learned this week.

CI: Continuous Integration

CD: Continuous Delivery/Continuous Deployment

What is a CI/CD pipeline?

A CI/CD pipeline implementation is the main pillar of the current DevOps environment. It automates the building, testing (CI), and deployment of applications (CD) by bridging the gap between development and operations teams.

These automated pipelines remove manual errors, provide feedback loops to developers and allow speedy product iterations.

What are Continuous Integration, Continuous Delivery, and Continuous Deployment?

Continuous Integration is a software development method, where developers who practice continuous integration merge their changes back to the main branch at least once a day. In this method, every integration is validated by creating a build and running automated tests against the build. The significance of continuous integration is that it checks that the application is not broken when new commits are merged into the main branch.

Continuous Delivery is a software engineering method. After the build stage, it automatically deploys all the code changes to testing or a production environment. Here the software product is developed in short cycles and make sure that the software can be released anytime.

Continuous Deployment is also a software engineering process. All the changes that pass the stages of the production pipeline are released to the customers using automatic deployment. It is a great way for the testers to test if the codebase changes are correct and stable.

Components of a CI/CD pipeline

Most of the software releases go through the below-mentioned phases

  • Build Phase
  • Testing Phase
  • Deploy Phase
  • Automated testing phase
  • Deploy to production Phase

First, the set of developers who is responsible to write the code, commit these codes into a Version Control System. Then it goes to the build phase. Developers put their code and then the code goes back to VCS with a proper version tag. This phase provokes when new codes are pushed to the repository because at first the codes were stored in small branches of the repository and now you get features of that code from various branches. Then merge and compile them to a new build.

After the build phase, next comes the Testing phase. This phase consists of various kinds of tests. One of the main is unit testing where individual units or components of the software are tested.

After passing the test phase, the builds move to the Deploy phase, where you deploy it into a staging or test server. With the help of this phase, developers can test/simulate this product in a production-equivalent environment where you will be able to inspect the features of the product.

After deploying the code successfully Automation test phase will run another sanity test to ensure that code changes introduced are working as expected and if everything is accepted.

Meanwhile, in every step throughout the pipeline, whenever there is an error, it will be sent to the development team for it to be fixed. Once it is fixed they will push it into VCS and it goes to the pipeline.

If everything is accepted, then it is deployed to Production.

Additional Benefits of Pipelines

  • Since there are logs of all the code changes, deployments, and tests, we can use them for inspection at any time.
  • Developers can monitor the health, performance, and reliability of the app, where it will help to take the necessary actions to improve the product
  • Since CI/CD implementation allows to involve end-users and feedback; it leads to usability improvements.
  • It is not traumatic to do product updates.

AND……………………………………………………………………………..

In brief, We discussed

  • what is a CI/CD pipeline
  • What is Continuous Integration, Continuous Delivery, and Continuous Deployment
  • Components of a CI/CD pipeline
  • Benefits

Thank You ❤ ❤

--

--

No responses yet