Battle Jenkins和GitLab CI / CD

在过去的十年中,持续集成(CI)和持续交付(CD)工具的开发取得了长足的进步。用于集成软件开发和操作的技术(Development Operations,DevOps)的发展导致对CI / CD工具的需求迅速增加。现有解决方案不断改进,努力与时俱进,发布了新版本,在软件质量保证(质量保证,QA)领域,许多新产品不断出现。有了如此众多的选择,选择正确的工具箱并非易事。







在所有现有的CI / CD工具中,有两个项目对于任何在该领域寻找东西的人来说绝对值得关注。我们谈论的是Jenkins和GitLab CI / CD工具,它是GitLab平台的一部分。 Jenkins在GitHub上拥有超过16,000个星星。 gitlab.com上的GitLab存储库仅有2,000多颗星。如果我们比较存储库的受欢迎程度,事实证明,詹金斯获得的星数比包括GitLab CI / CD在内的平台的星数高出8倍。但是,在选择CI / CD工具时,这远非值得关注的唯一指标。还有其他很多,这解释了为什么在许多比较中Jenkins和GitLab CI / CD彼此非常接近。



以来自G2平台的数据为例,该数据会累积对用户提供的各种产品和评级的评论。在此,詹金斯酒店Jenkins)基于288条评论平均评分4.3星。关于GitLab,这里有270条评论,此仪器的平均评分为4.4星。我们可以肯定地说,詹金斯(Jenkins)和GitLab CI / CD在平等条件下相互竞争是没有错的。有趣的是,Jenkins项目于2011年问世,此后一直是测试人员最喜欢的工具。但与此同时,得益于该平台提供的先进功能,2014年启动的GitLab CI / CD项目的地位很高。



如果我们谈论Jenkins与其他类似平台相比的受欢迎程度,那么我们会注意到,我们发表了一篇文章比较了Tr​​avis CI和Jenkins平台,然后进行了调查。有85位用户参加了。要求受访者选择最喜欢的CI / CD工具。 79%的人选择了Jenkins,5%的人选择了Travis CI,还有16%的人选择了其他工具。





调查结果



在其他CI / CD工具中,最常提及的是GitLab CI / CD。



如果您对DevOps认真,则需要仔细考虑项目的具体细节,预算和其他要求,选择合适的工具。为了帮助您做出正确的选择,我们将分析Jenkins和GitLab CI / CD。希望这将帮助您做出正确的选择。



詹金斯介绍





Jenkins是著名的灵活CI / CD工具,旨在自动执行与软件项目相关的各种任务。 Jenkins完全用Java编写,并根据MIT许可发布。它具有一组强大的功能,旨在自动化与构建,测试,部署,集成和发布软件相关的任务。该工具可以在多种操作系统上使用。其中包括macOS,Windows和许多Linux发行版,例如OpenSUSE,Ubuntu和Red Hat。有用于不同操作系统的Jenkins安装软件包,此工具可以安装在Docker以及具有JRE(Java运行时环境)的任何系统上。



Jenkins开发人员创建了另一个项目Jenkins X,该项目旨在在Kubernetes上运行。 Jenkins X集成了Helm,Jenkins CI / CD服务器,Kubernetes和其他工具,以建立遵循DevOps最佳实践的CI / CD管道。例如,它在这里使用GitOps。



Jenkins的优势在于它的脚本结构非常好,易于理解且易于阅读,这一点可以为它增色不少。 Jenkins团队已经创建了大约1000个插件,旨在组织Jenkins与各种技术的交互。在脚本中,您可以使用身份验证系统,例如,它允许您连接到各种封闭的系统。



在Jenkins管道运行时,您可以观察每个步骤发生的情况,无论某些工作阶段是否成功完成。但是,您无需使用特定的图形界面即可使用终端的功能来观察所有这些情况。



詹金斯功能



Jenkins的著名功能包括易于配置,各种操作的高度自动化以及出色的文档编制。如果我们谈论解决DevOps任务,那么Jenkins被认为是非常可靠的工具,通常,使用它来密切监视项目处理的整个过程是没有意义的。其他CI / CD工具不是这种情况。让我们谈谈一些最重要的詹金斯功能。



▍1。免费,开源,多平台支持



