全数字化流程之CI环境

CI,即为Continuous Integration(持续集成)的简写,是敏捷软件开发流程最重要的实践之一。 在VonBros,我们通过严格的CI来践行敏捷,贯彻极限编程的思想。

通过不断的实践,我们总结出CI对软件开发的帮助主要体现在如下几个方面

  • 确保产品的持续发布

持续集成最重要的价值在于保证任何时候都可以得到一份完整测试过的可部署的软件产品,持续集成的直接产出就是产品的持续部署。CI的一整套流水线(pipeline)定义了完整的测试流程,包括单元测试,集成测试,验收测试,甚至压力测试,以及持续升级的部署测试,因此CI确保了任何通过流水线测试的代码都有是可随时发布部署的。

  • 便于客户随时了解项目的进度并提供反馈

当一个客户将一个项目交给一个团队开发时,其最为迫切的需求可能就是通过他能够明白的方式实时的关注到这个项目的进度如何,做到心中有数。敏捷流程的核心就是快速获取用户反馈,持续迭代,不断调整最终完提交符合用户期望的产品。采用CI的方式后,用户可以简单方便得了解到自己项目的每日迭代情况,项目的运行状态等;更重要的是客户可以随时体验包含项目最新进展的演示环境,并根据最新的产品演示,提出反馈,这些反馈则立刻进入开发人员下一轮迭代中,持续改进产品。

  • 快速获得提交代码的反馈

如何保证代产品的质量,一直以来都是困扰开发团队的问题,特别是当一个团队足够大时,由于任何人的代码提交,都会给最终产品造成影响,从而使得保障质量的难度不断增加。采用CI环境后,任何人一次提交都会触发CI上的测试,只有当所有的测试都是绿色(PASS)以后,这次提交才会被接受并加入最终产品代码库,从而保障了主线代码的可靠性和项目的可运行性。而一旦任何一个环节出现红色时,都会及时地终止当前的提交,并反馈给开发者,从而做到及时发现问题,及时回滚,及时纠错。 

CI环境

在VonBros,就如上图大家看到的一样,CI保障了我们每天的代码提交,保障了我们项目的可运行性,也保障了客户可以随时看到任务进展,更保证了开发团队可以尽快获得关于产品反馈。在一个公开透明的环境下,人人可以做到心中有数。

作为一家初创性企业,我们选择采用开源软件执行敏捷开发流程,通过不断的迭代来完善我们的CI,目前我们采用 Concourse CI。Concourse CI 是一个可扩展的开源的CI管道工具。它的重要特点是定义了管道的概念,描述了一个提交如何从开始的代码逐渐演变为最终产品。Conconrse 支持从多种数据源获取代码,支持多种部署方式,利用docker容器,完成各种复杂度的构建任务。在产品环境,Concourse 可以通过BOSH工具快速部署,它也提供了单机版本的安装部署,可用于评估体验或者小规模试用。

《全数字化流程之CI环境》有1个想法

发表评论

电子邮件地址不会被公开。 必填项已用*标注