开源CI/CD工具调研

这篇具有很好参考价值的文章主要介绍了开源CI/CD工具调研。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Introduction to CI/CD Tools

Definition of CI/CD Tools
Continuous Integration/Continuous Delivery (CI/CD) represents a pivotal practice in supporting collaborative software development, automating numerous activities within the software production process, encompassing compilation, building, testing, quality assurance, dependency and security management, as well as release creation. CI/CD tools serve to assist developers in automating their development workflows, thereby facilitating the expedited production of high-quality software versions (cite:Pooya Rostami Mazrae;Tom Mens;Mehdi Golzadeh;Alexandre Decan.On the usage, co-usage and migration of CI/CD tools: A qualitative analysis[J].Empirical Software Engineering,2023,Vol.28(2): 1).
Definition of CI ( Continuous Integration )
Integrate developer code changes into a shared code base and automate the process of building and testing code.
Definition of CI ( Continuous Integration )

The process of automating the build, test and deployment of code changes to the production environment.

以上是关于CI/CD工具介绍这一部分,这里是参考了On the usage, co-usage and migration of CI/CD tools: A qualitative analysis这篇文献。简单来说,CI/CD工具能够自动化实现软件生产过程中的许多活动,包括编译、构建、测试、质量保证、依赖和安全管理、创建发布等工作,从而生产高质量的软件版本。

Which CI/CD tools are being used?

Comprehensive CI/CD tools:

Jenkins :https://github.com/jenkinsci/jenkins
GitLab CI/CD :https://gitlab.com/gitlab-org/gitlab-ci
Travis CI:https://github.com/travis-ci
Drone:https://github.com/drone/drone

Number of posts:

Jenkins:136664
GitLab CI/CD:3463
Travis CI:5495
Drone:3,684

主要对搜集到4个工具的社区受欢迎度进行比较。通过对stackoverflow上对这几个工具的讨论帖子数进行间接表示,以资料的完善程度作为参考指标。
之后关于Jenkins、Travis CI、Drone通过X-Lab实验室创立的活跃度和影响力两大指标进行比较。

开源CI/CD工具调研,开源,开源
开源CI/CD工具调研,开源,开源

开源CI/CD工具调研,开源,开源

因为Drone目前已被 Harness 收购,Drone 专注于持续集成,而 Gitness 添加了源代码托管,使代码管理和管道更加紧密地结合在一起。Gitness 的目标是最终在管道功能方面与Drone完全同等,允许用户无缝地从 Drone迁移到Gitness,因此这里主要通过gitness来对drone的受欢迎度进行间接表示。
从以上数据可以看出几个工具的受欢迎度,可以大致确定CI/CD工具主要以Jenkins为主,以上仅是通过给出的数据分析出的个人意见。

Shortcomings of CI/CD Tools

Jenkins:
配置难度大:Jenkins被多名受访者报告为难以配置。
速度较慢:一些受访者提到Jenkins运行速度较慢。
用户体验问题:Jenkins被报告为具有过时的用户界面设计,导致用户体验不佳。
GitLab CI/CD:
工作流程不简单:GitLab CI/CD被报告为缺乏简单的工作流程。
用户界面混乱:GitLab CI/CD的用户界面被报告为混乱,缺少用于定义工作流程的Web界面。
Travis CI:
速度较慢:TravisCI被多名受访者报告为运行速度较慢,甚至有受访者认为其速度对于特定需求仍然太慢。
限制较多:在公司决定改变其对开源项目支持政策后,Travis CI被认为在免费层面上施加了许多限制,例如对构建时间、可用内存和并行运行器数量的限制。
Drone:
缺乏知名度:相对于其他工具,Drone的知名度相对较低,这可能导致其在一些方面受到限制。
轻量级但有限制:尽管Drone被认为是一个轻量级工具,但在一些情况下可能会受到可扩展性和功能限制的影响。

Similarities and differences between open-source CI/CD tools

Similarities:

可扩展性:都具有可扩展性,支持使用插件或扩展。

集成与版本控制:都与主流的版本控制系统(如Git)集成,能够与代码存储库进行无缝交互。

differences:

易用性:Jenkins的配置相对较复杂,需要更多的手动配置。

托管位置:Jenkins需要在本地或自己的服务器上进行安装和管理。GitLab CI/CD作为GitLab的一部分,Travis CI和Drone通常云托管。

语法和配置:Jenkins使用Groovy脚本,GitLab CI/CD、Travis CI使用YAML,Drone使用YAML或Web UI进行配置。

代理模型:Jenkins通常需要配置代理,GitLab CI/CD、Travis CI、Drone通常采用云服务或本地Runner执行工作。