Jenkins可以在macOS,Windows和Linux平台上运行。它也可以在Docker环境中运行,从而允许您组织统一且快速执行自动化任务。该工具还可以作为servlet在启用Java的容器(例如Apache Tomcat和GlassFish)中运行。Jenkins的安装有详细记录



▍2。开发的插件生态系统



Jenkins插件生态系统看起来比其他CI / CD工具的插件生态系统更加成熟。当前有超过1500个Jenkins插件。这些插件旨在解决各种各样的任务,借助它们的帮助,您可以自动化各种项目。丰富的免费插件供您选择,这意味着使用Jenkins的人不需要购买昂贵的付费插件。Jenkins可以与许多DevOps工具集成



▍3。易于安装和设置



Jenkins相当容易安装和配置。同时,更新系统的过程也非常方便。在这里,值得一提的是文档的质量,因为您可以在其中找到与安装和配置Jenkins有关的各种问题的答案。



▍4。友善社区



如前所述,Jenkins是一个开源项目,其生态系统包括大量的插件。Jenkins周围有大量的用户和开发人员社区,他们可以帮助开发项目。社区是推动詹金斯发展的因素之一。



5英镑 REST API的可用性



在使用Jenkins时,您可以使用REST API,从而扩展了系统的功能。远程访问系统的API分为三个版本:XML,带有JSONP支持的JSON,Python。这是文档页面,其中显示了使用Jenkins REST API的详细信息。



▍6。并行任务支持



Jenkins支持DevOps任务的并行化。它可以轻松地与相关工具集成,并通知任务进度。通过使用不同的虚拟机组织项目的并行构建,可以加快代码测试的速度。



7英镑 支持在分布式环境中工作



Jenkins允许您使用多台计算机来组织分布式构建。此功能适用于大型项目并使用一种工作方案,根据该方案,有一台主Jenkins服务器和几台从属计算机。从机也可以用于需要在不同环境中组织项目测试的情况。这些功能使Jenkins与其他类似项目脱颖而出。



介绍GitLab





GitLab CI / CD是DevOps工程师最新和最受欢迎的工具之一。这个免费的开源工具内置在GitLab版本控制系统中。 GitLab平台具有社区版本,它支持存储库管理,跟踪问题的工具,组织代码审查,专注于创建文档的机制。公司可以在本地安装GitLab,并将其链接到Active Directory和LDAP服务器以进行安全的用户授权和身份验证。



这是一个视频教程,可以帮助您学习如何使用GitLab CI / CD功能创建CI / CD管道。



GitLab CI / CD最初是作为一个独立项目发布的,但是在2015年,此工具包已集成到GitLab 8.0中。单独的GitLab CI / CD服务器可以支持超过25,000个用户。在此类服务器的基础上,您可以创建高度可用的系统。



GitLab CI / CD和主要的GitLab项目是用Ruby和Go编写的。它们根据MIT许可证发布。 GitLab CI / CD除了具有CI / CD工具的常规功能外,还支持其他功能,例如工作计划。



将GitLab CI / CD集成到项目中非常容易。使用GitLab CI / CD时,处理项目代码的过程分为多个阶段,每个阶段都可以包含按特定顺序执行的多个任务。任务可以进行微调。



任务可以并行运行。设置好阶段和任务的顺序之后,CI / CD管道就可以使用了。可以通过监视任务状态来监视其进度。结果,使用GitLab CI / CD非常方便,也许比其他类似工具更方便。



GitLab CI / CD和GitLab的功能



GitLab CI / CD是周围最受欢迎的DevOps工具之一。该项目的特点是高质量的文档,其功能易于使用。如果您还不熟悉GitLab CI / CD,则此工具的以下功能列表将使您大致了解它的期望。应该注意的是,其中许多功能都与GitLab平台本身有关,GitLab CI / CD已集成到该平台中。



▍1。人气度



GitLab CI / CD是一种相对较新的工具,已被广泛使用。GitLab CI / CD已逐渐成为一种非常流行的CI / CD工具,用于自动化软件测试和部署。易于定制。它也是内置在GitLab平台中的免费CI / CD工具。



▍2。GitLab Pages和Jekyll支持



Jekyll是一个静态站点生成器,可在GitLab Pages系统中使用它来创建基于GitLab存储库的站点。该系统获取原始资料,并基于它们生成一个现成的静态站点。您可以通过编辑_config.ymlJekyll使用的文件来控制这些站点的外观



