I’m trying to understand how different teams structure their delivery process.
In many setups, CI handles everything (builds, deployments, approvals, sometimes even rollback logic).
It works, but over time it feels like responsibilities start to blur.
CI is great at validating changes. But release decisions (what goes where, who approves, and how rollback works) seem like a different concern.
So I’m curious:
Do you separate CI and CD?
Or keep everything inside the same system?
Would be great to hear your thoughts on this and how your setup works.
Agreed. Once CI just proves the build and CD owns release decisions, things like rollback and approvals become much easier to handle.
In simpler teams, CI/CD is kept in one pipeline because it’s easier to manage and faster to ship. But as systems grow, separating concerns helps: CI focuses on validation (tests, builds), while CD handles release control (approvals, environments, rollback strategy). That separation often makes ownership clearer and reduces “pipeline doing everything” complexity.
That said, there’s no one-size-fits-all—what matters most is keeping release decisions explicit and traceable, not buried in automation logic.
Good question—this really depends on team size, product complexity, and how much control you want over releases.
In most modern setups, CI and CD are logically separate but often live in the same pipeline/tooling:
Separating them conceptually has a few benefits:
But fully separating them into different systems isn’t always necessary. Many teams use a single pipeline with distinct stages (e.g., build → test → stage → approve → deploy).
Where separation becomes more important:
So in practice, it’s less about strict separation and more about clear stage boundaries and control points within your pipeline.
Curious how others here are handling this—especially with GitOps and progressive delivery patterns becoming more common.
Varsha Ojha
Technical Writer
Yes, I’d separate them in most serious setups. CI should prove the code is safe to merge. CD should control how and when it reaches users. Keeping them separate makes rollbacks, approvals, staging checks, and production releases much easier to manage.