clement13.net
Original photo: Convoyeurs à rouleaux et à bande d'une usine, en courbes bleues enchaînées.
Description
Convoyeurs à rouleaux et à bande d'une usine, en courbes bleues enchaînées.
Source
falco (Pixabay) · original page
Licence
CC0 Public domain
Original photo, unretouched. The background is a version of it stylised by the site.

Continuous Integration and Continuous Delivery

This topic measures the speed and safety with which a validated change becomes a deployable deliverable. The indicators are those from DORA research (delivery frequency, lead time for…

Guide≈ 7 min readCheckedCheck doneFacts, figures and references were checked against the sources cited in the page.Written with AI assistance; sources are cited at the bottom of the page. An error? Report it via clement13.net.Reading
In brief

This topic measures the speed and safety with which a validated change becomes a deployable deliverable. The indicators are those from DORA research (delivery frequency, lead time for changes, change failure rate, recovery time) applied to the build and promotion pipeline; production operations are covered under 06.

On this page

Level: 🟢→🔴 · Topic code: CIC (DL matrix)

Why this topic#

Continuous integration checks at every change that everything still holds together; continuous delivery ensures you can release at any time, without ceremony. Without this, delivery is a rare, high-pressure, manual event that depends on specific people — the opposite of a team capability. The Accelerate research and DORA reports have shown that high-performing teams combine speed and stability: delivering more often does not degrade quality, it improves it, because batch sizes are small.

DORA's four historical measures: deployment frequency, lead time between a validated change and its release to production, change failure rate, and time to restore service. DORA has since expanded its model: recovery time became “failed deployment recovery time” (limited to failures caused by a change), and a fifth measure, deployment rework rate, was added; current thresholds should be checked on the DORA website. This topic is based on the spirit of the measures, without copying their thresholds as dogma.

The data case has its own specifics: a pipeline delivering a semantic model or SQL procedures must handle persistent state (schema, loaded history); this is covered in CI/CD for data: foundations, datamarts, pipelines, and reports. Building an installation kit is also an “artifact” that must be produced reproducibly.

What this topic measures#

  • Axis: from “build on the developer's workstation” to “automated, reproducible, fast pipeline that promotes the same artifact all the way to production”.
  • Key indicators: commit → validated artifact lead time (minutes); delivery frequency (per week); pipeline failure rate not caused by code (%); reproducibility (same commit → same artifact).
  • Unit: minutes; deliveries/week; %.

Five-level table#

Level Short name Promise Typical indicator (orders of magnitude)
1 Craft A release is built by hand, by someone who knows the process. Build on workstation; release every 3 to 6 months
2 Scripted Anyone on the team can produce the deliverable by following a script. Build script; monthly release
3 Automated At each change, a tested deliverable is produced with no manual intervention. CI pipeline; feedback < 15 min; weekly release
4 Promoted The same artifact moves through all environments; a release is a business decision, not a technical effort. Single artifact; on-demand release; failure < 15%
5 Continuous Every validated change can go to production in under an hour, with automatic rollback. Change → production lead time < 1 day (often < 1 h); recovery < 1 h

Milestones by level#

ID Milestone Verifiable evidence
DL-CIC-1.1 The deliverable can be rebuilt from versioned source Rebuild by a third party
DL-CIC-1.2 Build steps are listed Replayable document
DL-CIC-1.3 Released versions carry a unique number Tracked numbering
DL-CIC-2.1 A single script produces the deliverable (no hidden workstation step) Successful run on a fresh machine
DL-CIC-2.2 Dependencies are declared and pinned (versions, locking) Versioned lock file
DL-CIC-2.3 A dedicated build server exists (not a developer's workstation) Build machine identity
DL-CIC-2.4 Build prerequisites are documented or provisioned as code Rebuildable environment
DL-CIC-3.1 A pipeline is triggered automatically at every change Run log
DL-CIC-3.2 The pipeline runs compilation, static analysis, and fast tests in under 15 min Measured median duration
DL-CIC-3.3 A red pipeline is treated as top priority (team rule) and restored in < 1 h Measured time back to green
DL-CIC-3.4 The pipeline is defined as code and versioned with the application Definition in repository
DL-CIC-3.5 Artifacts are published to a repository with checksum and provenance Browsable artifact repository
DL-CIC-4.1 A single artifact is promoted from environment to environment (not rebuilt) Same checksum in test and production
DL-CIC-4.2 Configuration is separated from code and injected per environment No secret or URL in the artifact
DL-CIC-4.3 Promotion gates are automated (tests, analysis, security) with business approval if required Gate log
DL-CIC-4.4 The pipeline measures the four delivery indicators and publishes them Up-to-date dashboard
DL-CIC-4.5 The build is reproducible (same commit → same content, timestamp aside) Proven identical rebuild
DL-CIC-5.1 A validated change reaches production in < 1 day with no manual technical intervention Measurement over 20 changes
DL-CIC-5.2 A failure detected in production triggers automatic rollback or failover Successful drill
DL-CIC-5.3 The pipeline self-monitors (duration, instability, queues) and its technical debt is managed Pipeline health indicators
DL-CIC-5.4 The pipeline itself is tested and rebuildable (build infrastructure as code) Full factory rebuild in < 1 day

Detailed reading by level#

🟢 Level 1 — Craft#

  • Signs: “only Pierre knows how to run the build”; the deliverable depends on the machine; unwritten manual steps.
  • Gain: initial speed.
  • Does not guarantee: reproducibility or continuity if the person leaves.
  • Difficulty: 1/5 · Effort: 1/5.

🟢 Level 2 — Scripted#

  • Signs: one script does everything, pinned dependencies, a build server.
  • Gain: anyone can release; process errors go down.
  • Does not guarantee: automatic feedback for every change.
  • Difficulty: 2/5 · Effort: 2/5.

🟡 Level 3 — Automated#

  • Signs: the pipeline is change-triggered, fast, and defined as code. A red pipeline is a team incident.
  • Gain: feedback goes from days to minutes; quality becomes continuous.
  • Does not guarantee: that the tested artifact is the one deployed.
  • Difficulty: 3/5 · Effort: 3/5.

🔴 Level 4 — Promoted#

  • Signs: “build once, deploy everywhere”; configuration is external; gates are automated. Delivery becomes a decision.
  • Gain: environment surprises disappear; auditing is trivial.
  • Does not guarantee: safe operations — see 06.
  • Difficulty: 4/5 · Effort: 4/5.

🔴 Level 5 — Continuous#

  • Signs: change → production in hours, with automatic rollback, with no one technically “pushing the button”; the pipeline is monitored like a product.
  • Gain: the team learns from production at a high pace.
  • Does not guarantee: that fast release is always desirable — some contexts (regulated, product delivered on-site) legitimately pace production release.
  • Difficulty: 5/5 · Effort: 5/5.

Partial achievement and rating#

Apply the rating rule.

  • 0.5 on DL-CIC-4.1: the artifact is promoted for the application but the database is rebuilt in each environment.
  • 0.5 on DL-CIC-3.3: pipeline restored in 4 h on average.
  • A partial 5: production reached in 2 days with no technical manual step, without automatic rollback.
⚠️ Pitfall

Pipeline theater. Symptom: green pipeline, manual deployment, tests “temporarily” disabled. Cause: weakened gates to meet a deadline. Remedy: count a bypassed gate; track bypasses.

⚠️ Pitfall

Rebuilding for each environment. Symptom: “it worked in test.” Cause: a different artifact per environment. Remedy: one single build, injected configuration.

💡 Expert tip

Distinguish delivery (available) and deployment (in production): a product delivered as an installation kit may have high delivery frequency but deployment paced by the customer. Measure what you control.

Moving to the next level#

Possible means (optional)

  • 1 → 2: replace manual steps with a script; pin dependencies.
  • 2 → 3: pipeline server, automatic triggering, pipeline defined as code; team rule “red pipeline = stop.”
  • 3 → 4: artifact repository, externalized configuration, automated gates, indicator measurement.
  • 4 → 5: failovers and progressive deployments, automatic rollback, pipeline monitoring.
🧪 Example

Datamart installation kit: at level 2, a script produces the kit in 25 min on an identified workstation. At level 4, the pipeline compiles scripts, reruns installation on an empty database and on a database from the previous version, then publishes a single kit with controlled checksum; the same kit is used in acceptance testing and production.

🤖 AI

Pipeline generation and failure diagnosis: gain 3/5, risk 3/5 (unpinned third-party actions, secrets exposed in logs). Guardrail: review pipeline definitions as code, pin action versions, no plaintext secrets.

⚠️ Pitfall (Goodhart)

Rewarding deployment frequency encourages artificial splitting; combining it with failure rate and recovery avoids this trap.

See also#

✻ Written by Claude Sonnet 5.5