虽然云平台的到来让开发者免于安装和掩护物理做事器,但测试和支配代码过程依旧须要人为完成,持续集成可以自动肃清构建、测试和支配代码的大部分痛楚。如果希望最大限度提高效率,持续集成和交付工具是最好的选择。
实际上,所有开拓者都可在软件开拓中利用 CI/CD,但团队利用可以得到更大上风,尤其是大型团队,由于他们常日在处理相同的互锁代码块。持续集成最全面的实现是在测试之前构建代码,探求未被创造的缺点和不兼容问题,这些可能是由不同的团队成员写入代码时创建的,持续集成做事器可以同步所有程序员的事情,并帮助团队检测所有问题。
虽然 CI/CD 热度不退,但完备自动化的支配办法会让团队管理者感到不踏实,因此很多团队习气在此过程中添加一些手动停息,并增加问责制和其他担保代码在可控范围内的规则,这种稠浊方法被称为持续交付,由于它将代码供应给某一阶段或测试集群,并等待开拓者终极推向生产。

如果在做事器机房中持续集成非常好,那么在云中可以实现更快交付和更高效率。在最好的情形下,云可以拆分任务并走运行。做事从大量硬件开始,然后在许多团队之间共享,只要所有人不同时推送代码,构建和测试将运行得很快。
或许,唯一令团队担心的问题便是失落去掌握。所有云做事都须要将代码交给第三方,这种选择可能让某些人感到不自由。即便所有的云做事都在努力强调安全性,但依旧让人担心。以下是在云中进行持续集成的 10 种不同选项,可以帮助开拓者更好得适应这一过程。
1、CloudBeesCloudBees 核心源自 Jenkins,这是著名的持续集成开源项目,添加了测试支持以及代码运行担保。该公司将所有实验插件清理干净,添加了一些自研实验插件,然后打磨精确以便在须要时准期事情。
CloudBees 雇用了 80%的 Jenkins 开拓团队,为开源项目贡献代码,因此可以确信他们对这个平台有很好的理解。为了加快速率,CloudBees 还添加了大量并行化工具跟踪开拓过程。
CloudBees 供应各种价位,从免费到入门套件和整年做事,并为须要该工具但不须要云打算的开拓者供应 Jenkins 支持。
2、AWS CodePipeline亚马逊用于持续集成和支配的工具 AWS CodePipeline 经由优化,可以将代码交付给 AWS 做事器,同时为代码和数据供应更繁芜的路径。基本工具为紧张编程措辞(Java,Python,Node.js,Ruby,Go,Android,.Net Core for Linux)供应了一个很好的预配置构建环境,发送之前将结果转储到 S3 中并关闭做事器就可以开始运行。
CodeBuild 在 CodePipe 由 CodePipeline 触发时从 CodeCommit 中获取最新结果,并将其交给 CodeDeploy。如果须要配置大量 Code 代码,可以直接跳到 CodeStar,这供应了另一层面的自动化。在技能上并不须要支付任何代码层用度,亚马逊收取的用度紧张是沿途利用的打算和存储资源。
3、Bitbucket PipelinesAtlassian 是盛行的 Jira 和代码库 Bitbucket 背后的公司,决定创建 Bitbucket Pipelines(Bitbucket 云中的持续集成工具)以包括更多集成。构建机制和 Atlassian 其他工具之间的连接形式成为重点,因此这只作为 Bitbucket 中项目的一个选项,另一个选项指向支配。
如果开拓者选择为紧张措辞(Java,JavaScript,Python,PHP,.Net 等)定义的模板,则只需单击几下即可构建和支配代码,除此之外的选项不存在。Atlassian 确实鼓励一个彷佛是图表和 webhook 稠浊到其他做事的运用程序市场。在我写这篇文章时,图表上的顶级运用程序会将 Bitbucket 与 Jenkins 连接起来,大概是为了做一些无法在墙内快速完成的事情。
Pipelines 的紧张优点是速率,Atlassian 已预先设计从代码到运行支配的大多数紧张路子,只需花费几美元就可以利用。很难比较利用 Bitbucket 的本钱,由于构建只需几分钟,就像大多数无做事器模型一样,团队常日会利用一组实例来处理 Jenkins 构建。
4、GitLab CI / CDAtlassian 最大的竞争对手之一是 GitLab。GitLab 的构建,测试和支配机制同样直接连接到其 Git 存储库,因此可以根据规则触发。该过程紧张环绕 Docker 容器构建,可以大大简化环绕 Jenkins 构建必须完成的一些配置事情。
构建任务可以针对任何措辞,但必须由 GitLab Runner 触发,GitLab Runner 是一个用 Go 编写的自动缩放工具,适用于大多数平台。这种灵巧性意味着可以在其他打算机上触发任何任务,这对付精心设计的架构而言可能非常有用,这些架构不仅仅供应微做事。
定价与级别捆绑在一起以知足需求,最高级别可以得到最佳功能,比如安全仪表板和在共享机器集群上构建 50,000 分钟,部分流程中利用自己的打算机或在其他云中利用单独的实例是免费的。
5、CircleCI许多持续集成工具专注于在 Linux 环境中构建代码。CircleCI 既可在 Linux 环境中构建和供应,也可以构建 Android 运用程序以及 Xcode(适用于 iOS,MacOS,tvOS 或 watchOS)。
CircleCI 利用 Docker,在其所有层次中为代码配置测试环境。构建重新容器开始,所有测试也是如此,Mac 事情在类似的虚拟机中,避免了配置中的一些问题。
定价紧张集中在构建的 CPU 数量上。用户数和存储库数量上限为无穷大,但构建分钟数和容器数是计量的。第一个容器是免费的,可以在个中运行一个构建,如果想要更多并行性或更高吞吐量,须要收费。
6、Travis CI如果构建须要在 Windows 机器上测试的代码,那么 Travis CI 可以供应一站式做事。该公司已经供应了一段韶光的 MacOS 和 Linux 选项,刚刚推出 Windows 选项,让天生更多代码变得更加大略。
目前,Linux 代码支持 Ubuntu 基本版本,Mac 代码以 OS X,Xcode 和 JDK 的十几种组合之一运行。Windows 代码只支持一个版本的 Windows Server(1803)。Travis CI 供应 30 多种措辞支持列表,并构建预先配置且可以运行的规则。
定价基于一次实行的并发任务数,但这些构建可以占用的分钟数没有正式限定。定制化事情没有免费选项,但开源项目永久免费,这可能是考试测验 Travis CI 最大略的方法。
7、Azure Pipelines虽然,Azure 可能没有太多供应 ENIAC 程序员,但确实为代码供应 Microsoft、Linux 和 MacOS 路径。该堆栈包含 Docker 容器和 Azure 硬件。如果更喜好命令行,则可以利用 YAML 指定。
有免费并行任务试用,1800 分钟的构建韶光。如果想要更多的并行性或更多构建韶光则须要付费。
8、CodeShip利用持续集成工具时,配置任务列表常日是最大的寻衅。CodeShip 在两个做事级别采取两种不同的方法。根本版本操持包括大量自动化和预配置以及图形用户界面,用于设置任务的大致轮廓。高等版本许可配置和用于定义构建环境的 Docker 容器,可以选择将多少个构建专用于任务以及可能的配置。
根本版本供应免费套餐,包括一台构建机器,无限制项目和职员,但每月只有 100 个构建。如果超过 100 个项目,并希望在一个月内完成所有项目,则须要付费。一旦付费,就没有构建数量或者花费多少韶光的上限,只需选择构建和测试即可处理任务。
9、Sauce Labs以上大多数工具集中在编排从存储库到支配的代码流,Sauce Labs 则专注于测试。基于云的做事供应了各种各样的组合,以确保统统正常。如果想在 Windows 10 上运行的 Firefox 58 上进行测试,或者在 MacOS 上的 Firefox 56,只要选择 Java,Node,Ruby 或 PHP 等个中之一,测试脚本就可以用选择的措辞编写,云将并行定位每个处理器。 Sauce Labs 专门将测试与其他 CI 工具或管道集成,因此可以在本地运行 Jenkins,然后将测试委托给 Sauce Labs。
10、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