What is our primary use case?
I use Jenkins for CI/CD pipelines.
What is most valuable?
Jenkins's automation and orchestration features have significantly improved workflows by automating various processes. Initially, it did not support YAML manifesting or GitOps, but recent versions have introduced these capabilities. Now, the tool supports importing manifest files from Git repositories, enabling the implementation of GitOps pipelines. Compared to other tools like GitLab, it has become a mature tool for running CI/CD pipelines.
While some integrations were difficult and time-consuming, others were more straightforward, requiring only a few clicks. The tool benefits from a community of plugin providers that offer various plugins for various functionalities.
What needs improvement?
Integrating Jenkins with other tools or solutions has presented some challenges. For instance, when attempting to integrate Jenkins with Kubernetes, I encountered numerous errors, which took several days to resolve. In Jenkins, adding a feature typically involves incorporating the repository feature separately. Jenkins lacks built-in Git repository functionality, necessitating an external Git repository to store Jenkins manifests.
In contrast, GitLab offers an integrated Git repository and pipeline runner, streamlining the process. One improvement for Jenkins could be integrating a Git server, simplifying the management of CI/CD pipelines. Currently, with Jenkins, modifying pipeline manifests requires navigating to a separate Git repository. In GitLab, however, manifest changes can be made directly within the repository.
For how long have I used the solution?
I have been working with the product for two to three years.
What do I think about the stability of the solution?
I've experienced some performance issues with Jenkins. It's using a PostgreSQL server to store its data, and currently, we're facing slow loading times for the tool pages. This slowness is due to many teams currently using it, which strains the database and slows performance. Unfortunately, we haven't been able to resolve this issue despite working on it for a year. As a result, loading the pages can take up to 15 seconds.
What do I think about the scalability of the solution?
Scalability is dependent on the database. The solution uses PostgreSQL as the default option, although other options are available. However, in our case, PostgreSQL's performance is currently quite low, which affects scalability. My company has 300-400 users. In our company, Jenkins is more widely used than Tekton. Approximately 70 percent of our organization's members utilize Jenkins, while the remaining 30 percent use Tekton.
Which solution did I use previously and why did I switch?
If I compare Jenkins with Tekton, Jenkins has a more mature dashboard, which allows for control over pipelines. Additionally, Jenkins offers numerous plugins that facilitate integration with other tools. For instance, integrating your pipeline with an email server is straightforward with the appropriate plugin, making integration much easier than with Tekton.
How was the initial setup?
The initial setup process isn't straightforward. While installing the Jenkins server is easy, adding agents for it can be complex. Setting up the Jenkins server is quick, often done through a Docker image. However, adding new agents, essential for tasks like building CI/CD pipelines, is not as simple. In my experience, it took considerable time to add agents, whether they were Kubernetes agents or agents on Linux machines, to the Jenkins server.
When I first installed and used the tool, it took me around three days to set up a production-ready Jenkins server. It was my first time using it. However, compared to other tools like Tekton, which took me only about half a day to install and set up for using pipeline and CI/CD workflows.
The tool's maintenance costs are low because you can upgrade the Jenkins server and agents without incurring additional costs. It's not dependent on the underlying system, which keeps operational costs down. I believe Tekton's cost of operations is lower.
What was our ROI?
Compared with Tekton, Jenkins can help save costs and improve efficiency in our project. It supports a library feature, allowing us to reuse code and avoid repetitive tasks, ultimately reducing operational expenses.
What's my experience with pricing, setup cost, and licensing?
What other advice do I have?
If someone asked me which CI/CD tool I recommend, I would suggest GitLab. However, if someone must choose between Jenkins and Tekton, I recommend Jenkins. I rate the product a six out of ten.
Which deployment model are you using for this solution?
On-premises