实践中的持续部署

作者 Mike Bria 译者 晁晓娟 发布于 2010年2月7日 上午3时33分

社区
Agile
主题
交付价值,
质量交付,
部署/数据中心
标签
精益,
发布,
持续集成

持续部署,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 
::...
免责声明:
当前网页内容, 由 大妈 ZoomQuiet 使用工具: ScrapBook :: Firefox Extension 人工从互联网中收集并分享;
内容版权归原作者所有;
本人对内容的有效性/合法性不承担任何强制性责任.
若有不妥, 欢迎评注提醒:

或是邮件反馈可也:
askdama[AT]googlegroups.com


订阅 substack 体验古早写作:


点击注册~> 获得 100$ 体验券: DigitalOcean Referral Badge

关注公众号, 持续获得相关各种嗯哼:
zoomquiet


自怼圈/年度番新

DU22.4
关于 ~ DebugUself with DAMA ;-)
粤ICP备18025058号-1
公安备案号: 44049002000656 ...::