或许是这找个正规网赌平台

本文翻译自随笔 Top 5 Reasons for CI
Failure
,紧要介绍了
CI 失利的两个原因,包括 CI 服务的错误选用、CI
工程师的不专业性、随意变动CI服务器配置、CI服务器性能差、缺少管理等。由
flow.ci-Meng
编译整理。


找个正规网赌平台,赶快开发不容许完美,必须有 CI 实践的助力。CI
是连连开展剖析、构建、测试和配备的自动化流程,在规范发布到生产条件在此之前,CI
会检查代码质地和测试产品的事务逻辑。

美观状态下,在构建失利时不能够让项目或软件部署到生育环境。然则,持续集成的观点并不被每一个敏捷团队适用。一些敏捷团队非常重视
CI
实践,有的只是为着做敏捷而做,而略带团队完全忽略CI,更有甚者从未配置过
CI 服务器。

在公司中造成CI实践被忽视有各个缘由。
我们都理解信用社有所不同的优先级,产品总监可能并不晓得里面质料、测试流程和完整构建的首要。
技术总裁不可以分配时间来举行 CI 实践或修复现身问题的 CI 系统。
产品和技能主管一筹莫展明白互相的优先级,导致部署了一个告负的成品交付给终端用户,并传递了一个可怜糟糕的商业价值。

这种艺术看似没有问题,但实际上特别危急。可能尽快的前天会招致惨重的成品缺陷,从而严重影响工作运行。这种影响是不行预知的,一起先是金钱的损失,直至影响到铺子信誉,最终可能平素促成整个业务完全失利。

而是,即便产品经营和技艺公司同意投入更多的时光和钱财实施或修复 CI
问题,一些社团仍未成功。 这篇作品我们谈谈了 CI
失利的五大原因,并提供部分潜在解决方案,希望可以协理您。

1. CI 劳务的一无是处选拔

市场上有各个持续集成工具,CI
服务器解决方案可以是地面搭建也可以云端托管。这里列出了一堆的CI服务器解决方案

Jenkins 是近日风行的 CI
服务器之一,我们都倾向于盲目使用它。为了采用 Jenkins
的服务,大家只好调整项目。现在,市场下面世了有的不利的CI服务(国内如
flow.ci),选取切合自己适合需要的CI服务着实是一个挑衅。

引进解决方案:

  • 精心调研市场并因此实验权衡各个需要,Slant上已经对主流的各样CI产品展开了很详细的好坏评估,可参考一下;

  • 关心特性,例如管道襄助,容器辅助,平台支撑,易用型,可用性等等;

  • 无须为了节省开支而挑选一款通用的适应所有平台的CI产品,每个平台都有不同的技术需求和挑衅;

  • 和团伙研商并借鉴过去的经历。

2. 业余的 CI 工程师

敏捷团队的工程师应该具有可以的编码能力,但唯有写代码和测试代码是不够的,还关乎搭建配置环境的能力,运行命令行和编制脚本的技能,还要有对自动化构建工具和看重/包管理工具的学识储备。

前不久,很多商厦起先把基础设备​​转移到云端,所以还亟需学习DevOps的技能,比如AWS,Azure
和 Heroku 等云服务。配置工具,如bash,Ansible和Chef;以及 Docker 和
Kubernetes
等容器服务。最着重的是左右至少一种脚本语言,即Bash,Ruby或Python。

这并不意味你应当学学世界上的富有东西,但你需要通晓平台上的事物。假若一名
iOS 开发工程师,可能需要驾驭Cocoapods,Carthage 和 斯维夫特(Swift)(Swift)等倚重管理工具。

再有用于构建的自动化工具,如在 APPLE
命令行工具之上的Fast(Fast)lane,Rake和Make,并关切最新技术提升。

每个工程师都会有擅长的事物,有的擅长编写基本编程代码(即Java,Objective-C和Swift(Swift)),并对
DevOps
相关的构建自动化工具十分熟习。有的工程师习惯于选拔IDE环境开发(比如Eclipse、IntelliJ和Xcode),有些工程师擅长构建工具但写程序代码则弱一些。

此间说的CI业余工程师是这一个不可以脱离IDE,不会采取命令行和本子工具的人。他们只喜欢GUI工具,拒绝利用命令行或脚本。可是,CI服务器并没有GUI界面,所有的流水线必须通过脚本完成。

一经你的协会有这类人,这CI实践永远不会成功。
他们也许写出部分低质地的自动化脚本,大家的时间都浪费在改善构建自动化以及CI服务器之间的切换上,而不是当真构建对事情有效的功力。

推介解决方案:

  • 选聘具有CI和DevOps基础知识的工程师;

  • 培养CI业余工程师,最好的不二法门是去表面培训或者请里面有经验的CI专家培训;

  • 短时间招聘一些CI专家来树立CI流程和享用经历。

3. 自由改动CI服务器配置

大部的CI服务器允许用户通过 Web 界面更改构建的配备。
这种办法使工程师轻松成立和编排 CI 工作流。
然而平时改变构建配置或者会发出过多题目,例如忽略的一部分重中之重的构建步骤。
还有,每个人都有访问构建机器的权位,这可能会造成混乱,
搞不清楚什么人在咋样时间做了何等变动。当相互不了然更改配置的始末,可能需要花费很长日子才能定点到构建退步的由来。频繁更改
CI服务器可能会导致协会内的混杂。

推介解决方案:

  • 部署文件,bash脚本或另外有关的文书放在代码库中集中管理;
  • 制止手动更改CI服务器上;
  • 决定CI服务器的走访权限,并由专人负责管理;
  • 不容许用户修改特定的构建步骤;

4. CI服务器性能差

在项目支出过程中,开发人士通常需要更新代码,这会触发CI服务器上的构建流程。
这意味CI服务器需要不停运行大气任务,例如从远程服务器下载相关文书,备份数据库,运行Docker容器等,因此CI服务器必须迅速可靠
,并且稳定。 性能差的 CI
服务器不仅浪费我们的构建时间,导致测试结果断断续续,也会潜移默化让工程师们士气沮丧。

推荐解决方案:

  • 采用更好更高配的服务器;
  • 绝不把CI服务器挂在Wifi上;
  • 不要在CI服务器上安装不必要的软件;
  • 正确调度CI服务器资源;
  • 并非手动安装其他软件;
  • 制止选用GUI访问机器,使用 SSH 访问即可。

5. 贫乏管理

花色管理在整整CI实施中起着关键功用,必须对所有构建流程设定严刻的指引,同时对其它不遵循引导的行事零容忍。在此外动静下都不可以宣布CI流程中断的软件。任何构建中断都要被视为紧急事件并以最高优先级举办修补。很多技巧总经理能够做到这或多或少,但有些没有CI经验的管理人士可能会命令继续支付而不顾代码质地。在这么的田间管理下,CI实施不容许成功。

引进解决方案:

  • 树立社团的CI流程并严厉执行;
  • 塑造项目老板并用于CI实施。

结语

在敏捷团队中实践CI是至极有挑衅的,但依据一些严酷的规则并避免大规模错误可以更管用地履行CI流程。你在CI实践中有怎么着的经历?你认为CI流程有效呢?欢迎分享你的理念!


flow.ci
,融入了 workflow
机制的不停集成(CI)服务,也能够知道为自动化流程平台,除了集成代码、编译、测试之外,还足以合二为一常用的工具、灵活自定义流程。本文由
flow.ci-Meng
翻译整理,想阅读更多技术作品,请访问 flow.ci
官方技术博客

Leave a Comment.