What is our primary use case?
My main use case for Jenkins is to automate deployments of my application and my serverless functions. I am using Jenkins for three scenarios: first, to deploy serverless applications, second, to deploy my applications, and third to deploy Terraform resources. I have multiple pipelines that pull from the repo where my application is hosted on GitLab. It is connected to GitLab, and as soon as I push my code, Jenkins sees the code changes and deploys it to the environment, whether it's serverless function code, application code, or Terraform deployment.
I have covered my main workflows regarding Jenkins.
How has it helped my organization?
Through Jenkins, we have fastened our deployments, enriched our integratability options, and added numerous features, which have reduced our deployment time by 50 to 60%. We no longer have to manually deploy applications; we just trigger the pipeline and Jenkins handles the rest.
By reducing deployment time by 50 to 60%, we are able to ship code to production more quickly—previously it took six to seven hours, and now it takes only about one hour to deploy an application. This efficiency allows developers to focus solely on their code without having to manage the DevOps side of applications. Jenkins enables them to just write code, push it to the repo, and then Jenkins takes care of everything. This focus on coding instead of CI/CD tasks has greatly increased productivity, especially because we are utilizing cloud-managed plugins that allow us to build pipelines in containers and dispose of them right after execution, saving costs.
What is most valuable?
The best features that Jenkins offers me are high customizability along with the support of Groovy language, which allows me to write my own functions and logic to deploy applications and configure the pipeline according to my use case. Its high integration capability with many plugins is also a significant advantage.
For example, we have certain cloud functions running on Google Cloud Run, and we deploy those in the form of containers. Jenkins is highly integratable with Docker through plugins, so we installed those plugins in Jenkins and provided the credentials and logic for execution. Additionally, we have a Bitbucket environment and AWS deployments where we also use Jenkins' strong AWS plugins to deploy resources effectively. Thanks to these plugins, it's easy to deploy rather than creating custom logic.
I have covered pretty much everything about the features of Jenkins.
What needs improvement?
Jenkins has many outdated plugins, and several are paid, which can be unnecessary. Better plugin maintainability is needed, and given the AI advancements today, AI support in Jenkins would be beneficial. Additionally, some error messages from Jenkins can be misleading, and the UI seems outdated, so there are areas for improvement.
The documentation for Jenkins sometimes lacks examples for implementing certain functions, so it could be reviewed and improved.
For how long have I used the solution?
I have been using Jenkins for the past three to four years.
What do I think about the stability of the solution?
Jenkins is highly stable and widely maintained.
What do I think about the scalability of the solution?
Jenkins is scalable, but not as greatly scalable as other market solutions; it does not operate on a master-slave architecture that allows for automatic failover. While deploying agents can utilize a master-slave structure, Jenkins itself requires manual intervention for the master.
How are customer service and support?
Jenkins is a community-managed tool, so there is no native support. However, there is a helpful GitHub issues section where we can discuss problems with other users.
Which solution did I use previously and why did I switch?
We were using native solutions such as GitHub Actions and manual scripts to handle deployments before switching to Jenkins. The downside of those solutions was that while GitHub Actions offers high integration, it does not allow for private setup; everything runs in the GitHub cloud. We needed to run Jenkins in our environment, keeping data secure and unshared, allowing us to operate independently.
What was our ROI?
We have seen a return on investment since implementing Jenkins. Before its introduction, developers had to manage both CI/CD and coding, which hampered productivity and prolonged the time taken to ship code. Now, with Jenkins, they can focus on coding, push code, and Jenkins automatically manages the process, ensuring security and efficiency, thus improving productivity and decreasing shipping time. We also enjoyed greater customer satisfaction and saved money in the process.
What's my experience with pricing, setup cost, and licensing?
We are using a community version of Jenkins and did not purchase it through the AWS Marketplace.
The main cost for using Jenkins is related to the server it is hosted on and the allocated capacity. While Jenkins is stable and can run on minimal resources, larger environments might incur higher costs due to the need for high-end VMs to run build agents.
Which other solutions did I evaluate?
We evaluated managed and cloud solutions such as AWS Pipeline, GCP Cloud Run, Cloud Deployment, and Cloud Build before deciding on Jenkins.
What other advice do I have?
Jenkins is widely used, rich in features, and helps to significantly reduce manual efforts. Its capability for writing functions is outstanding, making it a valuable tool. Currently, Jenkins does not have AI capabilities, although the tool is being evaluated for potential AI integration, and it is highly secure as we deploy it in our own environment without external exposure.
Jenkins is highly accurate and reliable; however, sometimes outputs can be misleading due to outdated plugins.
Jenkins is deployed in our organization on a public cloud, specifically in a private VM. We use both AWS and GCP as our cloud providers for Jenkins deployment.
I would advise others considering Jenkins to use it due to its rich feature set, private hosting capability, and high integrability. It serves as a solid alternative solution. I would rate Jenkins a 10.
Which deployment model are you using for this solution?
Public Cloud
If public cloud, private cloud, or hybrid cloud, which cloud provider do you use?
Amazon Web Services (AWS)