什么是CI(/_CD_其意义何在)
如今,越来越多的工程团队已经开始实施敏捷开发,从而推动更短更快的发布周期。代码库的增长和更高的生产和构建频率也推动了持续集成和持续部署/交付工具的快速崛起。
唐如果您对增加发布频率感兴趣,请不要担心,或者不要担心。我不知道哪些工具可以帮助你实现这个目标。在今天的文章中,我们将讨论一系列最流行的CI/CD工具,并分析它们的特点。
什么是CI/CD?它的意义是什么?在深入研究CI/CD自动化工具之前,我们首先需要了解它的基本概念。正如我们提到的,持续集成和持续部署通常与敏捷开发环境携手并进。在这种环境中,团队希望在构建完成后立即将不同的代码片段部署到生产环境中。
CI/CD工具可以自动完成构建、测试和部署新代码的过程。即使只更改了一行甚至一个字符,团队成员也可以立即获得关于他们代码生产准备的反馈。这样,每个团队成员都可以将他们的代码推送到生产系统中,构建、测试和部署的过程将自动完成,这样他们就可以放心地继续进行应用程序的下一部分工作。
然而,在向工作流添加自动化的过程中,将代码部署到生产环境并不意味着一切都会好。您必须继续跟踪错误情况,以便真正使新功能为用户所用。对于大多数团队来说,生产中的调试是一项极其繁琐的任务,需要手动执行,这需要他们在日志过滤的整个过程中投入数小时甚至数天的时间。而现在,我们可以通过大规模自动化实现根本原因分析,知道错误发生的位置、时间和根本原因。
知道了在我们的工作流程中使用CI模型实现自动化的重要性,接下来就是看哪种工具最符合我们的实际需求。
JenkinsJenkins是CI市场上最著名、最常见的名字之一。它最初是Sun公司的一个工程师创建的辅助项目,很快扩展成最大的开源CI工具之一,可以帮助工程团队实现自动化部署。顺便说一下,我们OverOps也在使用我们自己开发的Jenkins和CLI工具。
它是做什么的?
像其他CI工具一样,Jenkins可以自动构建、测试和部署任务。该工具支持Windows、Mac OSX和各种Unix系统,可以使用原生系统软件包和Docker安装,也可以独立安装在任何具有Java运行时环境(JRE)的机器上。
在实践中,Jenkins允许团队中的任何成员将他们的代码推入构建,并获得关于他们准备工作的即时反馈。当然,大多数情况下,你的团队需要通过定制需求对Jenkins进行一些调整和定制。
Jenkins的强大体现在其丰富的插件生态系统上。它提供了1000多个插件选项,可以集成市场上几乎所有可用的工具和服务。作为开源工具,你也可以像我们一样,选择定制适合自己情况的解决方案——。但是,每个人都需要投入一些时间和精力来保证它适合你的实际需求。
价格:免费
补充一点:我们要再次强调:开源插件=社区。你能想到的任何配置、工作流程、需求或愿望,都可以在Jenkins及其插件的帮助下实现。
一句话:如果你想找便宜的(免费的!)CI解决方案,并且愿意投入精力定制您的环境并需要用户社区的支持,Jenkins无疑是您最佳的选择。
标准詹金斯工作列表
标准詹金斯工作列表
Travis CITravis CI是CI/CD生态系统中常见的名称之一。它最初被设定为一个开源项目,经过多年的扩展,它变成了一个闭源项目。它专注于CI工作,并通过自动化测试和警报系统提高构建过程的效率。
它是做什么的?
Travis-CI允许用户在部署代码时快速测试代码。它支持代码大小变更,并且可以识别在构建和测试期间发生的所有变更。检测到变更后,Travis CI可以提供变更是否成功的反馈。
开发者可以使用Travis CI来观察运行时,并行运行多个测试,并将这个工具与Slack、HipChat、Email集成,从而通过各种渠道得到问题或者构建失败通知。
Travis CI支持容器构造,支持Linux Ubuntu和OSX.可以在不同的编程语言中使用,比如Java,C #,Clojure,GO,Haskell,Swift,Perl等等。它的第三方集成列表相对有限,但它可能无法解决你的实际问题,因为它专注于CI而不是CD。
价格:Travis CI虽然是开源项目,提供免费支持,但也提供专有版本,价格从自助版本的69美元/月到高级版本的489美元/月不等。
补充一点:为了确保总是备份最新的构建版本,Travis CI会在您运行新的构建时将GitHub存储烹饪到一个新的虚拟环境中。
一句话:如果您的代码是开源的,并且您更关注构建的持续集成部分,那么Travis CI值得一试。
Travis CI仪表板
Circle CICircle CI是一个基于云的工具,可以自动化集成和部署任务。它还强调在部署之前测试代码中的每一个变化,并使用多种方法,如单元测试、集成测试和功能测试。该工具支持容器、OSX和Linux环境,可以运行在私有云或您自己的数据中心。
它是做什么的?
Circle CI可以和你现在的版本控制系统(比如GitHub,Bitbucket等)集成。)并在检测到更改时运行各种操作。支持的更改包括提交、打开采购申请或任何其他代码更改。
每一次代码更改都会基于您的初始配置和偏好创建一个构建,并在一个干净的容器或虚拟机中运行测试。每个构建将接受多个操作,包括依赖性检查、测试和部署。如果构建通过了测试,它可以通过AWS CodeDeploy、Google Container Engine、Heroku、SSH或您选择的任何其他方法进行部署。
问题的构建和测试结果会通过Slack、HipChat、IRC或者其他各种集成渠道发送,这样团队就可以很快知道变更结果。需要强调的是,Circle CI在不同语言中使用时可能需要一些调整和更改,因此建议您首先查看所选语言的文档。
价格:对于Linux用户来说,第一套容器是免费的,以后每增加一套容器,每月需要支付50美元。对于构建1-5个构建/天的团队,以及私有数据中心或云计算环境,OSX版本起价为39美元/月,年度合同价格为每个用户35美元/月。
补充一点:Circle CI可以自动清除GitHub上的冗余build。如果在同一个分支上触发了新的构建,该工具将识别并取消正在运行或排队的旧构建——,包括未完成的构建。
一句话:如果你正在寻找一个GitHub友好的工具,需要背后有一个广泛的社区,并且可以在私有云或自己的数据中心运行,那么Circle CI绝对值得一试。
圆形CI仪表板
TeamCityTeamCity是JetBrains开发的CI/CD服务器。它提供现成的持续集成功能,并允许用户根据自己的需求进行调整。它支持多种语言(Java,NET,Ruby等。),而且JetBrains还为它提供了很多支持工具和优秀的文档。
它是做什么的?
作为CI/CD工具,TeamCity旨在改善发布周期。通过它,您可以即时查看测试结果,检查代码覆盖率并找到重复项,并根据统计信息定制持续时间、成功率、代码质量和其他定制指标。
一旦TeamCity检测到您的版本控制系统中的变更,它就会将build添加到队列中。服务器找到一个空闲且兼容的生成代理,并将排队的生成分配给该代理。此后,代理执行构建步骤。
在此过程中,TeamCity服务器将记录各种日志消息、测试报告和其他正在进行的更改。这些更改将被实时保存和上传,这意味着当构建发生变化时,用户可以知道在构建过程中发生了什么。该工具还提供了在不同平台和环境中同时运行并行buld的选项。
价格:免费提供专业服务器许可证,其中包括100套构建配置,对所有产品功能的完全访问,通过论坛和问题跟踪器的支持,以及3个构建代理。企业授权1999美元起,需要的代理越多,价格越高。
补充一点:TeamCity自带gated submit选项,可以防止开发者破坏版本控制系统中的源代码。具体原理是,在提交之前,先远程运行build,实现本地修改,以保证提交的内容没有破坏性风险。
一句话:TeamCity在过去几年越来越受欢迎,它为市场上的其他CI工具带来了很好的发展方向。如果您对跟踪构建和测试过程感兴趣,或者想要一个免费且强大的CI解决方案,毫无疑问TeamCity值得一试。
团队城市仪表板
CodeshipCodeship对CI/CD有不同的看法,并提供托管的持续集成即服务。这个工具最初是为Rails开发人员提供一个持续集成平台而构建的;当时他们需要在GitHub上托管自己的代码,部署到Heroku上。由于其高知名度和强大的需求,该公司多年来一直在扩张,以支持其他技术解决方案。
它是做什么的?
Codeship有两种不同的产品,各有利弊。Code basic允许通过Web UI和交钥匙部署连接代码库,以设置CI/CD流程。它支持CI环境的预配置,并允许在同一构建虚拟机上运行多个不同的构建。
Code pro使用Docker定义CI/CD环境,然后运行构建管道。它完全控制构建环境,允许您定义在其中运行的特定内容。Pro还提供分支前缓存,缓存哪些镜像,缓存工作流的哪一部分,支持并行部署。
总的来说,Codeship支持很多语言,比如Java,Go,Node.js,Python,Ruby。部署方面,基础版支持AWS、Heroku、Azure和Kubernetes,Pro额外支持AWS ElasticBeanstalk、Google App Engine和Digital Ocean。
价格:免费计划支持每月100次代码更新,项目、用户、团队数量不限。它还提供并发构建和并行测试管道。根据您需要的并发构建和并行测试管道的数量,基本版和专业版的价格在49美元到79美元/月之间。
一点:Codeship提供了一套完整的实用工具、脚本和Docker镜像集,可以和这个工具一起使用。该公司指出,其中一些还可以与其他类似的工具一起使用。该集合包括可定制的外部服务部署脚本、用于安装特定软件版本的脚本(默认情况下不包括在构建虚拟机中)等。
一句话:在同一个名字下提供2个不同的工具可能看起来有点奇怪,但它也允许开发人员选择更适合不同类型客户的各种元素。由于基础版和专业版都是免费提供的,所以它应该是满足您CI需求的一个不错的选择。
代码仪表板
GitLab CIGitLab出现后不久,团队推出了持续集成服务GitLab CI。除了测试和构建项目之外,该工具还可以将构建部署到您的基础设施中。只要你知道每个特定代码段的位置,你就可以跟踪它。
它是做什么的?
GitLab CI作为GitLab的一部分免费提供,设置过程相当方便。要开始使用GitLab CI,首先需要添加。GitLab-ci.yml文件到代码库的根目录,配置GitLab项目使用Runner。之后,每次提交或推送都将触发CI流程,包括以下三个步骤:构建、测试和部署。
每个构建可以分成多个作业,并且可以在多台机器上并行运行。该工具可以即时反馈build的测试结果,让用户知道发生了什么问题,或者过程中是否存在问题。
价格:社区版免费提供。带发布板、代码审核时多次审批、高级语法搜索等功能的版本,起步价为3.25美元/月。
补充一点:GitLab(以及GitLab CI)是一个开源项目。换句话说,你可以访问和修改GitLab社区版和企业版的源代码。
底线:如果你我们使用GitLab,它让GitLab CI解决方案成为它的一部分无疑是明智的。
GitLab CI仪表板
BambooBamboo是Atlassian产品套件的一部分。与其他工具类似,它也提供代码构建、测试和部署功能,并支持多种语言。它与其他与CI循环相关的Atlassian产品(如JIRA和Bitbucket)具有很强的集成能力/协同作用。
它是做什么的?
构建、测试、部署都是Bamboo软件包的一部分,测试部分是在Bamboo Agents的帮助下完成的。与Java监控机制中的代理类似,Bamboo也提供了两种类型的代理:本地代理作为Bamboo服务器进程的一部分运行,而远程代理运行在其他服务器和计算机上。每个代理都有一个与其功能相匹配的构建,这意味着用户可以将不同的代理分配给不同的构建。
竹子的主要优势在于它与其他Atlassian产品的紧密联系,如JIRA和Bitbucket。使用Bamboo,您可以看到自上次部署以来引入的代码更改和JIRA问题。这样开发者就可以同步自己的工作流程,始终保持代码正常运行,知道下一个版本的开发方向和需要修复的部分。
价格:竹子定价由代理商数量决定。无限本地代理的基础价格是10美元,最多10个工作,没有远程代理功能。下一级是800美元,无限的工作和本地代理,以及一个远程代理。远程代理的数量越多,价格就越高,但最高不会超过44,000美元。
补充一点:竹子有Atlassian的大力支持,可以和公司合作现有产品建立一个理想的工作流程。如果您想将JIRA和Bitbucket无缝地添加到您的CI流程中,并且愿意为此付费,那么Bamboo值得一试。
一句话:只要你愿意接受付费方案,配合Bitbucket和JIRA使用,Bamboo是一个极其强大的工具。
竹制仪表板
总结更快和更短的发布周期的需求,开发团队必须找到能够支持新的软件交付方法的工具和工作流。每周、每天甚至每小时发布生产结果,也意味着生产系统会出现更多的错误。现在您已经熟悉了CI/CD工作流,下一步是检查完整CI/CD工具链中缺少的环节,以及如何将它们添加到工作流中。
推荐阅读
- 吉他 尤克里里 区别,如何区分尤克里里和吉他
- 侠盗猎车圣安地斯秘籍/侠盗猎车圣安地斯,作弊码
- 去一趟巴厘岛旅游要多少钱简介
- 苹果6s怎么升级系统,苹果6s怎么设置铃声
- 如何涂指甲油,怎样涂指甲油干得快
- 纪念碑谷艾达的梦攻略第四关,纪念碑谷艾达的梦攻略
- udk虚幻4引擎(游戏开发包工具)软件介绍(udk虚幻4引擎(游戏开发包工具))
- OG梅奥为什么离开nba Pubmed GIST文献月评第十九期(Jun 2018)
- 12306用户名和密码忘记怎么找回账号,12306用户名和密码忘记怎么找回
- 哈尔滨市极乐寺简介
- 二人麻将打法技巧,迅速如何掌握二人麻将技巧
- 故宫门票多少钱一张2021,故宫门票多少钱
- 如何删除微信中的表情包,微信如何删除自己保存的表情
- dnf已经有红字的怎么把红字洗掉,dnf已经洗出红字的装备怎么洗掉
- 海蛏子的家常做法,海蛏子的做法大全
- 微信聊天记录怎么恢复吗,微信聊天记录怎么恢复方法:
- qq飞车帧数如何能锁,QQ飞车帧数如何修改
- 1盎司相当于多少克黄金,盎司等于多少克及一盎司黄金等于多少克
- 怎么恢复路由器出厂,怎样恢复路由器出厂设置
- 触手tvlogo怎么买,如何录制触手TV文章