DevOps 101: Continuous Integration and Continuous Delivery (CI/CD)

Posted by Dustin Keib, Head of Cloud Enablement

Dec 09, 2020

featured-image

Continuous integration. Continuous delivery. These two DevOps processes rely on each other to automate a software-defined lifecycle through agile development and deployment. That’s a lot of information to absorb, right?

In this latest chapter of DevOps 101, we’re going to take a closer look at continuous integration and continuous delivery, better known as CI/CD, so you can understand what each is and how they work together in a DevOps environment.

What is Continuous Integration and Continuous Delivery?

Continuous integration, or CI, is a software engineering practice that veers from the traditional development pipeline for the sake of increased quality, productivity and efficiency.

Typically, when a developer is done working on their code, they check it into a repository, where the main codebase for the project is stored. Other developers can also merge their code into this same repository.

young man using laptop while his friends work togetherIt is vitally important that all the developers test their code, as any issues that are merged can affect other developer’s code and ultimately the final product. Typically, this testing process is very manual, including opening the application and clicking through it to see if you can spot any issues. Manual testing is error-prone and can miss a number of issues. This is where CI comes in to automate that testing in the application development lifecycle.

When the new code merges with that already in the repository, it triggers a new build-and-test process. Pre-written tests are then automatically run that test for functionality and security holes early in the lifecycle. Continuous delivery, or CD, then takes over to automatically deploy the certified bug-free code. Combining continuous integration and testing with automated deployment allows developers to ship changes reliably, quickly and often. In essence, this practice makes it possible to seamlessly and continuously deliver and deploy the final product.

By depositing code into a shared repository at least a few times a day and triggering new builds each time, developers are able to work together to regularly test for bugs rather than waiting for the end of the development cycle to find these errors. Checking in smaller changes more frequently also makes it easier to find defects. 

CI/CD speeds up time to market and ensures bugs are resolved in the code during development and before it moves to the next phase in the software delivery process.

Why Should We Use Continuous Integration and Continuous Development?

As I mentioned earlier, by breaking down individual coding silos and automating testing and delivery throughout the development process, you can speed time to market for your end product. Together, CI/CD creates a streamlined, automated software development pipeline.

Subscribe for Updates

Dustin Keib, Head of Cloud Enablement

Dustin is a software engineer, systems architect, and cloud scalability expert at Onix. His deep understanding of the full SaaS and Paas stack comes from 20+ years of enterprise IT experience. Dustin is a Certified Google Cloud Solutions Architect, AWS Solutions Architect - Associate, and Puppet Professional and has a deep knowledge of infrastructure automation, containers, and CI/CD system design and implementation.

Popular posts

AWS 101: What is Amazon S3 and Why Should I Use It?

Kubernetes 101: What are Nodes and Clusters?

Update: How to Pass the AWS Solutions Architect Professional Exam