On this page
- Jenkins Strengths
- Jenkins Limitations
- Three Strong GitLab Differentiators
- GitLab vs. Jenkins Solutions to Common BDM Problems
Open Source: Jenkins is one of the most popular self-managed open source build automation and CI/CD developer tools in the world.
Early Mover Advantage: Jenkins quickly established itself as a leading build orchestration tool after its inception in 2005 and continued gaining steam before the term “DevOps” and “CI/CD” was all the craze like we hear about today.
Flexibility: Jenkins is seen as the “Swiss army knife of automation” with seemingly unlimited flexibility because of its plugin ecosystem.
Community: Jenkins has a very active, excited, and thriving open source community of contributors.
Not a Single DevOps Application: Jenkins is not an end to end platform for the entire DevOps Software Lifecycle.
Plugins: Extending the native functionality of Jenkins is done through plugins.
High Maintenance: Maintaining 3rd party Plug-ins can be difficult and expensive to maintain, secure, and upgrade.
Single “Person” of Failure: Jenkins requires dedicated resources with Specialized Knowledge. Once that dedicated “Person” (resource) transitions out of the Jenkins specialist role moving forward with Jenkins development may “Fail” or stall.
Developer Experience: While Jenkins is great for automating some things it is very brittle and is taking away from the developer experience. Specifically:
- Jenkins has brittle configurations, fragile UI
- Jenkins’ outdated and unmaintained plugins continues to grow
- Jenkins is impacting Developer happiness and productivity directly impacted, leads to difficulty retaining talent for Jenkins shops
Jenkins X: Jenkins X has high system requirements, Deployment limited to Kubernetes Clusters only, Only has a command line interface (at present) and Still uses Groovy.
Three Strong GitLab Differentiators
Single Application: GitLab provides more than what Jenkins is hoping to evolve to, by providing a fully integrated single application for the entire DevOps lifecycle. More than Jenkins’ goals, GitLab also provides planning, SCM, packaging, release, configuration, and monitoring (in addition to the CI/CD that Jenkins is focused on). With Gitlab, there is no need for plugins and customization. Unlike Jenkins, GitLab is open core and anyone can contribute changes directly to the codebase, which once merged would be automatically tested and maintained with every change.
Maintenance: GitLab is easy to maintain and update. To update, just replace one docker image. When you update version, it updates everything. Also, maintaining Pipleline Definitions are cleaner and easier than in Jenkins. The GitLab CI/CD configuration file (.gitlab-ci.yml): * Uses a structured YAML format * Has a shorter learning curve - simpler to get up and running * Prevents unconstrained complexity - which can make your Jenkins pipeline files hard to understand and manage * Versioned in repository next to your code - makes it easy to maintain and update by developers
Better execution architecture: The GitLab Runner, which executes your CI/CD jobs, has an execution architecture that is more adaptable than Jenkins. Here are the advantages: * Written in Go for portability - distributed as single binary without any other requirements. * Native Docker support - Jobs run in Docker containers. GitLab Runner downloads the container images with the necessary tools, runs the jobs, then removes the container. * No extra dev tool pre-installs needed on the Runner machines * Built-in auto-scaling - machines created on demand to match job demand. Enables cost savings by using resources more dynamically
GitLab vs. Jenkins Solutions to Common BDM Problems
💚Complete Support 💛Partial Support 💔No Support
|The BDM Problem||The DevOps Solution||GitLab||Jenkins|
Modernize aging systems and processes. Shifting DevOps development processes to the cloud.
|Simplify cloud native workflow integration with built in Integration for Kubernetes Monitoring and Management||💚||💔|
Improving the experience of employees and their day-to-day operations.
|Simplify application delivery steps with preconfigured pipelines (Auto DevOps). Proper management and understanding of security risk.||💚||💔|
Become more competitive in a rapidly changing environment.
|Quickly deliver application enhancements in a controlled manner with Progressive Delivery features.||💚||💛|
|Developer Return On Investment (ROI)
Freeing up developers’ time for more value-added work.
|Reduce the time and simplify the steps to deliver code updates with Pipeline Orchestration and preconfigured pipelines (Auto DevOps).||💚||💛|
Increased demand for greater access to applications.
|Meet developers needs for efficient Software Development Tools with Enterprise Scaling and Pipeline Orchestration.||💚||💛|
Reducing risk by meeting security requirements.
|Deliver well vetted code with Distinctive Scans and effective methods to address Security Risk.||💚||💛|
Quality application and digital engagement experience which ultimately improves the quality of service.
|Preview applications to reduce delivery risk with dynamic Application Reviews.||💚||💛
Require 3rd Party Plugins
Meeting Compliance requirements.
|Define, enforce and report on compliance policies and framework with out of the box reporting support for Financial Services Regulatory Compliance, PCI, HIPAA and other regulations.||💚||💔|