CI/CD at a High Level
Fig 1: High-Level CI/CD Pipeline Flow
The pipeline idea
Section titled “The pipeline idea”One of the central concepts in DevOps is the pipeline.
A pipeline is a sequence of repeatable steps that move software from source code toward deployment.
The most common umbrella term is CI/CD.
CI/CD stands for:
- Continuous Integration
- Continuous Delivery or Continuous Deployment
Continuous Integration (CI)
Section titled “Continuous Integration (CI)”Continuous Integration means changes are integrated into shared source control regularly, and automated checks help verify that the project still works.
Typical CI steps might include:
- install dependencies
- run linting
- run tests
- build the app
- verify configuration
- package artifacts
For a Node app, that might look like:
npm cinpm testnpm run buildif those scripts exist in the project.
Why CI matters
Section titled “Why CI matters”CI reduces the risk of teams drifting apart in hidden ways.
Instead of waiting until the end of a week or sprint to discover that multiple changes conflict or break the app, CI creates earlier feedback.
That means problems get caught:
- sooner
- more cheaply
- with less confusion
Finding a bug five minutes after you wrote the code is a minor annoyance. Finding a bug three weeks later during a massive integration push is an expensive nightmare.
Continuous Delivery / Continuous Deployment
Section titled “Continuous Delivery / Continuous Deployment”After CI verifies the build, CD handles moving the application toward a running environment.
That might include:
- building a deployable package
- creating a container image
- pushing that image to a registry
- deploying to a host or platform
- restarting services with the new version
The difference between delivery and deployment usually comes down to whether the final production release is still a manual approval step (Delivery) or fully automatic (Deployment).
For this course, the important part is the concept: software moves through a repeatable release pipeline rather than a pile of improvised manual steps.
Extra Bits & Bytes
Section titled “Extra Bits & Bytes”Martin Fowler: Continuous Integration
⏭ Memory Leaks
Section titled “⏭ Memory Leaks”We’ve seen what a pipeline looks like. But why is it so much better than just remembering how to deploy an app? Let’s talk about the fragility of human memory in operations.