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

Posted by Dustin Keib, Head of Cloud Enablement, - Dec 9, 2020

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.

Together, CI/CD creates a streamlined, automated software development pipeline. @OnixNetworking

Not only that, but you also get a product that has been tested and retested so bugs are wiped out before they become an issue in the deployment phase. Think of it this way — continuous integration covers the build and testing, while continuous delivery takes care of the packaging and deployment aspects. 

Some of the key benefits of CI/CD include:

  • Smaller, simple code changes
  • Faster testing and fault isolation
  • Reduced mean-time-to-resolution (MTTR)
  • Speedier rate of release
  • Increased test reliability

Add these together, and ultimately, it means you have created a stronger development pipeline that yields a better quality end product. In a DevOps environment, it helps even out the world of development code changes with the operational desire for quick delivery of stable software products.

developer working digital tablet and computer laptop with smart phoneOften considered a DevOps best practice that can drive key performance indicators like MTTR, lead times and more thanks to the better cooperation, continuous testing and automated processes from the development starting line to deployment.

Ready to learn more about the concept of DevOps and how adopting it might benefit your organization? Check our other DevOps 101 blogs:

DevOps 101: What Does DevOps Mean and Why Do I Need It?

DevOps 101: The Strategic Partnership Between DevOps and the Cloud

DevOps 101: What Problems Does DevOps Solve?

Post Your Comments


Search Blog

App Dev consultation

Meet the Author

Dustin Keib, Head of Cloud Enablement

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.

More Posts By Dustin Keib, Head of Cloud Enablement
 

Cloud Assessment

We'd be happy to review your current cloud strategy and where you're looking to take it.

Get a Cloud Assessment