Effective CICD server
July 30, 2019
Effective CICD server
Score 9 out of 10
Overall Satisfaction with Jenkins
We use Jenkins as our main CICD server for multiple projects in our department and integrate Jenkins with our Gitlab source code repository and other tools such as SonarQube, Artifactory, Tomcat, Jboss, and Coverity. Our development team uses Jenkins jobs on every check-in code to run unit tests, scan code quality and run automation tests on every merge request before actually merging. Jenkins helps to increase our quality of product and eliminate most manual steps on deployment and integration.
- Flexible to create jobs in freestyle or pipeline.
- Supports various plugins to work with different programs such as AWS, Azure, Linux, Powershell, etc.
- Gives you a centralized location to manage all project pipelines and build information.
- Support various ways to trigger new jobs.
- Allows us to edit and retain files in the server and not override by repository.
- Support cluster to increase build performance.
- Jenkins UI is too simple.
- Does not provide a feature for backup and restore jobs.
- Lack of authorization rule - We could not assign separate users or groups to separate views or jobs.
- Jenkins helps to increase our product quality as our code is tested with unit tests and automation tests in every situation.
We considered using Gitlab, but after some comparing, we found Jenkins was better in every way!
Jenkins is well suited when you need a CICD server to handle your compilation, building and deployment process, as Jenkins has many plugins and supports most script languages so it could handle almost any kind of project. In my department, before we start on a project, we define a clear strategy to use Jenkins, which task needs to be automated with Jenkins, which branch, and which module needs to be built with Jenkins and when we need to push a new version to Artifact and deploy to the server.
Jenkins provides good performance, consumes very little memory itself, and the job is executed right after it is triggered and you do not need much time to prepare steps and it could run multiple jobs at the same time. We could setup Jenkins as a cluster with some slave instances to handle the work load and high ability.