Misplaced Pages

CI/CD

Article snapshot taken from[REDACTED] with creative commons attribution-sharealike license. Give it a read and then ask your questions in the chat. We can research this topic together.
Software development methodology For corporate communication topics, see Corporate identity and Corporate design.
Part of a series on
Software development
Core activities
Paradigms and models
Methodologies and frameworks
Supporting disciplines
Practices
Tools
Standards and bodies of knowledge
Glossaries
Outlines

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

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.

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. Automated tests verify the software functionality, and automated deployment services deliver them to end users. 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:

  • Number of Pipelines: Small teams can be more productive by having one repository and one pipeline. In contrast, larger organizations may have separate repositories and pipelines for each team or even separate repositories and pipelines for each service within a team.
  • Permissions: In the context of pipeline-related permissions, adhering to the principle of least privilege can be challenging due to the dynamic nature of architecture. Administrators may opt for more permissive permissions while implementing compensating security controls to minimize the blast radius.

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. Rossel, Sander (October 2017). Continuous Integration, Delivery, and Deployment. Packt Publishing. ISBN 978-1-78728-661-0.
  4. 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.
  5. Serverless Architectures on AWS. Manning. ISBN 978-1617295423.
  6. Pipeline as Code Continuous Delivery with Jenkins, Kubernetes, and Terraform. Manning. ISBN 9781638350378.
  7. Continuous Delivery Reliable Software Releases Through Build, Test, and Deployment Automation. ISBN 9780321670229.

External links

Software engineering
Fields
Concepts
Orientations
Models
Developmental
Other
Languages
Related fields
Category: