前端未来的主流技术方向有哪些?腾讯、京东、同城旅行等大厂都是怎么布局的?戳此了解 了解详情
写点什么

推荐 10 个 CI/CD 工具,用于云平台集成交付

2019 年 2 月 20 日

推荐10个CI/CD工具,用于云平台集成交付

虽然云平台的到来让开发者免于安装和维护物理服务器,但测试和部署代码过程依旧需要人为完成,持续集成可以自动消除构建、测试和部署代码的大部分痛苦。如果希望最大限度提高效率,持续集成和交付工具是最好的选择。


实际上,所有开发者都可在软件开发中使用 CI/CD,但团队使用可以获得更大优势,尤其是大型团队,因为他们通常在处理相同的互锁代码块。持续集成最全面的实现是在测试之前构建代码,寻找未被发现的错误和不兼容问题,这些可能是由不同的团队成员写入代码时创建的,持续集成服务器可以同步所有程序员的工作,并帮助团队检测所有问题。


虽然 CI/CD 热度不退,但完全自动化的部署方式会让团队管理者感到不踏实,因此很多团队习惯在此过程中添加一些手动暂停,并增加问责制和其他保证代码在可控范围内的规则,这种混合方法被称为持续交付,因为它将代码提供给某一阶段或测试集群,并等待开发者最终推向生产。


如果在服务器机房中持续集成非常好,那么在云中可以实现更快交付和更高效率。在最好的情况下,云可以拆分任务并行运行。服务从大量硬件开始,然后在许多团队之间共享,只要所有人不同时推送代码,构建和测试将运行得很快。


或许,唯一令团队担心的问题就是失去控制。所有云服务都需要将代码交给第三方,这种选择可能让某些人感到不自由。即便所有的云服务都在努力强调安全性,但依旧让人担心。以下是在云中进行持续集成的 10 种不同选项,可以帮助开发者更好得适应这一过程。


CloudBees

CloudBees 核心源自 Jenkins,这是著名的持续集成开源项目,添加了测试支持以及代码运行保证。该公司将所有实验插件清理干净,添加了一些自研实验插件,然后打磨正确以便在需要时如期工作。


CloudBees 雇用了 80%的 Jenkins 开发团队,为开源项目贡献代码,因此可以确信他们对这个平台有很好的理解。为了加快速度,CloudBees 还添加了大量并行化工具跟踪开发过程。


CloudBees 提供各种价位,从免费到入门套件和全年服务,并为需要该工具但不需要云计算的开发者提供 Jenkins 支持。


AWS CodePipeline

亚马逊用于持续集成和部署的工具 AWS CodePipeline 经过优化,可以将代码交付给 AWS 服务器,同时为代码和数据提供更复杂的路径。基本工具为主要编程语言(Java,Python,Node.js,Ruby,Go,Android,.Net Core for Linux)提供了一个很好的预配置构建环境,发送之前将结果转储到 S3 中并关闭服务器就可以开始运行。


CodeBuild 在 CodePipe 由 CodePipeline 触发时从 CodeCommit 中获取最新结果,并将其交给 CodeDeploy。如果需要配置大量 Code 代码,可以直接跳到 CodeStar,这提供了另一层面的自动化。在技术上并不需要支付任何代码层费用,亚马逊收取的费用主要是沿途使用的计算和存储资源。


Bitbucket Pipelines

Atlassian 是流行的 Jira 和代码库 Bitbucket 背后的公司,决定创建 Bitbucket Pipelines(Bitbucket 云中的持续集成工具)以包括更多集成。构建机制和 Atlassian 其他工具之间的连接形式成为重点,因此这只作为 Bitbucket 中项目的一个选项,另一个选项指向部署。


如果开发者选择为主要语言(Java,JavaScript,Python,PHP,.Net 等)定义的模板,则只需单击几下即可构建和部署代码,除此之外的选项不存在。Atlassian 确实鼓励一个似乎是图表和 webhook 混合到其他服务的应用程序市场。在我写这篇文章时,图表上的顶级应用程序会将 Bitbucket 与 Jenkins 连接起来,大概是为了做一些无法在墙内快速完成的事情。


Pipelines 的主要优点是速度,Atlassian 已预先设计从代码到运行部署的大多数主要途径,只需花费几美元就可以使用。很难比较使用 Bitbucket 的成本,因为构建只需几分钟,就像大多数无服务器模型一样,团队通常会使用一组实例来处理 Jenkins 构建。


GitLab CI / CD

Atlassian 最大的竞争对手之一是 GitLab。GitLab 的构建,测试和部署机制同样直接连接到其 Git 存储库,因此可以根据规则触发。该过程主要围绕 Docker 容器构建,可以大大简化围绕 Jenkins 构建必须完成的一些配置工作。


构建任务可以针对任何语言,但必须由 GitLab Runner 触发,GitLab Runner 是一个用 Go 编写的自动缩放工具,适用于大多数平台。这种灵活性意味着可以在其他计算机上触发任何任务,这对于精心设计的架构而言可能非常有用,这些架构不仅仅提供微服务。


定价与级别捆绑在一起以满足需求,最高级别可以获得最佳功能,比如安全仪表板和在共享机器集群上构建 50,000 分钟,部分流程中使用自己的计算机或在其他云中使用单独的实例是免费的。


CircleCI

许多持续集成工具专注于在 Linux 环境中构建代码。CircleCI 既可在 Linux 环境中构建和提供,也可以构建 Android 应用程序以及 Xcode(适用于 iOS,MacOS,tvOS 或 watchOS)。


CircleCI 使用 Docker,在其所有层次中为代码配置测试环境。构建从新容器开始,所有测试也是如此,Mac 工作在类似的虚拟机中,避免了配置中的一些问题。


定价主要集中在构建的 CPU 数量上。用户数和存储库数量上限为无穷大,但构建分钟数和容器数是计量的。第一个容器是免费的,可以在其中运行一个构建,如果想要更多并行性或更高吞吐量,需要收费。


Travis CI

如果构建需要在 Windows 机器上测试的代码,那么 Travis CI 可以提供一站式服务。该公司已经提供了一段时间的 MacOS 和 Linux 选项,刚刚推出 Windows 选项,让生成更多代码变得更加简单。


目前,Linux 代码支持 Ubuntu 基本版本,Mac 代码以 OS X,Xcode 和 JDK 的十几种组合之一运行。Windows 代码只支持一个版本的 Windows Server(1803)。Travis CI 提供 30 多种语言支持列表,并构建预先配置且可以运行的规则。


定价基于一次执行的并发任务数,但这些构建可以占用的分钟数没有正式限制。定制化工作没有免费选项,但开源项目永远免费,这可能是尝试 Travis CI 最简单的方法。


Azure Pipelines

虽然,Azure 可能没有太多提供 ENIAC 程序员,但确实为代码提供 Microsoft、Linux 和 MacOS 路径。该堆栈包含 Docker 容器和 Azure 硬件。如果更喜欢命令行,则可以使用 YAML 指定。


有免费并行任务试用,1800 分钟的构建时间。如果想要更多的并行性或更多构建时间则需要付费。


CodeShip

使用持续集成工具时,配置任务列表通常是最大的挑战。CodeShip 在两个服务级别采用两种不同的方法。基础版本计划包括大量自动化和预配置以及图形用户界面,用于设置任务的大致轮廓。高级版本允许配置和用于定义构建环境的 Docker 容器,可以选择将多少个构建专用于任务以及可能的配置。


基础版本提供免费套餐,包括一台构建机器,无限制项目和人员,但每月只有 100 个构建。如果超过 100 个项目,并希望在一个月内完成所有项目,则需要付费。一旦付费,就没有构建数量或者花费多少时间的上限,只需选择构建和测试即可处理任务。


Sauce Labs

以上大多数工具集中在编排从存储库到部署的代码流,Sauce Labs 则专注于测试。基于云的服务提供了各种各样的组合,以确保一切正常。如果想在 Windows 10 上运行的 Firefox 58 上进行测试,或者在 MacOS 上的 Firefox 56,只要选择 Java,Node,Ruby 或 PHP 等其中之一,测试脚本就可以用选择的语言编写,云将并行定位每个处理器。 Sauce Labs 专门将测试与其他 CI 工具或管道集成,因此可以在本地运行 Jenkins,然后将测试委托给 Sauce Labs。


Jenkins and Hudson

在云中启动持续集成最简单的方法之一是租用服务器实例并启动 Jenkins 或 Hudson。二者很久以前就开始用作测试 Java 代码的程序,当开发人员和 Oracle 之间出现争议时,其分成了两个阵营,开发人员需要认真查看开源许可。


虽然 Jenkins 和 Hudson 可能已经开始作为构建 Java 项目的工具,但其早已超越这个利基市场,并可处理几乎所有语言,有数千个插件来处理构建、打包、测试和部署。代码是开源的,因此使用时不需要额外付费,只需支付服务器费用和配置时间。


参考链接:https://www.infoworld.com/article/3341320/ci-cd/cicd-as-a-service-10-tools-for-continuous-integration-and-delivery-in-the-cloud.html?nsdr=true&page=2


2019 年 2 月 20 日 07:3017477
用户头像
赵钰莹 InfoQ高级编辑

发布了 711 篇内容, 共 419.6 次阅读, 收获喜欢 2297 次。

关注

评论

发布
暂无评论
发现更多内容

一个被慕课网拿去做Java就业班终极项目的开源商城项目,推荐给大家

十三

Java 开源 springboot 开源项目

架构实战营 模块五:课后作业

👈

架构实战营

模块五作业 - ”微博评论“的高性能高可用计算架构

张大彪

大数据分析与运营(二)

soho

架构实战营 - 模块 05 作业

架构实战营

网络攻防学习笔记 Day37

穿过生命散发芬芳

网络攻防 6月日更

newbee-mall开源项目被慕课网拿去做课程,项目详细对比记录,更多实锤看这里

十三

Java 开源 springboot 开源项目

Java 并发编程—— CountDownLatch 应用

Antway

6月日更 6 月日更

商业模式创新

soho

身为程序员 你真的会使用github搜索吗?

小胖说java

GitHub GitHub Pages 高效搜索 搜索技巧

MySQL普通索引的加锁

程序员小航

MySQL 数据库锁

模块5 设计微博系统中”微博评论“的高性能高可用计算架构

Chris Cheng

架构实战营

Go 并发基础

Damon

Go 语言 6月日更

web ssh解决方案——WGCLOUD

王逅逅

zabbix linux运维 运维监控

看来,MySQL next-key lock 的 bug 并没有被修复!

程序员小航

MySQL 数据库锁

我不信有Java程序员没犯过这10个SQL错误

北游学Java

Java sql

架构实战营 模块五:学习总结

👈

架构实战营

JSON.parse无双引号如何实现转换

DisonTangor

JavaScript

大数据分析与运营(一)

soho

设计微博系统中”微博评论“的高性能高可用计算架构

Vincent

架构训练营

可落地的积极心态

Daniel

心态 6月日更 6 月日更

使用 Docker 安装并连接 MySQL

程序员小航

MySQL Docker

架构实战营 - 模块 5- 作业

请弄脏我的身体

架构实战营

微服务架构实施原理详解

xcbeyond

微服务 6月日更

NCRE考试感想 四级嵌入式(上)

万里无云万里天

嵌入式 6月日更 NCRE 考试经验

3种面向“对象”编程,你是哪一种?

异想的芦苇

架构 研发管理

“中国新基建”如何指引户外广告行业发展

󠀛Ferry

6月日更

标识符与保留字(即关键字)

在即

6月日更 六月日更

如果父母依旧辛苦,那我们的成长又有什么意义?

牧小农

故事 父母

MySQL next-key lock 加锁范围是什么?

程序员小航

MySQL 索引 数据库锁 主键

架构训练营模块5作业

Neil43

架构训练营

技术为帆,纵横四海- Lazada技术东南亚探索和成长之旅

技术为帆,纵横四海- Lazada技术东南亚探索和成长之旅

推荐10个CI/CD工具,用于云平台集成交付-InfoQ