What is our primary use case?
There are many main use cases for Jenkins on CentOS 10.
Jenkins is a tool that we can use for Continuous Integration, Continuous Delivery, or both. In my case, it solves the deployments that we need to make in several environments and several projects, with many specificities, and it allows us to automate this entire process.
Imagine that I had to do all of this work manually. I have an application, for example in Java, with quality gates that I need to run. Besides building the project in a certain environment, I need to build Java project A in a client's homologation environment A. If I did this manually, I would have to take the project over the network or via pen drive and upload it. Then I would need to correctly install the right versions of Java on that machine and compile the project manually. After compiling, I would have to take the project from the source and move it to a destination within the client's project where it needs to run. Before that, I would have to run the quality gates, which are the checks. If any check fails, I need to contact the Dev team or the support team first to fix what is needed.
The main use case is that I can automate this entire process for all of the projects that I run in Jenkins today. I gain speed, scalability, and above all control, because I can version everything I do. Every build pipeline I need for a given project is coded, versioned, and implemented in a controlled repository, so when I run it, I can be deterministic. I can run the same processes over and over, as many times as necessary, and I only change the variables that are mutable according to the environments I need to run in. That already saves me a lot of time in my process. In short, it greatly speeds up our day-to-day development flow.
There is a lot more I can add about our main use case for Jenkins on CentOS 10. For example, I can version Jenkins's own structure with JCasC, Jenkins Configuration as Code. Suppose a CentOS 11 distro is released and infra wants to migrate the server and the server service. I would have to implement and install everything, but with this configuration as code, I just migrate the configuration and bring Jenkins up. Jenkins then automatically loads my entire configuration scope, including users, the lists of libraries I need, and the security system.
Jenkins also has a simple scheme that is good but risky: you can copy the /var/lib/jenkins folder, which stores all the service data, and move it to a new server. You will be able to migrate a lot that way, although there will be some glitches. It is risky because if you suffer a security attack and your Jenkins is compromised, the risk of carrying malicious scripts to the new server is extremely high. That is why JCasC speeds things up.
Besides that, you can have Shared Libraries, pipelines, Jenkins Master, and Jenkins Slaves. You can have a pool of Jenkins instances, where a master controls everything and can be on Linux. If you have a project that only runs on a Windows server, you can spin up a Windows Server with a secondary Jenkins and orchestrate your pipeline within that Windows environment from your CentOS 10. Jenkins seems like a simple tool, but its potential is unlimited.
How has it helped my organization?
Regarding the positive impact Jenkins on CentOS 10 has had on our organization, one of the questions at the beginning of our conversation was how long I have been using Jenkins. I mentioned almost 12 or 13 years, but I do not know the exact date. We started using Jenkins around 2013 or 2014 because one of our main applications had a deployment problem. Deployment was slow, insecure, and carried many risks.
Before Jenkins, we had an FTP server connected to the production environment where our users were using the application. Over FTP, I would select a folder and place the source in it, meaning the code that was already correct, with the separated and adjusted folders for what I needed. Then I would simply use Ctrl+C and Ctrl+V to copy it to the destination folder. In this other folder, I saved the changes that I had implemented for the application.
This process had many problems, not even counting security. Besides security, we had slowness, network traffic, disk I/O, and network I/O. The deployment would have been much better if it had been properly implemented with a CI/CD process. Jenkins is just one CI/CD tool, and there are several on the market. I really like Jenkins because of everything I have mentioned. I could have done this with any other tool, and I believe there are tools on the market just as good as Jenkins, but in this case Jenkins offers this as well.
With that old process, we had slowness and risk. Sometimes the internet went down and I stopped the build halfway. Because of the I/O and slowness, the user on the other end ended up seeing a partial version of the feature that was being deployed. We had a lot of production errors. Sometimes the site or application would go offline during this process, sometimes for a minute or two. If you have a high number of clients and a high network throughput, you end up having a negative financial impact, which is complicated.
Jenkins solved this for us. First, we implemented it with a code versioning system, and we were already using Git. With Git, we managed to compile directly on a specific server that was on the same network as Jenkins. Before putting the code on, I can compile it in a separate, isolated environment without having to do it in the production environment. I also sync only what has changed and always keep the client's and the user's environment working properly with less downtime.
It was also possible to implement a blue-green deployment system. The application running in production points to the green environment. The build never goes to the environment where the user is currently viewing; it always goes to the opposite environment. If the user is seeing green, the build is entirely done and compiled on blue. Only at the end of this process do I flip a switch in Jenkins so that the application now points to the blue environment and no longer to green.
As a result, downtime dropped, security risk is low, and we have control. I am deterministic, and I can execute the same process N times. There are many gains and many benefits. That is what I am describing from back then. Today there are many other features and resources in Jenkins that we use here. You can also integrate Terraform and Ansible with it, and then the sky is the limit.
Regarding approximate metrics for Jenkins on CentOS 10, the change in deployment time is huge. Over the years, applications get more complex and bigger, and the modified files become numerous. Doing deployments manually and compiling externally is risky, and doing it via FTP or even via rsync with tar.gz ends up taking time. We had deployments that took over 20 minutes, and with this structure, it dropped to around five minutes, which is much shorter.
Production incidents were even worse with the old builds because we wrote code to the application on the fly. While users were using the application, we were updating the code. That created many risks and problems, including calls to routes that did not exist yet. In our telemetry, we would see errors such as user A trying to hit route X that did not exist yet. That meant a version of the code that already called a route went up, but the route file had not been updated yet. They would try to call route X, route X would not exist, and then we had countless errors and the screen froze for the user. Imagine this in your checkout flow: the client is making a purchase, and during the process you perform a build. That build ends up killing that checkout, and the risk of financial loss is high.
I remember that the error rate in our telemetry system more than doubled. If we had an average error rate in the application of, I do not know, 5% of the traffic, it would go up to 20–30%, and these errors were all false positives. Of course, after the build finished, things normalized, but we had about 20 minutes like that.
What is most valuable?
Among the best features Jenkins on CentOS 10 offers, the ones I use the most are the versioned pipelines and the Shared Libraries. As you start versioning lots of pipelines, you sometimes copy code snippets from one pipeline to another because they perform something that another job executes. It is similar to software development, where you have controllers that play the same role for a given feature. Sometimes you have to copy a controller to another feature because that feature will use a similar controller. With Shared Libraries, I do not need that. I can have one controller and call it in other pipelines as well. I declare it in Jenkins, indicate the repo where it is, and any pipeline that wants to use it just needs to call that method, because when you start the build, it already loads into memory what you need to use. That is really cool.
Besides that, I already mentioned in the previous question all the other benefits I appreciate about Jenkins. For example, JCasC, which is Jenkins Configuration as Code, is a great feature. It can provide more security to your flow, your control, and your infra team, which sometimes controls everything regarding what is installed, which server it is, how it is on the network, and who has permission. If you already have that versioned in a controlled repository, where the infra team that manages it is in charge, it can provide the team with a lot of security and ease in server migrations as well.
Shared Libraries impact our day-to-day work and collaboration between teams in a very practical way. Imagine that in your development organization, you have several teams working on different products, and the pipelines are all versioned in the same Jenkins project because for some reason they are part of that product. It is one product with N applications, and each application needs its own deploy. All these pipelines are versioned in the same repo.
Let's say you created a Shared Library for application A. This Shared Library has N functionalities that help you in your pipeline, such as compiling a given project in a given version, creating a .env file for a particular project, building, searching, creating quality gate execution systems, and handling the servers you need to rsync or not. Then another team that did not create that Shared Library needs something similar. The time that Team A took to implement that entire Shared Library, Team B would also have to spend. Since you have already versioned it, they just need to call the library they need, use the methods that make sense for them, or even add new methods to those Shared Libraries that might make sense for that pipeline. That is case by case, but it can help the teams a lot in their day-to-day work.
As I said, you end up reducing code duplication between pipelines. Instead of using Ctrl+C and Ctrl+V, you just call a method. Another benefit is that if a given method needs to be updated, the other pipelines will not need to be adapted. They automatically get that code improvement or bug fix, because they are not duplicating code; they are calling a Shared Library that is wired into all the pipelines that use it.
Regarding additional features of Jenkins on CentOS 10, Jenkins does not only have these features. Since this is a slightly quicker chat, I am mentioning the ones that make the most sense to me and that best solve my day-to-day issues. Jenkins covers every kind of need.
For example, the pipeline itself has two ways you can define how you will implement it: a scripted pipeline or a declarative pipeline. It depends on what you understand and what you think is best for your application and your team. Jenkins has N features and can have N capabilities for you. That includes plugins: there are several third-party plugins and plugins maintained by the Jenkins project itself and by CloudBees, one of its main contributors, that help in day-to-day work. I use several plugins where Jenkins, out of the box, does not cover what you need, so you need to build it out according to your needs and look for the tools it offers you according to those needs as well.
For how long have I used the solution?
Regarding how long I have been using Jenkins on CentOS 10, I need to make a correction, since you are suggesting that Jenkins was installed and is running on CentOS 10. CentOS 10 is very recent. I do not even use it here yet; we still use CentOS 9. In any case, I have been using Jenkins for about 11 or 12 years. Actually, I might have been using it for even longer, but I cannot give you the exact time. It is 12 years for sure.
I have already used it on Ubuntu, Debian, and CentOS. However, I use it a lot on Oracle Linux, the more recent versions, mainly for security reasons. But for a long time, it has been about 12 years now.
Buyer's Guide
AWS Marketplace
October 2026
Find out what your peers are saying about Supported Images, Smile Digital Health, 47Lining and others in AWS Marketplace. Updated: October 2026.
921,523 professionals have used our research since 2012.
Which deployment model are you using for this solution?
Private Cloud
Disclosure: My company does not have a business relationship with this vendor other than being a customer.