Unparalleled Flexibility
January 19, 2018

Unparalleled Flexibility

Aiman Najjar | TrustRadius Reviewer
Score 8 out of 10
Vetted Review
Verified User

Overall Satisfaction with Jenkins

Jenkins is an extremely powerful continuous integration/continuous delivery tool. It can be used to automate a very diverse set of operations - including, but also well beyond, application deployments. This is thanks to amazing flexibility and the impressive number of available plugins.

In the traditional sense, Jenkins easily addresses the following problems:
  • Build and release automation
  • Test automation with result report generation
  • Test coverage reports
  • Version control polling
  • Status notifications
  • Conditional, concurrent and branched pipelines
  • Master-slave architecture
  • Credentials storage
  • Really, any custom scheduled or event-driven (primarily via version control events) workloads - of course don't go crazy with that, you don't want to schedule data science jobs on Jenkins for example. Key word is "operations".

Thanks to its large community and amount of available plugins, you can easily:

  • Integrate with Slack to push notifications, also true for many other chat services
  • Integrate with GitHub, GitLab, Bitbucket via hooks (as opposed to polling)
  • Create and restore backups
  • Integrate with external authentication providers (e.g. OAuth)
  • Define your pipelines as code


  • Large and diverse selection of plugins
  • Build and release automation
  • Operations automation
  • Does not encourage modular and repeatable design patterns: while Pipeline plugin (pipeline as code) partially solves the problem but it's not quite there yet. You cannot encapsulate your entire pipelines in self-contained, reusable and deployable code.
  • Jenkins hasn't caught up in treating containers as first-class citizen. Workloads run directly atop the Jenkins node. This means potential security issues and lacking the ability to constraint resources allocated to workloads.
  • It's very plugins-driven. Although the quantity and diversity of available plugins is amazing; but the plugins architecture makes it easy to bloat your Jenkins node with plugins and destabilize it over time. Plugins are installed globally (with ability to enable/disable at job-level).
  • Jenkins is a great investment if used for heavily customized workloads.
  • For traditional CI/CD problem, the ROI will decrease as Jenkins in its current design does not encourage modular and reusable patterns
Jenkins immense flexibility and its large and impressive selection of available community-driven plugins makes it ideal choice for solving non-traditional problems.

However, for CI/CD - consider the benefit of modern tools that enforce reusable, infrastructure as code design pattern.
Even though Jenkins was designed primarily for CI/CD, I wouldn't say that CI/CD is its greatest strengths at this time and age. Many modern CI/CD tools have emerged recently which specifically target CI/CD problems in lean, code-driven and containerized approach.

Ironically, that makes Jenkins ahead of those CI/CD-focused tools in solving non-traditional problems. I would still think of Jenkins as first choice for following use cases:
  • Automating Standard Operating Procedures - e.g. when you want to give your T1 support team a UI with single-click button to perform a routine SOP.
  • Scheduled test and validations that are not tied to releases - e.g. I've used Jenkins to automate data consistency tests across two layers of data stores and generate a nice HTML report of detected discrepancies, and also notify when any are found!
  • Workloads that require generating custom reports
  • Any other custom operations automation