【持续集成】CI工具汇总

     【维基百科】持续集成 / CI--Continuous integration是一种软件工程流程,是将所有软件工程师对于软件的工作副本持续集成到共享主线的一种举措。该名称最早由葛来迪·布区在他的布区方法中提出,不过他并不支持在一天中进行数次集成。之后该举措成为极限编程的一部分时,其中建议每天应集成超过一次,甚至达到数十次。在测试驱动开发的作法中,通常还会搭配自动单元测试。

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

====================================下面汇总了一下业界TOP8 持续集成工具==============================

Jenkins

詹金斯的标志

Jenkins是一个用Java编写的开源CI工具。 Oracle收购Sun Microsystems时,它起源于Hudson分支Jenkins是一个跨平台的CI工具,它通过GUI界面和控制台命令提供配置。

Jenkins 非常灵活的是通过插件扩展功能。Jenkins插件列表非常全面,您可以轻松添加自己的插件。除了可扩展性之外,Jenkins还为在多台机器上分发构建和测试负载而感到自豪。它在MIT许可下发布,因此可以免费使用和分发。Cloudbees以云中的Jenkins形式提供托管解决方案。

结论: 那里最好的解决方案之一,既强大又灵活。学习曲线可能有点陡峭,但如果你需要灵活性,那么学习如何使用它是非常值得的。

官方网站: Jenkins 
可用性:免费
平台:跨平台

 

TeamCity

TeamCity徽标

TeamCity是成熟的CI服务器,来自JetBrains公司的实验室。JetBrains已经在软件开发领域建立了权威,全世界的开发人员都使用他们的工具,如WebStormReSharper

TeamCity的提供的所有功能在其免费版本,但它仅限于100个构建配置和3生成代理小号。需要购买其他构建代理和构建配置。最近JetBrains开始提供TeamCity 云试用版,您可以在一个项目中试用它,而无需在本地安装它。它持续60天,之后您可以导出项目。

开箱即用,TeamCity可以在许多不同的平台上运行,并且支持各种各样的工具和框架。有很多公开的插件,由JetBrains和第三方开发。

尽管是基于Java的解决方案,但TeamCity 在此列表中的工具中提供了最佳的.NET支持。还有不同的企业软件包,可以根据公司需要的代理数量进行扩展。

您可以在我们的博客找到关于TeamCity 的深入  案例研究

结论: 整体上有很好的解决方案,但由于其复杂性和价格,更适合企业需求。

官方网站: TeamCity 
可用性:免费提供3个代理和100个构建配置和付费企业版
平台:  Servlet容器(内部部署),云试用

 

Travis CI

https://code-maze.com/wp-content/uploads/2016/02/TravisCI-logo-gray.png

Travis CI是最古老的托管解决方案之一,赢得了许多人的信任。虽然它主要以托管解决方案而闻名,但它也以企业包的形式提供了内部部署版本。

Travis CI 对于 GitHub上托管的所有开源项目以及前100个版本都是免费的。您可以选择一些定价计划,主要区别在于您可以运行的并发构建数量。

使用.travis.yml文件配置构建,文件包含将在运行构建时执行的构建任务。它支持各种不同的语言和支持它们的良好文档

结论:  一个成熟的解决方案,提供托管和内部部署变体,被许多团队所喜爱和使用,记录非常好。

官方网站: Travis CI 
可用性:免费开源计划和前100个版本,其他所有内容的付费计划
平台:  托管和内部部署

 

Go CD

去cd徽标

GoThoughtWorks公司最新的Cruise Control化身。不包括ThoughtWorks提供的商业支持,Go是免费的。它适用于WindowsMac和各种Linux发行版。

Go脱颖而出的是管道概念,它使复杂构建工作流的建模变得容易。关于管道概念,它如何帮助持续交付以及它如何与Jenkins管道进行比较,您可以在这里阅读。Go CD从头开始支持管道,并通过并行执行任务消除构建过程中的瓶颈。

判决:内部部署解决方案,适用于复杂场景,免费提供付费支持。

官方网站: Go CD 
可用性:免费提供付费支持
平台:  适用于WindowsMac和一些Linux发行版的内部部署

 

Bamboo

竹标志

Atlassian是专注于为软件开发团队提供工具的公司,您可以通过他们的工具(如JIRABitbucket)了解它们。Bamboo最初提供云和内部部署解决方案,但在20165月,云版本停止使用Bitbucket管道(可通过Bitbucket帐户的左侧面板访问)。

通过利用Docker的强大功能,Bitbucket Pipelines提供了非常高效和快速的构建,并且正在迅速发展并成为Bamboo Cloud的有力继承者。

Bamboo可以免费试用30天,之后,有两个小型和成长团队的计划。作为Atlassian工具,它具有对JIRABitBucket的原生支持,您甚至可以轻松地将Jenkins配置导入Bamboo

