Jenkins - Hard to use but can be set up to do anything
Updated October 10, 2024
Jenkins - Hard to use but can be set up to do anything

Score 7 out of 10
Vetted Review
Verified User
Overall Satisfaction with Jenkins
We use Jenkins to build and deploy all our applications. This range from web services, APIs, docker images, automated tests to small helper scripts. It automates all our build flows and make sure we always build using the same environment like most CI. As we have many applications depending on one API that have to be rebuilt every time, Jenkins provide us a cheaper alternative that is not dependent on build minutes.
Pros
- Build java applications
- Plugins for any use case
- Able to adapt to your needs
- Supports Active Directory integration
Cons
- UI can feel quite clunky and slow
- More functionality built in instead of having to rely on third party plugins
- Project of type Maven is most of the time buggy, we need to use free-style project to avoid this bugs losing out of the box functionality
- Our cost for CI is really low compared if we would use cloud providers
- Cost of maintenance is a drawback, we are manually updating plugins and Jenkins on a regular basis
- We are using several different JDK versions - Jenkins let us manage this in a very good way
Bitbucket building was very slow, in order to improve that you have to upgrade to spend double or more minutes per build minute. The GUI was also very slow in updating on the progress of the builds, making things rather confusing. GitLab worked a bit better in my opinion, but didn't have the same type of integration capabilities that Bitbucket and Jenkins have.
Do you think Jenkins delivers good value for the price?
Yes
Are you happy with Jenkins's feature set?
Yes
Did Jenkins live up to sales and marketing promises?
I wasn't involved with the selection/purchase process
Did implementation of Jenkins go as expected?
Yes
Would you buy Jenkins again?
Yes
Using Jenkins
12 - The people that work with Jenkins are mostly software engineers. We have two teams, one working on more backend and API development and another team working on more client facing applications. The two teams are using Jenkins for building, packaging and deployment of the applications.
Besides the software engineer, we have test engineers running automated test cases using Jenkins.
Besides the software engineer, we have test engineers running automated test cases using Jenkins.
2 - Usually the people that have kept an active maintenance of Jenkins is more inclined to be interested in systems and devops side of things. In our case, you would need to know about Docker, Docker Compose and of course of Jenkins to maintain it. You also need some knowledge about Linux in order to allow for some connections we have from Jenkins container to the host system for various jobs.
Besides that you need to keep track of different plugins that might be out of use or need to be installed.
Besides that you need to keep track of different plugins that might be out of use or need to be installed.
- Packaging applications
- Deployment of packaged applications to repositories
- Deployment to different environments from repositories
- Test automation
- Maintenance of other systems (automation)
- Use it to update tickets in Jira in deployment flows
- Maintenance activities of JFrog Artifactory
- Maintenance of docker (prune and registry)
- Branching git repositories in bulk
- Performance testing
- API testing
- Closer integration with Kubernetes
Evaluating Jenkins and Competitors
- Integration with Other Systems
- Other
The most important factor was that we could run it in-house on our own servers. This has allowed us to save costs as we are using a lot of minutes every day.
Otherwise, we are two different teams using Jenkins so we needed a tool that can integrate and work with many different functionalities.
Otherwise, we are two different teams using Jenkins so we needed a tool that can integrate and work with many different functionalities.
I would probably consider the possibility to have the CI in a cloud environment as it takes some time to maintain Jenkins. I would also have included more tools in the evaluation, now a days there is a lot of different open source options.
Jenkins Implementation
- Implemented in-house
Change management was a small part of the implementation and was well-handled - We went from doing the jobs in a home built tool, so the step to moving this into Jenkins was a big improvement. There were no real issues moving to this way as Jenkins was basically doing the same things that the old system was doing but in an automated way.
- We wanted to run Jenkins in a docker image, and it was a bit hard to set up as the documentation was at that point not very clear
- We needed Jenkins to communicate with the docker daemon to start other containers from within the container, this was a bit tricky to get right
Jenkins Support
| Pros | Cons |
|---|---|
None | None |
We do not have support and we chose not to purchase premium support. The reason is that there is a lot of information available online on problems related to Jenkins and so far we have found answers to our questions on the web.
I cannot describe this as we have not had support for this product.
Using Jenkins
| Pros | Cons |
|---|---|
Consistent Familiar | Unnecessarily complex Difficult to use Requires technical support Not well integrated Cumbersome |
- Parameterizing jobs in different ways
- Job history and logs
- Configuration is somewhat hard to understand
- We have some old style configuration jobs, and they are challenging to change
Comments
Please log in to join the conversation