Jenkins Still Works. But Ask Yourself Why You Are Still Using It.

by Arif Ikhsanudin, Backend Developer

The Honest Case for Staying on Jenkins

Jenkins has been running production pipelines since 2011. It has a plugin ecosystem of over 1,800 plugins. It runs on-premises without sending your code to a third party. It can be configured to run on air-gapped networks. It integrates with almost everything. It has a massive community and extensive documentation for edge cases.

If you're in a regulated industry where your build environment cannot touch external cloud services, Jenkins is often the only serious option. If you have complex, highly customized build infrastructure that would take a year to migrate, the migration cost may exceed the operational savings for years. If your team has deep Jenkins expertise and your builds run reliably — Jenkins is working, and "working" has value that's easy to underestimate.

These are legitimate reasons to stay on Jenkins. The problem is that most teams aren't on Jenkins for these reasons. They're on Jenkins because it was set up in 2017 and nobody has prioritized migrating.

What Jenkins Actually Costs

The operational cost of Jenkins is real and often invisible because it's amortized across the team without being attributed to anyone in particular.

Infrastructure management. Jenkins requires a controller (formerly called master) node and agent nodes. These need to be provisioned, sized, kept available, patched, and scaled. Someone manages this — either explicitly (an ops engineer) or implicitly (a developer who got assigned it once and became the de facto Jenkins person). Cloud-native CI platforms (GitHub Actions, GitLab CI, CircleCI) handle this infrastructure entirely.

Plugin management. Jenkins plugins require explicit version management. Plugin A depends on Plugin B version 2.3+, but you're on 2.1 because Plugin C requires 2.1 exactly. Updating plugins is a risk event in Jenkins in a way that it simply isn't in platforms where the pipeline runtime is managed for you.

Slow configuration feedback. Declarative Jenkinsfile syntax errors are discovered at runtime — you push, the job starts, and it fails 30 seconds in with a parse error. Modern platforms validate workflow syntax before the job runs. This sounds minor; it costs 2–5 minutes per iteration during pipeline development.

Security maintenance burden. Jenkins and its plugins have a high CVE rate. Keeping a Jenkins instance secure requires regular updates, plugin audits, and active monitoring of the Jenkins security advisories. Each update carries regression risk.

What the Alternatives Actually Offer

GitHub Actions (if your code is on GitHub): zero infrastructure to manage, native integration with your repository, OIDC-based authentication to cloud providers without stored credentials, reusable workflows, and a marketplace of actions. Pricing is per-minute on hosted runners, with free minutes for public repositories and small private usage.

GitLab CI (if your code is on GitLab): similar zero-infrastructure model, excellent native Docker integration, built-in artifact management, and GitLab's native features (issue tracking, code review, environment tracking) integrated with the pipeline.

Buildkite: a hybrid model — Buildkite orchestrates the pipeline but your own agents run the jobs. This addresses the compliance and data-residency concerns that push teams toward Jenkins while eliminating the controller management overhead. Useful for teams that need on-premises execution but don't want to operate a Jenkins instance.

The Migration Question

If you're asking whether to migrate, the relevant questions are:

What is the operational cost of Jenkins today? Count the hours per month your team spends on Jenkins infrastructure, plugin updates, and Jenkins-specific debugging. Be honest about the burdened cost of that time.

What would you gain from migrating? Reduced infrastructure overhead, faster configuration feedback, better secret management (especially OIDC), and a platform that receives ongoing development rather than community-maintained plugins.

What would it cost to migrate? Translating Jenkinsfiles to the target platform's syntax, rewriting shared library code, and training the team on the new platform. For a 10-pipeline team, this is typically 2–4 weeks of focused effort.

Are there blockers? On-premises execution requirements, air-gap requirements, compliance requirements that mandate specific audit logging. These may make Jenkins non-negotiable.

The Practical Recommendation

If you're on Jenkins and it works — really works, with low operational overhead and a team that maintains it well — there's no urgent reason to migrate. The grass-is-greener problem is real in CI tooling.

If you're on Jenkins and it's a constant source of maintenance burden, unclear pipeline failures, and plugin conflict headaches — migrate. The migration cost is a one-time expense; the Jenkins overhead is an ongoing one. On any reasonable time horizon, the migration pays for itself.

The question isn't "is Jenkins good?" Jenkins is good. The question is: is Jenkins right for your team's current context, or is it inertia from a decision made years ago that nobody has revisited?

Scale Your Backend - Need an Experienced Backend Developer?

We provide backend engineers who join your team as contractors to help build, improve, and scale your backend systems.

We focus on clean backend design, clear documentation, and systems that remain reliable as products grow. Our goal is to strengthen your team and deliver backend systems that are easy to operate and maintain.

We work from our own development environments and support teams across US, EU, and APAC timezones. Our workflow emphasizes documentation and asynchronous collaboration to keep development efficient and focused.

  • Production Backend Experience. Experience building and maintaining backend systems, APIs, and databases used in production.
  • Scalable Architecture. Design backend systems that stay reliable as your product and traffic grow.
  • Contractor Friendly. Flexible engagement for short projects, long-term support, or extra help during releases.
  • Focus on Backend Reliability. Improve API performance, database stability, and overall backend reliability.
  • Documentation-Driven Development. Development guided by clear documentation so teams stay aligned and work efficiently.
  • Domain-Driven Design. Design backend systems around real business processes and product needs.

Tell us about your project

Our offices

  • Copenhagen
    1 Carlsberg Gate
    1260, København, Denmark
  • Magelang
    12 Jalan Bligo
    56485, Magelang, Indonesia

More articles

Writing Useful Unit Tests for Spring Boot Services — Patterns That Catch Real Bugs

Most unit tests verify that code does what it already does — they pass when the code is written and continue passing through every refactor, catching nothing. Here is how to write tests that fail when something breaks and survive when nothing does.

Read more

Why Documentation Is a Leadership Skill, Not a Chore

Writing good documentation is not about being thorough or disciplined. It's about understanding what the people who come after you will actually need — and caring enough to provide it.

Read more

What Happens When You Accidentally Delete the Production Database

One wrong click in production. Data disappears. Panic sets in. But who’s really at fault? Spoiler: it’s not the developer.

Read more

The SQL Mistake That Looks Correct But Returns Wrong Data

Some SQL queries pass code review, return results, and are subtly wrong — understanding the common correctness traps in joins, aggregations, and filtering logic is what separates SQL that works from SQL that works correctly.

Read more