Difference between Continuous Integration and Continuous Delivery: CI vs CD

Rashmi Bhardwaj | Blog
Advertisements

Legacy application development methodologies can no longer handle the business demands of cloud-based enterprises. Frequent delivery of applications to customers is the need of the Modern world without impacting their operations and critical business functions. The agility demands continuous delivery, continuous deployment, ongoing automation, and continuous monitoring throughout the lifespan of applications along with development and operations teams working together in an agile manner. 

Today we look more in detail about Continuous Integration (CI) and continuous delivery (CD) approach towards application lifecycle management, its features , how they differ from each other and its benefits as compared to legacy approaches. 

Continuous Integration (CI)

In the Continuous integration (CI) phase in Software development lifecycle code from different teams or different features are integrated together. Code merging , building the application and carrying out basic tests in an ephemeral environment in this phase. Modern day applications rely on multiple code developers working simultaneously on several features of an application. This could be tedious and challenging especially if the coder has customized its own local integrated development (IDE) instead of using one cloud-IDE. CI workflows may vary depending on tools, programming language, projects, and other factors but all CI follows some standard steps as under:

Advertisements

  • Push to the code repository
  • Perform static analysis
  • Testing before deployment 
  • Packaging and deployment in test environment
  • Testing post deployment 

CI helps coders to merge their code changes back to a shared branch, or ‘trunk’ in frequent manner, sometimes daily also. When coder changes are merged to application, changes are automatically validated by application, running different levels of tests – unit and integration tests to ensure changes have not negatively impacted the application. Testing encompasses everything from classes and function to modules which comprises the entire application. 

Continuous Delivery (CD)

Built-in integration testing in CI is followed by continuous delivery (CD) to automate the release of validated code to the repository. To have an effective continuous delivery process it is required to have CI already built into the development pipeline. The end objective of continuous delivery is to have a codebase which is always ready for deployment in a production environment.

In continuous delivery at each stage from merger to changes in code to delivery of a build which is production ready will involve testing automation and automation of code release. The operations team in the end should be able to deploy applications quickly and easily. A matured CI/CD pipeline results in continuous deployment as an extension of continuous delivery which automates application release to production. Continuous deployment means coder change to application could go live in minutes with the assumption it had passed automated testing. 

Comparison: CI vs CD

PARAMETERCICD
ProcessIs a process which occurs prior to build in which code is to be tested and requires coders to integrate and merge code in shared repositoryCD leverages automation to fasten the delivery of new code. Team builds, tests and releases software as soon as possible
ApproachIntegration of code into the mainstream code baseThis is process of testing, staging and deployment of code which occurs post integration of code to deliver application updates to users
PurposeMeant to incorporate code changes into shared repository on ongoing basisMeant to ensure that code base is always up to date and deployable in production environment
AutomationPurpose of automation in CI is to discover issues and validation of accuracy of new code before its integration in application.Purpose of automation in CD is to fasten the release of new code
BenefitsSome up-front benefits of CI are decreased expenses, instilling confidence, consistent construction process, mitigation of hazards, improved team communication etcSome upfront benefits of CD are reduction in risk, delivery of software with less issues, quick response to market conditions, release cycle is regular etc.
Benefits to codersEnablement of code testing automatically and continual integration with code of other developers and current code baseCode acceptance in CI stage builds a foundation to make it available to business users post testing of its logical functionality
Download the comparison table: CI vs CD

ABOUT THE AUTHOR


Leave a Comment

Your email address will not be published. Required fields are marked *

Shopping Cart