编程知识 cdmana.com

CI / CD tool selection: Jenkins or gitlab CI / CD?

In the past ten years , Continuous integration (Continuous Integration,CI) And continuous delivery (Continuous Delivery,CD) Great progress has been made in the field .DevOps The rise of testing has led to CI/CD The rapid demand for tools . Existing solutions always improve over time , A large number of new products or versions are entering QA field . When you have so many options on hand , Choosing the right tool can be a bit of a challenge .

In all the optional tests CI/CD In the tools ,Jenkins and GitLab CI/CD Two tools you should definitely consider .Jenkins stay GitHub There are 16,000+ give the thumbs-up , and GitLab CI/CD Yes 2012 Like .Jenkins My favorite number is GitLab CI/CD I like it a lot 8 More than double .

However , These numbers are not about choosing one CI/CD The only thing you need to see when using tools . It's also despite the huge gap in likes ,Jenkins vs GitLab CI/CD There is also fierce competition on multiple accreditation platforms . With G2 For example ,Jenkins stay G2 The average score is 4.3 star , Yes 288 comments ;GitLab CI/CD stay G2 The average score on is 4.4 star , Yes 270 comments . so to speak ,Jenkins vs GitLab CI/CD It's a close competition . Interestingly ,Jenkins Is in 2011 Published in , And in CI/CD Business , It has always been the first choice for testers . However , since 2014 Since its release ,GitLab CI/CD It has always been at the top of the list with its cutting-edge features . When we published this article , There was a poll on social media .

CI/CD  Tool selection :Jenkins  still  GitLab CI/CD?

Another tool most mentioned is GitLab CI/CD. As a DevOps Testing experts , You need to be based on your own project 、 To scrutinize these budgets and other tools . To help you , I will be right Jenkins vs GitLab CI/CD Make an in-depth assessment , Help you determine the right CI/CD Tools to meet your project needs .

1. Jenkins Introduce

CI/CD  Tool selection :Jenkins  still  GitLab CI/CD?

Jenkins Is a well-known extensible open source for Automated Deployment CI/CD Tools .Jenkins It's all for Java Compiling , Is in MIT Issued under license . It has a powerful set of features , You can build software 、 test 、 Deploy 、 Automation of integration and release related tasks . This automation for testing CI/CD Tools can be found in macOS、Windows And all kinds of UNIX edition ( for example OpenSUSE、Ubuntu、Red Hat etc. ) System on use . In addition to installing through a local installation package , It can also be installed anywhere Java Runtime environment (Java Runtime Environment,JRE) To be installed separately or as a Docker install .Jenkins The team also has a sub project called Jenkins X, Run a special with Kubernetes Seamless, out of the box pipeline.Jenkins X Cleverly integrated Helm、Jenkins CI/CD The server 、Kubernetes And other tools , To provide a specification with built-in best practices CI/CD Tools pipeline, For example, using GitOps To manage the environment . Use Jenkins One of the bonus points is , Its script structure is good 、 Easy to understand and readable .Jenkins The team has developed nearly 1000 A plug-in , Enables applications to be mixed with other familiar technologies . besides , You can also use Credentials Command Plugins like that . This makes it easy to add hidden authentication credentials to the script . once Jenkins pipeline Began to run , You can also verify whether each phase passed or not and the total number of each phase . however , You can't check the status of a particular job in the provided graphical overview . What you can do is to track the progress of jobs in the terminal .

2. Jenkins Core features

Jenkins It's easy to configure 、 Known for automating the build process and the large amount of documentation it provides to users . When it comes to DevOps When testing ,Jenkins It's considered to be very reliable , And there's no need to monitor the entire build process , And for others CI/CD You won't be so relieved .

Let's see Jenkins Some of the most important features offered :

  1. free 、 Open source and easy to install

Jenkins stay macOS、Unix、Windows It's very easy to install on all platforms . It can work with Docker combination , Higher consistency and extra speed for automated operations . It can be used as a servlet Running on the Apache Tomcat and GlassFish In this way Java In the container . You can find a lot of support and documentation to guide the entire installation process .

  1. Extensive plug-in ecosystem

The plug-in ecosystem of this tool compares with other CI/CD Tools are more mature . at present , This ecosystem provides 1500+ plug-in unit . Because these plug-ins range from language specific development tools to build tools , This makes customization very simple and convenient . therefore , You don't need to buy expensive plug-ins .Jenkins Plug in integration also applies to some DevOps Testing tools .

  1. Easy to install and configure

The configuration of this tool is very simple , Just a few steps to install .Jenkins The upgrade process is not cumbersome and very direct . And the supporting documents are also helpful for you to configure the tools according to your own needs .

  1. Useful communities

As you know , This is an open source project , Have a huge plug-in ecosystem , All the plug-ins are supported by a lot of community contributions . Along with Jenkins The amazing community participation is also a major reason for its maturity .

  1. Provide REST API

Jenkins Provides REST It's easy to extend by using a different style of application interface .Jenkins Remote access to API There are three different styles ——Python、XML as well as JSON( Support JSONP).Jenkins There is a page on the website about Jenkins API A descriptive document for , Help expand .

  1. Support parallel execution

Jenkins Support for parallel testing . You can easily integrate it with different tools and be informed if the build is successful . Developers can even run multiple builds in parallel on different virtual machines to speed up the testing process .

  1. Easy distribution of work

It can run distributed work effortlessly , That is, tasks run on different machines , Not right GUI( User graphical interface ) Impact . It is worth mentioning that , And others CI/CD Tool comparison , Only this tool can be used and run GUI The same instance of a related task .

3. GitLab CI/CD Introduce

CI/CD  Tool selection :Jenkins  still  GitLab CI/CD?

In all of the CI/CD In the tools ,GitLab CI/CD It's undoubtedly the latest and most admired choice . It's a free and self hosted built-in GitLab CI/CD Continuous integration tools for .GitLab CI/CD There's a community version , Provides git Warehouse management 、 Problem tracking 、 Code review 、wiki And event subscriptions . Many companies install GitLab CI/CD, And connect it with Active Directory and LDAP Server connection for security authorization and authentication .GitLab CI/CD It was previously released as a stand-alone project , And from 2015 year 9 Released on GitLab 8.0 The official version began to integrate into GitLab Main software . A single GitLab CI/CD The server can manage 25000 Multiple users , It can also form a high availability configuration with multiple active servers .GitLab CI/CD and GitLab Yes, it is Ruby and Go Compiling , And in MIT Release under license . Among other things CI/CD Tools focus on CI/CD Besides the function ,GitLab CI/CD It also provides plans 、 pack 、 Source code management 、 Release 、 Configuration and review functions .GitLab CI/CD It also provides a warehouse , therefore GitLab CI/CD Very simple direct integration . In the use of GitLab CI/CD when ,phase The command contains a series of phases , These stages will be implemented or executed in a precise order . After implementation , Each job is described and configured with various options . Each assignment is a part of a phase , Will automatically run in parallel with other jobs at similar stages . Once you do that , The assignment is configured , You can run GitLab CI/CD It's a pipe . The results will be shown later , And you can check the status of each assignment you specify at a stage . This is also GitLab CI/CD Compared with other methods for DevOps The test of CI/CD The difference in tools .

4. GitLab CI/CD: Core features

GitLab CI/CD Is the most popular for DevOps The test of CI/CD One of the tools .GitLab CI/CD The document is rich 、 Easy to control and good user experience . If you just touched GitLab CI/CD, I list. GitLab CI/CD The main function of , It will help you understand it . Come and see .

  1. High availability deployment

It's widely used , It's the latest open source available CI/CD One of the tools .GitLab CI/CD The installation and configuration of is very simple . It is built into the GitLab Free and self hosted continuous integration tool for .GitLab CI/CD Gradually developed into the most popular free for Automated Deployment CI/CD One of the tools .

2.Jekyll Plug in support

Jekyll The plug-in is a static website generator , Yes GitHub Pages There is good support , It makes the build process simpler .Jekyll Plug ins support the use of HTML Document and Markdown, Based on your layout preferences , Create a completely static site . You can edit your _config.yml File to easily configure most of Jekyll Set up , for example , Your website's plug-ins and themes .

  1. Milestone setting

The milestone setting in the tool is the tracking problem 、 Improve the series of questions 、 A great way to draw requests from the warehouse . You can easily assign project milestones to any problem , Or unusual requests in merge projects , Or assign a group milestone to a set of questions , Or a request to merge any item in the group .

  1. Auto scalable continuous integration runner

Self expanding GitLab Continuous integration runner can be easily managed and saved 90\% EC2 cost . It's really important , Especially for parallel test environments . and , For a component level or project level runner , It can be used across code bases .

  1. Problem tracking and problem discussion

Because of its powerful problem tracking and discussion function ,GitLab It's the first choice for countless open source projects CI/CD Tools . It cleverly allows you to test pull requests and branches in parallel . For simple and convenient monitoring , The test results are shown in GitHub UI On . Thanks to the simple user interface , Compared with Jenkins, It's more friendly to use .

  1. Use access control to manage Git Warehouse