结论:伟大的本地CI工具最初也提供了云解决方案。Bitbucket Pipelines取代了云解决方案。Pipelines是集成到Bitbucket中的现代快速云CI工具。有30天免费试用,并在此之后支付计划。

官方网站: Bamboo 
可用性:支付免费试用
平台:内部部署

 

GitLab CI

gitlab标志

GitLab CI是开源Rails项目GitLab的一个组成部分,GitLab公司将其暴露出来。它托管在GitLab.com上,这是一个免费的托管服务,它提供详细的git存储库管理,具有访问控制,问题跟踪,代码审查等功能。

GitLab CIGitLab无缝集成,可以使用GitLab API轻松挂钩项目。处理构建的GitLab运行程序是用Go语言编写的,可以在WindowsLinuxOSXFreeBSDDocker上运行。

官方Go跑者可以同时运行多个作业,并具有内置的Docker支持。Gitlab CI附带开源GitLab社区版和GitLab企业版

结论:一个 具有令人印象深刻的功能列表的Phenomenal托管工具,提供免费和企业解决方案。

官方网站: GitLab CI 
可用性:免费和付费试用
平台:  托管(可在Gitlab.com上为您托管)

 

 

Circle CI

circleci标志

来自同名公司的另一种云替代方案。CircleCI目前仅支持GitHub,支持的语言列表包括JavaRuby / RailsPythonNode.jsPHPHaskellScala

CircleCI与其他工具的区别在于它们提供服务的方式。CircleCI 的主要定价块是容器。一个容器是免费的,您可以根据需要在其上构建任意数量的项目。一旦开始添加更多容器(每个固定价格),您可以选择适合您需求的并行化级别。

5个级别的并行化(1x4x8x12x16x)。因此,从16个容器开始,您可以在一个构建上实现16x的最大并行化。或者,您可以使用4x并行化在16个容器上运行4个构建。它是由你决定。

结论:灵活的云CI工具,可提供高达16倍的并行化。如果您需要快速建造的东西并且货币不是最大的问题(最高可达3150美元/月),那就太棒了。

官方网站: CircleCI 
可用性:免费和付费试用
平台:  托管

 

Code ship

代码徽标

如果到目前为止还没有足够的托管解决方案,这是另一个。

Codeship有两个不同的版本:BasicPro。基本版提供开箱即用的持续集成服务,但没有docker支持,其主要目的是通过UI构建具有通用工作流的应用程序。专业版提供更多灵活性和docker支持

基本版本有几个付费软件包,其中较昂贵的软件包具有更多的并行化功能。在专业版中,您可以选择实例类型和最多20x的并行化数量。它可能会有点贵,但有些团队可能需要这种力量。

结论:强大的托管解决方案支持Docker,灵活的计划适合小型团队和企业。

官方网站: Codeship 
可用性:每月免费提供100个版本,并支付超过该
平台:  托管

 

 Codefresh

codefresh徽标

此列表中的许多工具都支持Docker,但Codefresh是专门针对容器而设计和构建的。

Docker一开始可能有点压倒性,而Codefresh公司的人员也是如此。我很清楚这一点。除了使用现有的docker文件之外,您还可以从几个不同的模板中进行选择,以简化项目到Docker容器的迁移。用户界面简洁直观,几乎不需要解析文档就可以开始使用它。

这个CI工具值得列入名单的原因在于让我感到惊讶的一个功能。该功能将您的图像发布到类似舞台的环境中。构建完成后,您可以启动图像以查看它是否有效!这实际上意味着您可以获得临时环境,而无需配置其他虚拟机或部署任何内容。这太棒了!

Codefresh仍然非常年轻,并且有改进的空间和新功能(例如.NET核心模板和更多部署选项),但它将容器视为一等公民,这使其成为任何计划利用的团队的理想解决方案泊坞窗。

结论:易于使用的工具,其核心是Docker容器,以及将构建的Docker映像启动到托管环境的非常好的功能。

官方网站: Codefresh 
可用性:免费提供每月200个版本,5个并发版本和1个托管环境,支付额外费用
平台:通过KubernetesHelm Charts托管和内部部署

 

~~~~什么是完美的持续集成工具?~~~~~

在为项目选择正确的CI工具时,需要记住几件事。

1.内部部署解决方案提供了大量的构建过程灵活性,  在本地存储工件。在某些情况下,对某些公司而言,这可能是强制性的。托管解决方案不提供麻烦设置和更高的可扩展性。

2.Docker的支持 尽管绝大多数工具都支持Docker,但有些工具比其他工具更为重视。

3.用户界面。因为任何优秀CI工具的主要作用之一就是使构建过程更容易。它应该不难或复杂。

~~~~~~~~~~~~~~~~~~~~~~~

原文地址:

https://code-maze.com/top-8-continuous-integration-tools/

https://dzone.com/articles/top-8-continuous-integration-tools

 

你可能感兴趣的:(IT技术专栏,Devops)