The challenge
The pipeline had scaled worse than the product. Every change meant editing complex YAML by hand, there was no way to grant access by role, and builds ran without effective caching, so the slowest part of the day was waiting.
- Complex GitLab CI YAML that grew more cumbersome as the project scaled, needing frequent manual updates
- No SSO or role-based access control, leaving user management to be handled by hand
- No effective build caching, which stretched build times
- Deployments taking 1–2 hours and multiple people, creating a heavy dependency on DevOps
What we did
We replaced the YAML-driven GitLab CI path with Devtron, a CI/CD environment built for Kubernetes, so the deploy model matched the runtime instead of fighting it. The engagement was the migration itself: mapping every existing pipeline, rebuilding it as a Kubernetes-native workflow, and cutting services over without a release freeze. Docker layer caching went in first, because it was the cheapest large win available on build times.
“What used to take us 1–2 hours for deployments has now come down to just 10–15 minutes, which is a massive shift for us…”— Ram Bhavaraju, VP of Software & Web Technologies, Ather Energy
Alongside that we integrated SSO with role-based access control so permissions map to roles rather than individuals, and moved deployment configuration out of hand-written YAML, which removed most of the cognitive load the old setup imposed on anyone shipping a change. The last stretch was enablement, working with the SRE and the developers who inherited the pipelines until a deploy took two people instead of a scheduled window and a group.
The result
Deployment time fell by roughly 90%, from one to two hours down to ten or fifteen minutes. CI builds run up to 4x faster with layer caching. One SRE and one developer can now manage deployments between them, and the team releases on demand instead of scheduling after-hours windows.