本文翻译自文章 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产品进行了很详细的优劣评估,可参考一下;
关注特性,例如管道支持,容器支持,平台支持,易用型,可用性等等;
延伸阅读
- ssh框架 2016-09-30
- 阿里移动安全 [无线安全]玩转无线电——不安全的蓝牙锁 2017-07-26
- 消息队列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 论文笔记【图片目标分割】 2017-07-26
- 词向量-LRWE模型-更好地识别反义词同义词 2017-07-26
- 从栈不平衡问题 理解 calling convention 2017-07-26
- php imagemagick 处理 图片剪切、压缩、合并、插入文本、背景色透明 2017-07-26
- Swift实现JSON转Model - HandyJSON使用讲解 2017-07-26
- 阿里移动安全 Android端恶意锁屏勒索应用分析 2017-07-26
- 集合结合数据结构来看看(二) 2017-07-26