You can easily manage git Warehouse . You can easily grant writes to collaborators in a single warehouse / Read access , Even members of a particular organization can have more granular access control over the organization's Repository .

  1. Active community support

An active and progressive community is GitLab CI/CD One of the main bonus points of . All the support provided is out of the box , There is no need to modify it in the additional plug-in installation .

  1. Code review and merge requests

GitLab CI/CD Not just for building code , Also used to review code . It allows for improved collaboration using simple merge requests and merge management systems . It supports almost all version control systems and build environments . stay GitHub A large number of collaborative projects have been implemented under the project , These projects help GitLab CI/CD An extension of .

5. Jenkins vs GitLab CI/CD Function comparison of

Jenkins and GitLab CI/CD They all have areas they are very good at and their respective technology followers . However , In the discussion Jenkins vs GitLab CI/CD In a dispute , Many features will be discussed . Here are two CI/CD A comparison of all the features provided by the tool .CI/CD  Tool selection :Jenkins  still  GitLab CI/CD?

6. Jenkins vs GitLab CI/CD The difference between

Now that you've seen Jenkins vs GitLab CI/CD Functional comparison between , It's also time to take a look at these two DevOps The difference between testing tools . These differences will help you understand Jenkins vs GitLab CI/CD The real reason behind the dispute . stay GitLab CI/CD With the help of the , You can control it by having complete control over branches and other aspects Git Warehouse , To protect your code from sudden threats . However , Use Jenkins when , You can control the code base , But there are only a few aspects .Jenkins Complete control of branches and other aspects is not allowed .Jenkins yes “ Internally hosted ” and “ Free and open source ”, That's why programmers choose it . On the other hand ,GitLab CI/CD yes “ Self hosting ” and “ Free of charge ”, That's why developers prefer it . stay GitLab CI/CD in , Every project has a tracker , It will track issues and conduct code reviews to improve efficiency . And in the Jenkins In the tools , It changes some setup support and a simple installation and configuration process .

7. Jenkins vs GitLab CI/CD Advantages and disadvantages

I hope you understand now Jenkins vs GitLab CI/CD These two tools . In order to go further , I listed the relationship with Jenkins vs GitLab CI/CD About the main advantages and disadvantages . I know you've decided what you want to use DevOps Testing tools , This section will help you choose the right CI/CD The belief in tools .

Jenkins The advantages of

  • Lots of plug-in Libraries
  • Since the escrow , For example, full control of the workspace
  • Easy to debug and run , Thanks to absolute control of the workspace
  • Easy to build nodes
  • Easy to deploy code
  • Very good voucher management
  • Very flexible and versatile functions
  • Support different languages
  • Very intuitive

    Jenkins The shortcomings of

  • Plug in integration is complex
  • For smaller projects, it costs more , Because you need to build it yourself
  • Lack of understanding of the whole pipeline Tracking analysis

    GitLab CI/CD The advantages of

  • better Docker Integrate
  • It's easy to expand or shrink a program
  • Jobs within a phase are executed in parallel
  • Directed acyclic graph pipeline The opportunity of
  • It's very easy to expand and contract because of running programs concurrently
  • Merge request Integration
  • Easy to add homework
  • Easy to handle conflict issues
  • Good security and privacy policy

    GitLab CI/CD The shortcomings of

  • You need to define build and upload for each job / download
  • It is not possible to test the merge state before the actual merge occurs
  • There is no support for subdivision stages yet

8. Jenkins vs GitLab CI/CD How to choose

Jenkins and GitLab CI/CD Each has its own advantages and disadvantages , Your final choice between these two tools depends on the project requirements and specifications . Each of them CI/CD Tools have their own strengths and weaknesses , They all implement exactly the same requirements when they are released : automation CI/CD( Continuous integration and delivery ) The process of .Jenkins For continuous integration , and GitLab CI/CD For code collaboration and version control . In choosing the best for DevOps The test of CI/CD Tool time , In addition to the outstanding features , You should also check the price list and internal proficiency .

The authors introduce :Rahul Jain yes LambdaTest An expert in digital marketing , Love reading and writing about the latest technology trends 、SEO、 Sports and travel related content .

author | Rahul Jain
planning | Tian Xiaoxu
Article transferred from :InfoQ

版权声明
本文为[osc_ q5m9dzk0]所创,转载请带上原文链接,感谢
https://cdmana.com/2020/12/20201224154656537S.html

Scroll to Top