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

0
1
Asked By TechWhizKid44 On

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.

5 Answers

Answered By CodeMasterJ On

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.

Answered By DevOpsGuru2023 On

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.

Answered By ProjectPilot On

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.

Answered By PipelineNinja83 On

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.

Answered By CreativeCoder22 On

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.

Related Questions

LEAVE A REPLY

Please enter your comment!
Please enter your name here

This site uses Akismet to reduce spam. Learn how your comment data is processed.