Blog Blog Posts Business Management Process Analysis

What is CI/CD?

Topics covered in the article:

 

What is Continuous Integration?

Continuous integration is a process that integrates tools involved in the DevOps lifecycle. Continuous integration tool pulls out the code from the source code management system. When a developer updates the code, the code is built and tested.

Upon successfully passing the testing stage continuous integration tool passes the software to the production server where it is released to the customer. The monitoring tool keeps a log of customer feedback, the complete process is automated using tools and integrated using a continuous integration tool.  

Phases of DevOps Pipeline

The methodology of continuous integration has changed significantly as the process of continuous integration has leaped from a mark where it used to execute the CI/CD cycle once a day to now being several times a day.

Want to make your career in DevOps? Enroll in our DevOps Certification Training Course!

 

What is Continuous Delivery?

Continuous delivery is a process of developing, building, testing, and deploying software using automated tools. The process starts when a developer updates the source code, a continuous integration tool pulls the code and pushes it to a build and test server.

Upon successful testing, the software is deployed to the manual check stage; once the operator approves the software it is then deployed to the production server where it is available to the customer.

Continuous delivery vs continuous deployment

Continuous deployment is a stage in CI/CD pipeline where the software is containerized and virtualized using tools such as Docker for containerization and Puppet or Ansible for configuration management. The fundamental difference between continuous delivery and continuous deployment is a manual quality assurance check stage that exists in the continuous delivery.

Containerization is the process of packing software with all its dependencies to ensure it runs on every system.

Configuration management is a part of continuous deployment where the server such as puppet or ansible connects with other tools such that it can run on any system.

 

Difference between CI and CD

CI vs CD

Continuous delivery is a process in DevOps for delivering software via automation.CD contains multiple steps involved in software production, namely developing, testing, and deploying, while continuous integration is a phase connecting steps in a structure that created the DevOps lifecycle.

Once the software successfully passes the testing stage the software is pushed to a human approval stage, this stage considers various factors such as update requirements, business strategies, etc. The CI/CD pipeline is effective in software production, and the most important part of DevOps.

Learn more about CI/CD pipeline with Intellipaat’s CI/CD tutorial on youtube!

 

CI/CD Principles:

The principles of CI/CD include :

Want to learn about DevOps? Click on the DevOps Tutorial for beginners!

 

What is CI/CD Pipeline?

Continuous integration/Continous Delivery pipeline is a set of steps namely source, build, test and production.CI/CD pipeline automates the process of software delivery, it builds code, runs manual and automatic tests in a different environment, and assists you to safely deploy an updated version of the software. CI/CD pipeline avoids human error as the repetitive tasks are done by the machine and the tools involved in every step give feedback to the developer and allow fast product iterations.

When a developer pushes its code in Github, Github creates a new version of code once the new version code is created Jenkins pulls the code from Github and pushed it to the build and test servers. 

Once the testing is done successfully the software is deployed using docker where the software is packed along with its attributes and deployed to release on the production server. 

CI/CD Pipeline diagram
 

source

The source stage is the first stage of the CI/CD pipeline where the CI/CD pipeline gets triggered after every change made in the code repository. This stage focuses on source code management also known as version control.

Some widely used tools for the source stage include:

Preparing for a DevOps Job Interview? Check out this Top 60 DevOps Interview Questions curated by Industry Experts!

 

build

This is a succeeding stage to the source stage in the CI/CD pipeline where the source code is combined and built into an application. This stage also includes artifacts handling.

The tools used in the built stage are:

 

test

This stage in  CI/CD pipeline includes several automated tests, the objective of the testing stage is to locate bugs in the software, in case a bug is located, a feedback loop sends the information of the software malfunction to the developer team where they plan the next set of action.

The testing stage includes a unit test, acceptance test, GUI test, and manual test. 

Only when a person approves the performance of the software in the testing stage does the software complete the testing stage.

Common tools used for testing are :

 

Production

This is the pipeline’s final stage in the CI/CD pipeline. The package is now ready to be deployed after passing all of the previous stages. The package is deployed to appropriate environments in this stage, first to a staging environment for additional quality assurance (QA), and then to a production environment.

 

