Jenkins : Pros and Cons

Back to Blog
Jenkins - Pros and cons

Jenkins : Pros and Cons

What is Jenkins?

Jenkins is an automation server software that is used frequently to achieve continuous integration and delivery in software projects. It is one of the most popular continuous integration tools available in the market today. Jenkins is open source and is available free of cost.

Traditionally, developers used to push their code (the process of code commit) to a version control server. Once there was enough code to build into a release, someone would invoke a build tool that took all the pushed code and created a build out of it that could be released into a specific environment (Dev, UAT or Production). With continuous integration, this ‘build’ operation is invoked each time a developer pushes his or her code to the repository. Jenkins, in this case, would also run tests to make sure that the build is stable and okay for delivery. If there are problems with the build, Jenkins would notify the developers that there is a problem.

Jenkins supports Windows, Mac OS X, and Unix operating system. It is supported by an active community that regularly contributes to the features and documentation of the tool. Developers invoke Jenkins in various ways. Some write a program that executes periodically (a cron job) that allows Jenkins to pick the latest code from the repository and build it. It can also be conditioned to act as soon as there is a new commit in the repository.

Jenkins’ rich plugin suite

Jenkins comes with a wide range of plugins as well that extend its functionality. The plugins from Jenkins range from ones that give control over the jobs they run to getting statistics on the builds done. Some of the popular plugins include Post+Build+Task that lets you perform specific actions depending upon the results of a build. If a build passes you can upload a success file and if it fails you can roll back your release. Jenkins also has plugins that help you integrate with different version control systems. This comes very handily when you are working with huge projects that have code bases scattered across different servers. Jenkins also offers plugins that let you do a specific task before doing a build. As mentioned before, Jenkins also has a plugin (called the JobGenerator Plugin) that lets you manage jobs using templates and role-based access.

The pros and cons of Jenkins

Jenkins is an immensely popular tool that is used in numerous projects needing continuous integration and delivery. Here are a few reasons why.

  1. Jenkins is open source and free

Jenkins is free to download and the source code is also available. This has spawned a growing community of developers who are actively helping each other out and contributing to the Jenkins project. This ensures that you get better and more stable versions each year.

  1. Jenkins comes with a wide range of plugins

Jenkins has a wide range of plugins that give a developer a lot of added features and power over the already feature-rich Jenkins installation. These plugins help developers extend Jenkins into their own custom tool for their projects.

  1. Jenkins integrates and works with all major tools

Jenkins being the popular tool it is, integrates with all major version control tools like CVS, Subversion, Git, build tools like Apache Ant and Maven and even other tools like Kubernetes and Docker.

  1. Jenkins is flexible

With its wide range of plugins and open architecture, Jenkins is very flexible. Teams can use Jenkins in projects of various sizes and complexity. Jenkins places no limits on the kinds and numbers of servers that can be integrated with it. Teams across the globe can work towards continuous delivery, seamlessly.

  1. Jenkins comes with a decent API suite

Jenkins comes equipped with APIs that lets you tailor the amount of data that you fetch. This mechanism helps your server use simple web-hooks to invoke Jenkins for specific purposes.

  1. Jenkins is easy to use

An active, vibrant community, regularly updated documentation and support for all major operating systems mean that a person with just decent skills can download and get Jenkins up and run in a few hours. The active community also readily answers questions on forums and groups that encourage newcomers into taking up this technology, more readily.

  1. You have a ready talent base

We all know how difficult it is to find talent for very niche technologies. Jenkins has cemented itself to be a popular tool in software development and it is absolutely possible for a recruiter to find a decent developer who is also good with Jenkins.

The advantages of Jenkins have contributed to its growing popularity and fan-base. There are also certain cons of using Jenkins that one must be aware of.

  1. Unpredictable costs

The costs of hosting the server (which isn’t free) that Jenkins runs on cannot be predicted easily. It is not always possible to predict the kind of load (depending upon the number of commits, volume of code, volume of assets etc.) that the server is going to serve. Hence the cost factor, even if Jenkins itself is free, remains unpredictable.

  1. Lack of governance

Jenkins’ management is generally done by a single user and that leads to tracking and accountability problems with the pushed code. There is tracking that exists on the Version Control Server but there is no tracking of that kind of Jenkins itself, which is a concern.

  1. No collaboration features

Jenkins doesn’t allow one developer to see the commits done by another team member, readily. This makes tracking the overall release progress a rather difficult job for larger projects. This can cause a lot of trouble to the release manager.

  1. Lack of analytics

Jenkins doesn’t provide any analytics (there are plugins but they are not enough) on the end-to-end deployment cycle. This again goes back to the lack of overall tracking that contributes to the lack of analytics as well.

  1. Needs personnel

While Jenkins is indeed a powerful and useful tool, managing a Jenkins server needs special attention and many times, a dedicated developer. This adds man hours to the project and pushes up the overall project cost as well.

Some Important Links :

TopicsLink URL
Jenkins Community Bloghttps://jenkins.io/node/
Pluginshttps://plugins.jenkins.io/
Participate and contributehttps://jenkins.io/participate/
Downloadhttps://jenkins.io/download/
Google Summer of Codehttps://jenkins.io//projects/gsoc/
Infrastructurehttps://jenkins.io//projects/infrastructure/

Jenkins is extremely powerful, extendable, and flexible and also remains one of the most popular continuous integration and delivery software in the world. With its new versions, one can hope that it eliminates some of the cons and grows, even more, to become every developer’s and IT company’s favorite continuous integration tool.

Share this post

Leave a Reply

Your email address will not be published. Required fields are marked *

Back to Blog