There are many high-paying jobs that require Jenkins. I have used it quite a bit, but I still want to learn more about it. I don’t have anything against it. To me pragmatically it usually comes down to a fancy scheduling tool. While every enterprise is different, a build is often just an “execute shell” job. Jenkins gives you a common way to monitor a CI/CD pipeline (with many users watching the same important environment). But beyond it staying with the jobs, I don’t see why employers ask “how many year of Jenkins experience do you have?” Could a person who is otherwise technical and competent not have enough Jenkins experience? It is a light-on-features tool with a web UI. A crontab with bash scripts could substantially accomplish many Jenkins tasks without Jenkins being installed. Or am I missing something?
Jenkins is not just a CI tool anymore where you just run a build with shell scripts.
Nowadays Jenkins is the core for many projects that needed end to end automated application deployments. In short, it is being used as an orchestrator for deploying applications.
The last two project I have worked on, had a great level of dependency on Jenkins.
So, one thing you can look at it is, Jenkins pipeline as code. Jenkins version 2 has many functionalities in terms for Automation and traceability.
Refer this thread as well,
Nah, I personally hate Jenkins because of these reasons,
Harder time understanding the point and click nature of Jenkins
Can’t write logic for your pipeline because the tool your using had its own logic
Documentation is not at all good
Its configuration(the server) cannot be defined as code which is a pain to manage plugins, credentials, etc
Declarative is amazing, but the lack of documentation makes you insane because you only find info for scripted pipelines
There’s an annoying bug that doesn’t let you save the project configuration in a github organization.
Not a modern CI’ tool anymore
UI looks terrible
Here are my thoughts on your points.
- Harder time understanding the point and click nature of Jenkins
I have been in Cloud/DevOps space for some time, and this is the simplest tool I ever used.
- Can’t write logic for your pipeline because the tool your using had its own logic
Yes, we can. With custom shared libraries, you can write your won login using Groovy. You can override the jenkins and plugin functions based on your needs. As a matter of fact, in my current assignment we are using shared libraries for container-based CI/CD and it works pretty well.
- Documentation is not at all good
Agree. However, there are many threads and blogs with enough information. But a little research is required.
- Its configuration(the server) cannot be defined as code which is a pain to manage plugins, credentials, etc
Yes, we can define the configuration as code. Sometimes plugin updates might break the system but its the same case with every application.
- Declarative is amazing, but the lack of documentation makes you insane because you only find info on scripted pipelines
- There’s an annoying bug that doesn’t let you save the project configuration in a GitHub organization.
Not sure about this.
- Not a modern CI’ tool anymore
Agree. But from my experience, there is no CI/CD tool which will accommodate all the needs which a project demands. Every developer, manager, team, and organization has their own thought process in delivering applications. I have seen teams having a hard time in accommodating their needs just because they purchased a CI/CD enterprise product. Also, seen teams working great on such products. Its all comes down to the thought process and the skillset of the team members to adopt a tool.
For instance, If we take Netflix, Jenkins is part of their deployments process. They are doing pretty good it with it.
- UI looks terrible
Agree. Not a fan of Jenkins UI. There are few custom UI’s available which will give a little makeover for Jenkins. But I like Jenkins Blueocean. It is evolving pretty good.