持续部署的例子:IMVU
IMVU是一家社交娱乐公司,它的产品允许用户以一种3D阿凡达式的体验互相连接起来。本节内容改编自一位IMVU工程师所写的博客。
IMVU采用了持续集成。开发人员尽早提交并经常提交。每次提交都触发测试套件的执行。IMVU有上千个测试文件,分布在三四十台机器上,测试套件的执行大约需要9分钟。在提交的内容通过了所有的测试之后,就自动实施部署。这大约需要6分钟。代码移动到集群中的数百台机器上,但是在开始时代码只在一小部分机器上执行(金丝雀)。一个取样程序检查金丝雀的结果,如果回归的数量很多,则改动的版本自动回滚。否则集群中的其他机器就会自动启用。IMVU平均每天部署50次代码。
这个过程的核心是测试套件。每当提交的内容通过执行测试套件并回滚后,都会产生一个捕获出错部署的新测试并将它添加到测试套件中。
注意,对于一个大规模的系统来说,只要9分钟就能执行一次完整测试(有信心在生产环境中部署)的情形并不常见。在很多组织中,获得生产环境信心的完整测试套件需要执行数个小时,且常常是在夜间执行的。一个常见的挑战是审慎地缩减测试套件的大小,去掉“不可靠”(flaky)测试。
08-16
2396
06-13
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交