Centralized vs Individual CI/CD for 100 Projects: What’s Better?

April 26, 2025 5 answers
Asked by TechWhizKid44
I'm working at a company with around 100 projects and we're lacking proper CI/CD practices. I'm proposing that we set up a centralized CI/CD process using GitLab CI, where developers can just 'include' a shared pipeline to access all CI/CD features at once. This would allow us to manage the entire company's CI/CD from a single repository, streamline processes, and ultimately provide better and more frequent updates. However, this means we'll have to standardize our development practices. For instance, if we have a Go project, it should adhere to the go-project-layout for the CI/CD to work right. I'm aware that this may not fit well with mono-repositories (where one repo could contain multiple services). On the flip side, my CTO believes each project should have its own CI/CD pipeline, allowing various deployment methods like tag-based or branch-based deployments, plus the flexibility to disregard the go-project-layout and skip unit tests for some projects. I think his approach could hinder our progress toward continuous development, but he doesn't seem convinced. I'm looking for authoritative articles or videos that support my viewpoint. I also understand that I might not be entirely right; perhaps individual CI/CD pipelines for each project could be the better route after all.

Answers

CreativeCoder22
Instead of digging for authoritative sources to persuade your boss, use this platform for your own learning and to shape your viewpoint. After gathering insights, have an honest chat with your CTO. If you still can't align with them, it might be worth evaluating if this environment fits with your ideals and career goals.
Reply to this answer
PipelineNinja83
A centralized CI/CD system can standardize processes, but it might restrict flexibility. Consider using templated pipelines with adjustable modules - it combines standardization with the freedom teams often need. Your CTO's concerns have merit, but standardization typically pays off in the long run.
Reply to this answer
ProjectPilot
Standardization right from the start can be tricky, especially if your 100 projects have varying processes. It might be better to focus on a pilot project like a Go application first. Review what's consistent and what differs between projects, creating reusable pieces along the way. Aim for gradual improvement rather than a complete overhaul at once.
Reply to this answer
DevOpsGuru2023
Instead of going for a single centralized CI/CD pipeline, consider creating a CI/CD catalog filled with reusable components. These should have sensible defaults but allow developers some customization options. This way, you can establish a 'Golden Path' component that incorporates best practices while offering teams the flexibility they need.
Reply to this answer
CodeMasterJ
I totally agree with this approach! At my previous job, we built a library of reusable components with reasonable defaults that teams could customize. This allowed for standardization without forcing everyone into a strict framework. It's a solid compromise.
Reply to this answer

Add your answer

Answers are reviewed before publication.

Related Discussions