BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

实践中的持续部署

| 作者 Mike Bria 关注 0 他的粉丝 ,译者 晁晓娟 关注 1 他的粉丝 发布于 2010年2月8日. 估计阅读时间: 3 分钟 | CNUTCon 了解国内外一线大厂50+智能运维最新实践案例。

持续部署,Ash Maurya称之为:“在一天内多次完成发布同一款软件的过程,相比以前几天、几周乃至几个月的时间,现在可能几分钟就完成一次部署。”最近,在以精益为主的“消除在制品”活动中,持续部署成为热门话题。然而,虽然很多人可能会发现这是个吸引人的目标,而且从道理上讲也很值得去做,但能想明白该怎么做的人却没有多少。 Ash Maurya用自己公司的实施经验帮助填补了这个空白。

以前,发布过程至少要用半天,甚至有时候是一整天。如果一周要用20%的时间来发布软件,对于小团队实在是太浪费时间了。发现重要的新问题时,还要不断改变发布特性的优先级,为此所做的协调占用的时间还没有计算在内。
他开始转而采取Eric Reis的5步持续部署入门建议 ,这帮助他理顺了自己的工具。从那时起,他开始挑战最有难度的事情——“学着适应随时可以发布软件”,这也成了他接下来讲述的焦点。
先做简单的事情-进行小的变更,然后疯狂审核发布流程。我开始严重依赖功能测试,而且超过了对单元测试的依赖,这让我能像用户那样测试应用中的变化。我还发现了一组事件,它们的出现表示可能发生了特别不对劲的问题(比如,系统中没有用户),并且依此(使用nagios/ganglia)建立了一个实时报警系统。 我们慢慢建立了自信,并逐渐提交范围更大的多部分变更,每次提交也让我们的测试套件和监控脚本变得更为完善。经过一系列的迭代,相比过去的阶段性发布,我们的恐惧感实际上也降低了很多。因为每次发布提交的代码量变少了,我们就能够放心地把互相关联的问题解决方案放在一起进行发布。

Maurya使用下面的原则和实践来描述他的持续部署过程:

  • 别去推功能” 这是基本的精益箴言。 让客户向你的MVP提供反馈,以此来“拉动” 新的功能。
  • 少量编码”对于Maurya而言,两个小时的编码结束后,就要签入代码了,并由此导致自动构建 。
  • 尽量采用功能测试而不是单元测试”Muarya使用了Selenium(基于web的自动功能测试工具,由ThoughtWorks开发) 。
  • 必须测试用户激活流程绝对要保证让用户“初步满足的关键路径”是起作用的。
  • 使用自动软件更新”应该尽可能保证用户在不受影响的情况下收到更新。Maurya详细描述了他是如何为基于OSGI的应用做到这一点的。
  • 集成警告和监控”使用nagios和ganglia, Maurya可以获得任何系统使用异常的缺陷通知。
  • 集成应用程序级别的诊断”一个应用程序能够通过自检来发现问题,而且这些问题是用户和测试可能无法发现的。
  • 未预期的错误只能允许发生一次”花点时间来理解真正的原因并彻底根除它。
这里只是摘要,如果你有兴趣的话,可以花点时间来阅读Maurya的完整经验报告
感谢郑柯对本文的审阅, 查看英文原文Continuous Deployment, In Practice 

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT