打开网易新闻 查看精彩图片

每周五早上,Spotify的发布团队开始打包代码。几十支工程团队写的几百处改动,要塞进一个安装包,发给全球6.75亿用户。他们管这叫"Release Train"——火车发车,不等人。

trunk-based开发是这套系统的地基。所有人往同一条主干分支塞代码,没有"我在分支上再测两周"的拖延症。好处是集成冲突被切碎到每天处理,坏处是一旦有人偷懒,整列车都可能脱轨。所以Spotify用自动化测试当刹车片:代码合并前必须过检, nightly build自动推给员工和外部alpha用户,崩溃率超标就自动生成工单。

第二周周五,发布分支被切出来,这班火车正式锁门。此后主干上的新功能与它无关,团队只往分支里打补丁。Spotify管这叫"stabilization week"——不是加新东西,是盯着6.75亿台设备的数据找茬。Android碎片化最头疼,他们得覆盖几千种配置组合。

第三周周二,这班火车开始出站:先推1%用户,再推10%,最后全量。每个阶段都有健康指标卡着,不合格就回滚。Release Manager手握生杀大权,但决策依据全是数据,不是"我感觉这版还行"。

这套架构的狡猾之处在于:速度和安全不是 trade-off,而是互相喂招。每周发版倒逼团队把代码切小、测好再合;频繁的发布又把风险摊薄到可承受的范围。一位工程师在博客中写道:「我们不是测得特别狠,是让测试和发布节奏咬合在一起。」

目前这套系统支撑着95%以上的版本无故障全量推送。剩下的5%?回滚按钮点下去,用户甚至来不及打开应用商店吐槽。