成本:对于小型项目,推荐Travis CI、Drone。
对于大型项目,则需要更多的资源和高级功能, GitLab CI/CD能够通过付费选项购买更多的资源和高级功能。

License

Jenkins:MIT 许可证
GitLab CI/CD:MIT 许可证
Travis CI: MIT 许可证
Drone:Apache License 2.0 许可证。

MIT 许可证 VS Apache License 2.0
主要区别:Apache License 2.0要求内容变更时需要在变更的文件中明确注明更改,并遵循特定的通告规则。文章来源地址https://www.toymoban.com/news/detail-797049.html

到了这里,关于开源CI/CD工具调研的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【基于 GitLab 的 CI/CD 实践】01、GitLab CI/CD 基础概念

    目录 一、为什么要做 CI/CD ? 1.1 背景-传统的应用开发发布模式 问题 1.2 持续集成与持续交付 持续集成(CI) 持续交付(CD) 持续部署(CD) 1.3 CI/CD 的价值体现 1.4 推荐常用的 CI/CD 工具 Jenkins GitLab 二、GitLab CI/CD 功能简介 2.1 GitLab 内置持续集成功能 持续集成(CI) 连续交付(

    2024年02月16日
    浏览(69)
  • 【CI/CD】Rancher CD过程--20230906

    HARBOR_PASSWORD:密码 HARBOR_USER:工号 K8S_TOKEN:Bearer + rancher key K8S_WORKLOAD_URL:选择【View in API】的URL,并非workload的URL。 如果是新版rancher,则使用/g回去旧版界面。 选择workload,进入【View in API】 right panel click edit Move to buttom , and click “Show Request” Copy the highlight area from “-d”

    2024年02月09日
    浏览(43)
  • CI/CD部署

    CI和CD是软件开发中持续集成和持续交付的缩写。 CI代表持续集成(Continuous Integration),是一种实践,旨在通过自动化构建、测试和代码静态分析等过程,频繁地将代码变更合并到共享存储库中。其目的是快速发现和修复代码问题,确保开发团队对软件产品持续交付。其中,

    2024年02月19日
    浏览(46)
  • CI&CD 体系介绍

    先解释几个概念: 1、DevOps(Development Operations)  DevOps 是一组过程、方法与系统的统称,用于促进开发、技术运营和质量保障(QA)部门之间的沟通、协作与整合。  它是一种重视“软件开发人员(Dev)”和“IT运维技术人员(Ops)”之间沟通合作的文化、过程和工具。透过自动

    2024年02月04日
    浏览(39)
  • CI/CD入门(二)

    1.1 早期手动部署代码 纯手动Scp、Rsync上传代码。 纯手动登陆,Git pull 或者 Svn update。 纯手动xftp、ftp、filezilla上传代码。 开发发送压缩包,rz上传,解压部署代码。 缺点: 全程运维参与,占用大量时间。 如果节点多,上线速度慢。 人为失误多,目录管理混乱。 回滚不及时

    2024年02月12日
    浏览(38)
  • 什么是 CI/CD ?

    说在开头 CI、CD 其实是三个概念,包含了一个 CI 和两个 CD,CI全称 Continuous Integration,表示持续集成,CD包含 Continuous Delivery和 Continuous Deployment,分别是持续交付和持续部署。这三个概念之间是有前后依赖关系的。 CI/CD 并不是一个工具,它是一种软件开发实践,核心是通过引

    2024年02月03日
    浏览(40)
  • Jenkins CI/CD

    1、 Jenkins CI/CD 流程图 说明:这张图稍微更形象一点,上线之前先把代码git到版本仓库,然后通过Jenkins 如Java项目通过maven去构建,这是在非容器之前,典型的自动化的一个版本上线流程。那它有哪些问题呢? 如:它的测试环境,预生产环境,测试环境。会存在一定的兼容性

    2024年02月05日
    浏览(47)
  • CI/CD基本流程介绍

    1.1CI/CD基本配置介绍:               配置jenkins               软件版本管理                     配置jenkins访问gitlab代码仓库               测试下载               下载到子目录 准备两台web服务器        部署代码到web服务器 自动化部署流程

    2024年02月11日
    浏览(48)
  • Gitlab CI/CD概述

    CI/CD 是一种持续开发软件的方法,可以不断的进行构建、测试和部署代码迭代更改。这种迭代有助于减少基于错误或失败的版本进行开发新代码的可能性。使用这种方法,从新代码开发到部署,可以减少人工干预甚至不用干预。 达到持续的方法主要是: 持续集成 , 持续交付

    2024年02月12日
    浏览(67)
  • Jenkins与CI/CD

    Continuous  Integration是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽快地发现集成错误。 Continuous Delivery一种软件

    2024年02月12日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包