▍3。项目规划能力



计划项目里程碑的能力使跟踪问题和问题组变得更加容易。这使您可以管理项目的工作组织,计划在特定日期的实施。



▍4。CI运行器的自动缩放



得益于负责执行特定任务的运行程序的自动扩展,您可以大大节省租用服务器容量的成本。这非常重要,尤其是在并行测试项目的环境中。这对于具有多个存储库的大型项目也很重要。



5英镑 问题追踪工具



GitLab强大的问题跟踪功能导致该平台被许多开源项目使用。GitLab CI / CD允许并行测试不同的代码分支。在系统界面中分析测试结果很方便。这使得GitLab CI / CD与Jenkins不同。



▍6。限制对存储库的访问



GitLab平台支持限制对存储库的访问。例如,可以为在存储库中的项目上进行协作的人员分配与其角色相对应的权限。对于公司项目尤其如此。



7英镑 积极的社区支持



一个活跃的社区围绕GitLab展开,这为该平台及其工具的开发做出了贡献,尤其是GitLab CI / CD。GitLab CI / CD与GitLab的深度集成使使用GitLab CI / CD时遇到的问题的答案更容易找到。



8英镑 支持使用各种版本控制系统



GitLab CI / CD是一个系统,它不仅可以处理GitLab存储库中托管的代码,还可以使用。例如,代码可以存储在GitHub存储库中,并且可以使用GitLab CI / CD在GitLab上组织CI / CD管道。



Jenkins vs GitLab CI / CD比较



Jenkins和GitLab CI / CD是非常好的工具,每个工具都能够使CI / CD管道正常工作。但是,如果将它们进行比较,则会发现,尽管它们在许多方面都相似,但彼此之间还是存在某些差异。

特性 詹金斯 GitLab CI/CD
. , — GitLab.
. .
. .
— . .
CI/CD- , Jenkins Pipeline. .
. .
1000 . GitLab.
API API. API .
JavaScript . .
(Slack, GitHub). 许多工具可用于与第三方系统集成,特别是与GitHub和Kubernetes集成。
代码质量控制 支持-带有SonarQube插件和其他插件。 支持的。


Jenkins和GitLab CI / CD之间的区别



在描述并比较了Jenkins和GitLab CI / CD之后,我们将重点介绍这些DevOps工具之间的差异。了解这些差异将有助于了解那些更喜欢其中一种工具的人。



  • GitLab CI / CD可以完全控制Git存储库。我们正在谈论管理存储库分支和其他一些功能。但是,Jenkins尽管知道如何使用存储库,但是却没有像GitLab CI / CD那样对存储库提供相同级别的控制。
  • Jenkins是一个免费的开源项目。任何人选择它都会独立展开。而GitLab CI / CD包含在GitLab平台中,它是现成的解决方案。
  • GitLab CI / CD支持高级项目级任务管理。詹金斯的这一方面欠发达。


Jenkins和GitLab CI / CD:优点和缺点



到目前为止,您已经对Jenkins和GitLab CI / CD有一些了解。现在,让您更好地熟悉这些工具,让我们看看它们的优缺点。我们假设您已经决定了所需的工具。希望本节将允许您进行自我测试。



en詹金斯的长处



  • 大量的插件。
  • 完全控制工具的安装。
  • 轻松调试跑步者。
  • 简单的节点配置。
  • 易于代码部署。
  • 很好的凭证管理系统。
  • 灵活性和多功能性。
  • 支持各种编程语言。
  • 该系统是直观的。


en詹金斯的弱点



  • .
  • Jenkins , , .
  • CI/CD-.


▍ GitLab CI/CD



  • Docker.
  • .
  • , CI/CD-.
  • .
  • .
  • .
  • .
  • .


▍ GitLab CI/CD



  • / .
  • .
  • CI/CD- .




Jenkins和GitLab CI / CD都有优点和缺点。选择什么问题的答案取决于特定项目的需求和特征。尽管为解决相同的问题而创建了这些工具,但今天回顾的每个CI / CD工具在某些方面都有所不同。话虽如此,Jenkins是一个独立的工具,而GitLab CI / CD是代码协作平台的一部分。



在选择CI / CD系统时,除了其功能外,还应考虑可能与之相关的成本以及支持该项目的DevOps工程师所使用的系统。



您使用什么CI / CD工具?










All Articles