你已经做了一个决定:你打算采用持续集成作为你DevOps转型的第一步。你已经打好了基础工作。你已经建立了基本的持续集成的思想转变的先决条件:所有的确保的团队有共同的分享目标的版本-应用还有环境都支持它-确保应用的版本能够投入生产。
现在,什么?你打算真正地实施持续集成。你该怎么开始呢?
因为持续集成是一个过程-不是一个触动按钮的过程-你真的需要一个计划,实施它,准备去评估,回顾和恢复你所经历的。你在改变你的组织的整个文化,承诺一套更好的方法去交付更好的软件。你不打算一次性完成它。但是你如果慢慢适应它,每次都前进一小步,那么你就能够开始并取得成功。这里有一些已经成功实施持续集成的公司的步骤。
先从一个小型的,可管理的项目开始
一些组织常犯的错误就是一下子尝试做太多的东西。持续集成的狂热者相信这个方法论,所以它们倾向于快速地产生巨大的收益,来证明对组织的承诺。所以它们寻求突破,尝试着解决一个复杂的项目,充满着迂回曲折。这种“大爆炸”的方法承诺着巨大的收益,但是它更倾向会产生更多的问题。一个更好的方法是开始一个小的,未开发的项目,让组织能够尝试持续集成和适应新的流程。尝试着选择一块新的领域,有着新的集成的预期,不被传统的方法和老的流程集合所束缚。小的,增量式的改变对于应用来说更加容易测试,也更加容易弥补,如果有一些东西出错了的话。每次改变都可以通过管道更快地推送上去,从而允许组织做一些简短的,快速的管道测试,从而产生可量化的,积极的结果。
定义一个流程
当你开始你的初始项目时,你需要开始定义这个流程。这跟写流程在板上一样简单。那些我们读过Gene Kim书 The Phoenix Project的人都熟悉这个步骤。公司在这本书中强调了所有的IT交付可能遇到的问题,直到它的副总裁,实施了持续集成。第一步就是让每个员工都在白板上面写下集成过程的步骤,然后想着怎样把他们联系起来,创建一个流水线的过程。这个团队之后就卷起它们的袖子,然后创建一个流程,然后让它自动化。
事实是,你可以购买许多工具,然后创建一套激进的目标,然后让你的团队全副投入。但是直到你绘制出整个流程,明白整个流程,然后指派角色,你不能真正地开始。
确保一个无可非议的文化
持续集成的实施的一个先决条件的是开发,测试和运营团队都要有共同的目标的需求。这是必须的。但是它并不是“人们工作”的结束。当你实施持续集成的时候,你应该做一个持续的检查确保你是在促进一个无可争议的文化。问题会突然出现在任何的持续集成中,你的组织需要确保能够以一种积极的方式来分类,而不至于让人指着别人,推卸责任。成功的DevOps文化接受失败和改进冒险。转移到持续集成是有风险的,然后你的团队需要在这场游戏中记住持续地改进你地过程。
设置指标和衡量你的成功
Forrester的分析专家Kurt Bittner不是唯一的思想领袖去宣扬布道要重复量化项目的价值。但是它很清晰地呈现出了一个案例,关于任何人如何在软件交付的项目进行度量,和如何将这些标准应用到每个流程的步骤中。事实是,如果你不尽早和经常度量的话,你就无法提升。所以,一个重要的步骤你在实施持续集成的时候,就是去决定你想要提升什么和你如何去衡量这些提升。然后你设置一系列的测量的基准线。然后你下班了。
采用配置代码
持续集成的一个重要方面就是自动化配置的能力。这种配置代码的实践确保了你的持续集成的一致性,清除可能导致构建配置的问题-潜在的不一致性-当你想要推送发布版本到生产环境的时候。
如果你正在实施持续集成,你会想确保你正在利用工具的优势来实现配置管理-来自Chef,Puppet或者其它的工具。我们看到更多的DevOps操作正在实施这些工具。根据最近一份由CoudBees资助的DZone的调查显示,49%的组织使用配置管理工具,48%的组织使用版本控制来做基础结构改变和系统定义。但是,另一方面,依然有73%的企业使用手写脚本来实现它们至少一半以上的基础结构改变。
策划一个流程
你已经定义了你的管道,现在你需要精心策划它。这是一个长时间过程。但是这里有一些步骤需要你实施的,正如Xebia Labs,Andrew Phillips 和CloudBees,Kohsuke Kawaguchi在白皮书中说到的。
确保可重复的构建 配置整个构建系统,使用一个链接到构建任务的工作区的干净的仓库,使用一种中央共享的的仓库来构建依赖。
通过管道共享构件 确保候选的构件在你的管道中被随后的构建所使用。
为每个任务挑选合适的粒度
通过多任务在管道中分散所有的步骤,允许你能够更容易地辨别瓶颈。
可视化管道
创建一个清晰的,更容易理解的构建管道的视图,从而允许平滑状态的通信以及商务人员和其他的关联人员之间的流程的透明。
结论
持续集成最开始看来可以说是一个艰巨的挑战,但是它是一个值得尝试的旅程。这里有一些工具可以任你使用,包括了许多免费的jenkins 插件,确保任务更加可管理。带着一点点胆怯和深谋远虑,你可以开始一个持续集成项目,最终会为你,你的团队,你的公司和你的客户产生真实的价值。