No matter the size of your company, Azul offers competitive pricing options to fit your needs, your budget, and your ambition.
Forrester reports an 129% ROI by Optimizing Java Runtime Performance.
No matter the size of your company, Azul offers competitive pricing options to fit your needs, your budget, and your ambition.
Forrester reports an 129% ROI by Optimizing Java Runtime Performance.
CI/CD (Continuous Integration and Continuous Delivery, or Continuous Deployment) is a software development practice that automates how code changes are built, tested, and released. Instead of developers manually integrating and deploying code in large, infrequent batches, CI/CD uses automated pipelines to merge changes continuously, run tests automatically, and push validated code toward production faster and more reliably.
CI/CD has become a foundational practice in modern software delivery because it reduces the manual, error-prone work of integrating and releasing code, shortens the time between writing a change and getting it in front of users, and creates a repeatable, auditable process that teams can trust. This page breaks down what CI and CD each mean, how a typical pipeline works, the tools commonly used at each stage, and — because pipelines have become a meaningful attack surface in their own right — what CI/CD security involves and how teams approach it.
Continuous Integration is the practice of merging code changes from multiple developers into a shared repository frequently — often several times a day — rather than waiting days or weeks between merges. Each time code is merged, an automated process builds the application and runs a suite of tests to catch integration problems, bugs, or regressions as early as possible.
The core value of CI is speed of feedback. Because changes are small and tested immediately, developers find out within minutes whether a change broke something, rather than discovering a conflict weeks later when it is harder to trace and more expensive to fix. Common CI tools include Jenkins, GitHub Actions, and CircleCI, each of which can be configured to automatically build, test, and validate code on every commit or pull request. Many teams also run static application security testing (SAST) and software composition analysis (SCA) at this stage, scanning source code and open-source dependencies for known vulnerabilities before a change moves any further down the pipeline.
Continuous Delivery picks up where Continuous Integration leaves off. Once code has been built and tested, CD automates the process of preparing that code for release — packaging it, running additional checks against production-like environments, and confirming it is ready to ship. With Continuous Delivery, a human still approves the final push to production; with Continuous Deployment, that last step is automated as well, so validated changes go live without manual sign-off.
At this stage, teams typically run tests focused on production readiness: performance under load, compatibility with the target environment, and whether the change will scale as expected. Tools commonly used to manage delivery and deployment include ArgoCD and Spinnaker, which help automate releases across environments in a consistent, repeatable way. It is also common practice to run container and dependency scans at deploy time, checking the final build artifact for known vulnerabilities one more time before it reaches production.
A CI/CD pipeline is the automated sequence that carries a code change from a developer’s commit to a live release. While every organization configures its pipeline differently, most follow a similar shape:
Each stage can be supported by different categories of tooling: source control platforms, build automation servers, test runners, artifact repositories, deployment orchestrators, and monitoring systems. Together, these tools form the pipeline infrastructure that lets teams ship changes frequently without sacrificing quality or consistency.
CI/CD pipelines move code and credentials through many connected systems — source control, build servers, artifact registries, and deployment targets — which makes them an attractive target for attackers. CI/CD security refers to the practices and controls used to protect that pipeline itself, not just the application it produces. A compromised pipeline can let an attacker inject malicious code, steal credentials, or ship a tampered artifact to production without ever attacking the application directly.
Common risks in CI/CD pipelines include:
Most CI/CD security guidance centers on a consistent set of practices that reduce the pipeline’s attack surface and make it easier to detect problems early:
It’s worth noting that most CI/CD security tooling — SCA, SAST, and dependency scanners — evaluates code and dependencies before deployment, based on what’s present in a build rather than what actually runs. That pre-deployment view is valuable, but it doesn’t capture how an application behaves once it’s live. Runtime detection tools complement pre-deployment scanning by observing what actually executes in production. For example, Azul Vulnerability Detection identifies exploitable, class-level vulnerabilities in running Java applications, giving teams visibility into which known vulnerabilities are actually reachable in a live environment — information that can help prioritize remediation alongside the findings already surfaced earlier in the CI/CD pipeline. This class-level, in-production approach can identify exploitable vulnerabilities with up to 1,000 times greater accuracy than traditional application security (AppSec) and application performance monitoring (APM) tools (Azul, June 2025), by focusing on code paths that are actually loaded and executed rather than every dependency present in a build.
Organizations adopt CI/CD for a mix of speed, quality, and operational reasons. Common benefits include:
CI/CD stands for Continuous Integration and Continuous Delivery (or Continuous Deployment). It is a set of practices that automates building, testing, and releasing software, allowing teams to ship code changes more frequently and reliably than manual processes allow.
CI/CD security is the practice of protecting the CI/CD pipeline itself — including source code repositories, build systems, artifact registries, and deployment infrastructure — from compromise, in addition to securing the application code that passes through it.
Common best practices include least-privilege access, secrets management, integrating SCA and SAST scanning into the pipeline, signing commits and artifacts, generating an SBOM for each build, using immutable build environments, and continuously monitoring applications for vulnerabilities after deployment.
No. A CI/CD pipeline automates delivery, but it does not automatically secure itself. Pipelines introduce their own risks — exposed secrets, over-privileged access, and vulnerable dependencies, among others — that need to be addressed deliberately through the practices described above.
Continuous Delivery automates everything up to production but leaves a manual approval step before a release goes live. Continuous Deployment goes one step further and automates that final release step as well, so every change that passes testing is deployed automatically.
CI/CD pipelines are the delivery mechanism most DevSecOps practices run inside. Readers new to this space may also want to review Azul’s glossary entry on DevSecOps for how security fits into the pipeline described here, as well as related terms covering software supply chain security and container security.
Azul also supports the pipeline’s build inputs directly. Azul Core provides 100% open-source builds of OpenJDK, verified against the Technology Compatibility Kit (TCK), with a documented quarterly and monthly patch cadence and out-of-cycle zero-day fixes, so teams pulling a JDK into their CI/CD pipeline know exactly what they’re building with and how quickly it gets patched.