What Is a CI/CD Pipeline, Really

CI/CD explained without the buzzwords — what continuous integration and continuous deployment actually automate, and what a real pipeline looks like end to end.

Free preview · 2 of 3 free left
Topic: Operations Guide beginner 8 min read

Why this matters

"CI/CD" gets used as a single buzzword so often that it's easy to lose track of what it's actually automating and why. Understanding the two halves separately — and seeing a real, concrete pipeline — makes it much easier to reason about what to do when a pipeline fails, or how to design one for a new project.

What you'll learn

What CI and CD each automate on their own, the typical stages a real pipeline runs through, and a concrete example: the actual pipeline that deploys this project.

Continuous Integration: catch problems the moment they're introduced

CI means: every time code is pushed, an automated process builds it and runs its tests immediately — not once a day, not "before the next release," but within minutes of the change existing. The value isn't the automation itself; it's the speed of feedback. A test failure caught two minutes after a push is a quick fix. The same failure caught two weeks later, after ten more changes have been layered on top, is a much harder problem to isolate.

Continuous Deployment: remove the manual "push the button" step

CD means: once a change passes CI, it's automatically deployed — to a staging environment, or directly to production, depending on how much automated confidence the pipeline has. This removes a specific human failure mode: someone building the right code but forgetting to actually deploy it, or deploying an outdated build by mistake. It does not mean deploying without any checks — it means the checks themselves are automated and must pass before deployment proceeds.

The typical stages of a real pipeline

  1. Trigger — a push to a specific branch (often main) starts the pipeline.
  2. Build — the code is compiled/bundled into a deployable artifact.
  3. Test — automated tests run against the build; a failure here stops the pipeline entirely.
  4. Package — the build is packaged into its deployable form (a container image, in many modern setups).
  5. Deploy — the packaged artifact is shipped to the target environment.
  6. Verify — a post-deployment health check confirms the new version is actually serving traffic correctly.

A concrete example: this project's own pipeline

This site's own deployment flow is a real, working (if intentionally simple) CI/CD pipeline: a git push origin main triggers Cloud Build, which builds a container image from the Node.js/Express application and deploys it to Cloud Run automatically. There's no separate manual "click deploy" step — the push itself is the trigger for the entire build-and-deploy sequence. This is a genuinely minimal but complete CD pipeline: one trigger, one build stage, one deploy stage, and Cloud Run's own startup health check acting as the verification step.

What's next

Because a push to main deploys automatically, everything upstream of that push matters enormously — see Git for a Real Website for the full workflow that makes sure only validated, intentional changes ever reach that trigger. For how to make deployment scripts themselves safe to run more than once, see Writing Idempotent Deployment Scripts.

Part of: DevOps Beginners, Cloud Beginners, Second Year

← Back to Guides

Next → Why Git Matters Even as a Student Why learning Git in your first year — long before any job — is one of the highest-return things a student can do, and how it doubles as a portfolio you build automatically.