BT

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

超越持续集成——持续部署

| 作者 Chris Sims 关注 0 他的粉丝 ,译者 李剑 关注 1 他的粉丝 发布于 2009年3月12日. 估计阅读时间: 3 分钟 | 如何结合区块链技术,帮助企业降本增效?让我们深度了解几个成功的案例。

特征进入产品阶段越快,它就能越早提供价值。系统响应客户反馈的速度越快,它就能越早让客户满意。Timothy FitzJoe Ludwig最近发布了一些文章,描述了持续部署的实践经验,将交付周期从以星期计缩短到以分钟计。

Timothy的第一篇文章描述了持续部署如何影响修复bug的成本。错误被发现的时间越迟,修复的难度越高,代价也最昂贵。如果工程师在敲下代码的时候就发现了问题,那修复的成本几 乎为零。如果编译器捕获了bug,它对开放时间造成的影响就是以分钟计的。如果bug进入了产品,而且在一段时间内没有被发现,找到bug、修复bug的 代价就会让人觉得难以承受。千年虫问题就是一个典型的例子。Timothy赞同快速失败(fail fast),这样bug所造成的影响和代价都会降低到最小。

读者的评论基本上对持续集成的实用性全持强烈的质疑态度。Erik A. Brandstadmoen直言不讳:“在实际应用中,我觉得[你的]做法还不够”。来自ycombinator的一位评论者说道:“唔……不。也许这种做法对单人适用,可以取代持续继承。不过要是在一个复杂的系统上,许多人同时提交,你的站点肯定玩完。”

imothy又写了一篇文章回应质疑声,他介绍了IMVU是怎么持续部署系统的。IMVU的做法是,先用持续集成来做快速构建,测试新的变化。这里有一个关键点——要有大量的、覆盖范围广的、非常可靠的自动化测试。他们用了许多测试机,用来保证可以在10分钟以内运行整个测试套件。所有测试都已通过以后,部署便开始了。

代码用rsync备份到集群的几百个机器里面。用一个push脚本来得到平均负载、cpu占用率、php错误及崩溃等等的样本作为基线。然后在小部分机器 上建立symlink,让代码在这些机器上运行起来。一分钟以后,push脚本就会在集群中重新收集样本,如果数据出现大幅度衰退,那么就把代码回退到上 一个版本;如果没有的话,就把代码在整个集群上运行起来,继续监控,五分钟之后重新收集数据。然后代码就可以正式运行了。

IMVU现在有60名员工,3千万注册用户,每月收入上百万英镑,做出的成绩可相当不俗。不过从Michael BoltonJames Bach的调查中看,这个系统也不完美。Elisabeth Hendrickson指出,完美并不是这个系统的目标。

Joe LudwigPirates of the Burning Sea的前任架构师,他写了两篇文章,指出怎样才能在重量级的客户端代码的环境中执行持续部署。他先是描述了“Pirates”长达7个半小时的部署过程,然后略述了怎样把它缩短到1个小时。在第二篇文章中,他详细描述了要把一小时部署变成现实所要做出的重大技术改动。

你有没有持续部署的经验?要把你的系统变的可以持续部署,需要做出那些变动?请留下你的观点,与读者共享。

查看英文原文Beyond Continuous Integration: Continuous Deployment

评价本文

专业度
风格

您好,朋友!

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

获得来自InfoQ的更多体验。

告诉我们您的想法

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

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

以分钟计太夸张 by 一 刀

我们的产品,用联机编译编一遍就要几个小时

太扯了,这也行的 by chen popo

不过互联网项目的做法和传统是不一样的。

允许的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通知我

2 讨论

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


找回密码....

Follow

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

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

Like

内容自由定制

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

Notifications

获取更新

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

BT