2013 年 11 月中旬,马里兰州哥伦比亚市,一间租来的屋子,四面挂满屏幕。抢救 HealthCare.gov 的一群人正在开站会,这样的会他们每天开两次。屋子后头,一个工程师喊了一声:刚才那次短暂宕机,多半是他弄错的。
主持站会的米奇·迪克森(Mikey Dickerson)当场要大家为他鼓掌。
大约六个星期前,奥巴马医改的核心网站 HealthCare.gov 刚刚上线。10 月 1 日那天,开放不到两小时就出了故障。按卫生部监察长办公室的统计,那一天成功提交申请、选好保险的,一共六个人。到 10 月 17 日,十个人里还只有三个能登上去。据史蒂文·布里尔(Steven Brill)在《时代》周刊上的还原,总统那时正考虑把整个网站推倒重来。
迪克森是谷歌的网站可靠性工程师。10 月 18 日,他被拉进一个电话会议,线路乱糟糟的,他连谁在主持都听不出来。「最后我忍不住插话问:我在跟谁说话?这个会是谁在主持?」对方是白宫首席技术官。迪克森订了机票,打算过去待几天。
同样的问题,悬在整个项目头上。监察长办公室后来问 CMS 的员工,这个项目当初由谁牵头,好几个人报出的职位当时根本没人在任。光是「作战室」,CMS 就开了三个。
最先赶到的几个外援发现,网站连块仪表盘都没有,看不到有多少人在线、流量堵在哪里,于是头一个晚上就现做了一块。接着他们找到一处好下手的地方:大网站通常放在缓存里的数据,这个网站每次都要回主数据库去查。10 月 22 日,加上缓存之后,页面加载从 8 秒降到 2 秒。第二天,团队告诉白宫:到 11 月底,能让绝大多数访客用得上。「不就是个网站,」迪克森说,「我们又不是去登月。」
从 10 月 24 日起,他每天开两次站会,上午 10 点一次,晚上 6 点半一次,周末也不例外。早上挑出要修的 bug,晚上开会前要清掉。他们带着的几十个工程师,都是承包商的人,当初把网站做坏的就是这几家公司。迪克森把规矩贴在控制中心门外的墙上。第二条说,一个问题该由最懂它的人来讲,而不是级别最高的人。第一条是:
「作战室和这些会是用来解决问题的。想把心思花在甩锅上,有的是别的地方。」
站会开了不到三天,整个网站就挂了。一家数据中心做维护时,一台交换机坏了;网站都没了,团队几乎什么也干不了。两天后,一个存储设备又出故障,网站再次挂掉,正赶上卫生部长那天下午在国会作证。「那两次宕机让人彻底泄了气,」一位工程师说。
站会照开,一天两次,一直开到那个工程师当众认错的那一场。
救回网站的不只是这些会。一系列硬件升级让容量大大提高;另一支团队把出错率从 10 月的 6% 压到了 12 月 1 日的 0.5%。12 月 23 日,是 1 月 1 日起生效的保险原定的报名截止日,这一天网站办成了 12.9 万份参保,差不多是整个 10 月的五倍。
迪克森原本只打算待几天。他回到谷歌,已经是 1 月 5 日。