CI/CD Tools 

CI/CD Tools
 

Version Control – GIT

Source code management or version control is the first stage of a CI/CD pipeline where the code is manipulated using a code management tool such as Git.

Git is an effective version control tool, it helps to track iterations done in the source code. Git is a widely used tool for source code management and is a convenient tool as it can be used both online and offline. Git helps locate and correct the previous commit of source code, it can also restore the deleted commits.

Git being a distributed version control system has optimum performance due to its features like committing changes, merging, branching & comparing past versions of the source file, etc. Git can also be used for the build stage of the CI/CD pipeline. 

There are other tools like BitBucket, SVN, etc. for the source code management stage of the CI/CD pipeline

 

Build – MAVEN

The build is an important stage of the CI/CD pipeline that is triggered after every iteration made in the source code.

Maven is a Java-centric build automation tool. It contains an XML file that specifies the software project being produced and its dependencies on other external components and modules, the build sequence, directories, and other necessary plug-ins.

There are other tools like Ant, Gradle, Jenkins, git, etc. for the Build stage of the CI/CD pipeline. 

 

Test – SELENIUM

The Test stage is the next stage of the CI/CD pipeline where the software is tested in different environments.

Selenium is an open-source testing tool widely used in the industries adopting DevOps methodologies. It works with a variety of operating machines to automate test execution. It can be easily integrated with test management tools such as ALM and JIRA and other DevOps tools such as Jenkins, Teamcity, Bamboo, and others.

There are other tools like  Junit, TestNG, Jenkins, etc. for the test stage of the CI/CD pipeline.

 

Release – JENKINS

Jenkins is an open-source tool, it acts as a median between different tools used in the DevOps pipeline. Jenkins is used as a continuous integration tool that connects one stage to another in the DevOps lifecycle.

Jenkins is a widely used tool and hence, has more than 147,000 active installations throughout the world and over 1 million users. It has a large number of plugin supports that allow integrating most of the development, testing, and deploying tools. 

There are other tools like TravisCI, Bamboo, etc. for the release or CI stage of the CI/CD pipeline.

 

Deploy – DOCKER

Docker is a containerization tool used to create, deploy & run applications using containers. It is a widely used deploy tool in CI/CD processes. The components and subcomponents such as libraries and other dependencies of an application are packed. The container ships it as a single package.

By using docker the developers may concentrate on developing code rather than worrying about the system on which it will operate. They may also get a head start by including one of the hundreds of apps already intended to operate in a Docker container as part of their application.

There are other tools like Kubernetes, Ansiblethe, etc. for the Deploy stage of the CI/CD pipeline

 

CI/CD Engineer Roles and Responsibility

 

Conclusion

CI/CD is the fundamental part of DevOps which creates a pipeline capable of producing quality software in reduced time. A CI/CD pipeline consists of four stages namely source, build, test, and production.

Each stage is assisted using several tools and a feedback mechanism that triggers when a bug is identified in the current build. With the version control tools, the source code can revert to previous versions.

CI/CD process is an automated process that is capable of producing faster updates and is therefore used in popular companies like Amazon, Netflix, Etsy, Target, and many more.

Having any doubts, don’t worry, drop them on our  DevOps and Agile Community!

The post What is CI/CD? appeared first on Intellipaat Blog.

Blog: Intellipaat - Blog

Leave a Comment

Get the BPI Web Feed

Using the HTML code below, you can display this Business Process Incubator page content with the current filter and sorting inside your web site for FREE.

Copy/Paste this code in your website html code:

<iframe src="https://www.businessprocessincubator.com/content/what-is-ci-cd-2/?feed=html" frameborder="0" scrolling="auto" width="100%" height="700">

Customizing your BPI Web Feed

You can click on the Get the BPI Web Feed link on any of our page to create the best possible feed for your site. Here are a few tips to customize your BPI Web Feed.

Customizing the Content Filter
On any page, you can add filter criteria using the MORE FILTERS interface:

Customizing the Content Filter

Customizing the Content Sorting
Clicking on the sorting options will also change the way your BPI Web Feed will be ordered on your site:

Get the BPI Web Feed

Some integration examples

BPMN.org

XPDL.org

×