Which CI / CD tool to choose - Jenkins or GitLab?

Continuous integration and CI / CD deployment tools are in demand today. Of all the current solutions, there are two obvious leaders, Jenkins and GitLab. On large review services, both solutions have approximately the same rating, but it's worth looking at not only this. Let's take a look at the benefits of Jenkins and GitLab and what they are best suited for.







Gitlab



It is a free, open source product released under the MIT license and written in Go and Ruby. A separate server on such a solution is capable of handling more than 25,000 users.





GitLab interface GitLab



gives you the ability to work with repositories, review code, has its own error control system, and much more. To enhance user privacy, it is possible to link the tool to Active Directory and LDAP servers by installing it locally.



A large and involved community makes working with the product comfortable. GitLab is used not only to generate code, but also to thoroughly review it. Almost all build environments and version control systems are supported.



pros



  • Detailed documentation and easy management.
  • . , .
  • , .
  • .
  • pull requests , opensource-.




  • (, ) .
  • .


Jenkins



An extensible opensource solution for automating deployment. Jenkins is written in Java and also runs under the MIT license. It has a rich set of features to automate the tasks of building, testing, deploying, integrating and releasing software.





Jenkins interface



Besides installation via a traditional installation package, it can be installed both standalone and as Docker on any machine with Java Runtime Environment (JRE) installed.



There is also a sub-project of the Jenkins team called Jenkins X that specializes in CI / CD within Kubernetes clusters.



The Jenkins team has released about 1,500 plugins, so it can be used with other solutions like co Slack, Jira and others. Integration is also available for a range of DevOps testing tools. There is support for REST API for remote access to the system. It comes in three flavors: Python, XML, and JSON with JSONP support. As with GitLab, it helps develop a large, passionate community. It can also act as a servlet in Java containers such as GlassFish and Apache Tomcat.



pros



  • Easy to set up and update (in just a few steps).
  • Automated build process and detailed, clear documentation.
  • Easy integration with other tools, in this case you can be notified about the progress of the process.
  • . , .




  • .
  • , .




Jenkins is good for its large plugin library, complete control over workspaces, easy node setup and easy deployment. In general, the solution is flexible, universal and easy to learn, with support for many languages ​​(but there is no full support for Russian).



In GitLab, it is easy to scale runners, there is a parallel execution of tasks within different phases of the pipeline. The solution scales very well, it is easy to add tasks. Also, GitLab is well done in terms of security and privacy.



With GitLab, you can control all aspects of working with Git repositories, including branches with code With Jenkins, you control the repositories only to some extent. For example, you don't have full control over branches.



It is also worth remembering the original task that stood in the development of both tools. Jenkins was built primarily for CI implementation, while GitLab was built for code collaboration and version control.






Blog ITGLOBAL.COM - Managed IT, private clouds, IaaS, information security services for business:






All Articles