CI/CD

Last updated

In software engineering, CI/CD or CICD is the combined practices of continuous integration (CI) and continuous delivery (CD) or, less often, continuous deployment. [1] They are sometimes referred to collectively as continuous development or continuous software development. [2]

Contents

Components

Continuous integration
Frequent merging of several small changes into a main branch.
Continuous delivery
Producing software in short cycles with high speed and frequency so that reliable software can be released at any time, with a simple and repeatable deployment process when deciding to deploy.
Continuous deployment
Automatic rollout of new software functionality.

When these three processes occur in order, they may be described as a "CI/CD pipeline". [3]

Motivation

CI/CD bridges the gaps between development and operation activities and teams by enforcing automation in building, testing and deployment of applications. CI/CD services compile the incremental code changes made by developers, then link and package them into software deliverables. [4] Automated tests verify the software functionality, and automated deployment services deliver them to end users. [5] The aim is to increase early defect discovery, increase productivity, and provide faster release cycles. The process contrasts with traditional methods where a collection of software updates were integrated into one large batch before deploying the newer version.

Modern-day DevOps practices involve:

of software applications throughout its development life cycle. The CI/CD practice, or CI/CD pipeline , forms the backbone of modern day DevOps operations.

Best practices for cloud systems

The following practices can enhance productivity of CI/CD pipelines, especially in systems hosted in the cloud: [6] [7] [8]

See also

References

  1. Sacolick, Isaac (2020-01-17). "What is CI/CD? Continuous integration and continuous delivery explained". InfoWorld . Retrieved 2021-06-01.
  2. "What is Continuous Development and How Does It Work? | Synopsys".
  3. "What is CI/CD?".
  4. Rossel, Sander (October 2017). Continuous Integration, Delivery, and Deployment. Packt Publishing. ISBN   978-1-78728-661-0.
  5. Gallaba, Keheliya (2019). "Improving the Robustness and Efficiency of Continuous Integration and Deployment". 2019 IEEE International Conference on Software Maintenance and Evolution (ICSME). pp. 619–623. doi:10.1109/ICSME.2019.00099. ISBN   978-1-7281-3094-1. S2CID   208879679.
  6. Serverless Architectures on AWS. Manning. ISBN   978-1617295423.
  7. Pipeline as Code Continuous Delivery with Jenkins, Kubernetes, and Terraform. Manning. 23 November 2021. ISBN   9781638350378.
  8. Humble, Jez; Farley, David (27 July 2010). Continuous Delivery Reliable Software Releases Through Build, Test, and Deployment Automation. Pearson Education. ISBN   9780321670229.