IMVU如何在实施持续部署的同时确保软件质量

本文是IMVU(一个社交网络公司)在32个月之前发表在他们的技术博客上。你可能会羡慕这种发布状态(每次代码修改在20分钟内就可以部署到生产线,而每天部署50次),以及他们如此强大的工具和基础设施。然而,你看到的只是结果,而背后却是他们坚持的理念——“持续交付、持续学习”的精益创业开发理念;以及在这一理念支持下,大量艰苦的工作。那么,这些工作都包括哪些内容呢?详情如下。

---------------------------------------

我们公司有时也会由于某个特性抢速度上线而对顾客造成一些负面影响,但是这些负面影响也是我们得到教训的一个来源。有时,我们做的特性对于顾客没有什么价值,有时也会在生产环境中引入一些回归问题或是新的缺陷。

然而,有的时候,对于我们小心翼翼做出来的一些特性,客户也并不买账——可这的确消耗了我们很多精力,因为我们要花了更多的时间来研究、学习和调整方向。举一个例子吧:我们曾用 一个月的时间开发完了一个叫做“更新”的特性——有点像Facebook的“Friend feed”(朋友新鲜事),而用户对这个特性的反应和我们预想的完全不同。这表明,我们花了很长时间却交付了一个没人要的功能,而导致的结果就是:这延迟了另一个更加重要的特性(群组特性)的交付。

Continue reading IMVU如何在实施持续部署的同时确保软件质量

IMVU持续监控:数千台服务器上应用系统的实时分析

IMVU是国外一家游戏社交网络公司,《精益创业》作者是其创建者之一。我在2011年由InfoQ组织的QCon大会上分享的《持续交付》相关话题中介绍过该公司的情况。那时该公司只有不到40名工程师,每天部署50次。在部署前需要运行一个很大的单元测试集合,总运行时间为15~20分钟(当然是分布式执行,而不是在一台机器上啦)。一旦通过,即可部署到生产环境中。当然,这么做有一个前提是有一个强大的监控系统,他们把它叫做“免疫系统”。下面就是这个免疫系统的升级过程介绍,以及他们开源出来的监控工具istatd

Continue reading IMVU持续监控:数千台服务器上应用系统的实时分析

为什么要做持续部署?

本文是《Lean Startup》一书的作者Eric 在2009年发表的一篇博文,他是IMVU的创始人之一。文中没有讨论如何做持续部署,而是讨论了一个更关键的问题:“IMVU为什么要做持续部署?”这也充分地表达了他关于“Learning from production and customer”的观点。

----------------------------------------

在我所倡导的Lean Startup所有实践中,没有哪个实践比持续部署更有争议(持续部署是指:让公司在几分钟内发布软件的过程,而不是几天或几个月才发布一次)。我之前所在的一个创业公司IMVU使用这个流程,平均每天部署50次。这也引发了一些争论,有些人说:这种快速发布流程会导致低质量的软件,或者阻碍公司的创新。假如我们能够接受由客户来评判,而不是专家的判定,那么,我想这些说法就很容易消散了。一个更为常见,且更为困难的问题是:如何回答那些只想知道这种持续部署是否可以用于他们自己的业务、行业或团队的人们。 Continue reading 为什么要做持续部署?