2022 Gartner® Magic Quadrant™ SIEM
Get the reportMore
Continuous integration is the practice of merging software code into an automated build process every time a new version is committed to source control. This triggers a series of automated tests that are performed before updates are added to the source code depository. In this way bugs, incompatibilities, and regressions can be identified and fixed rapidly—before they become a larger issue and disrupt workflow.
Continuous integration (1993) predates Agile philosophy (2001). Lean methodologies used in Agile share common traits with continuous integration practices, including shortened release cycles, automation, collaboration among the entire DevOps team, and continually improving a process to add value.
Continuous integration is similar to continuous delivery, but different in important ways. Continuous integration (CI) refers to testing and verifying new code with the mainline build before adding to source control, then completing more tests before deploying to a staging environment. Continuous delivery (CD) refers to the practice of having software ready for release at any given time.
A development team may use continuous integration without continuous delivery. However, the continuous delivery pipeline cannot be implemented without continuous integration. Continuous delivery essentially expands the process of continuous integration to include release. When CD is implemented successfully (with CI as a strong component), delivery of software products is based on consumer demand and the state of the market at any given time—not development timelines or dependencies.
When it comes to best practices for continuous integration, developers should:
Tools are used in continuous integration (CI) for testing, automated builds processes, and version control. Some examples of these are:
CI is invaluable for DevOps teams who need to work at a fast pace and get feedback at regular intervals to discover bugs and regressions. It also aligns with core principles of lean practices in Agile, such as:
A single build per day was the standard in years past—but not anymore. To be competitive these days, enterprises need to continually release new software features and updates. CI allows this to happen by shortening the application lifecycle, updating source code often, and decreasing the number of bugs released with a new feature.
A typical development scenario using CI can be illustrated in eight steps:
With CI it is important to minimize branching of multiple versions of software from the mainline and to integrate changes to the source code often. How often integration occurs will depend on the DevOps team and complexity of the project, but it usually happens multiple times per day.
Application development is becoming more complex, and the time it takes to get from planning, development, and production to market is accelerating at a rapid pace. By applying CI and CD practices to Agile methodologies, DevOps teams can keep pace with the competition and ensure they are creating the most robust features possible.
For more information about CI in real-world development environments, check out our conversation with JFrog about continuous integration, software delivery, and architecting for microservices: Optimizing Continuous Integration and Delivery Using Advanced Analytics.
Build, run, and secure modern applications and cloud infrastructures.Start free trial
The Amazon Web Services (AWS) Marketplace offers a large variety of commercial and open source offerings to augment software configuration and release within the AWS ecosystem. Sumo Logic's AWS Marketscape looks at the pros and cons of the most common configuration and release solutions from the Marketplace.