第14章 冗余
拉杰的服务器改造方案在周三下午正式启动。
陈舟站在那间改造成临时机房的卧室门口,看着拉杰和玛利亚两个人把四台新到的戴尔服务器从纸箱里拆出来。纸箱堆在走廊上,几乎把通往厨房的路堵死。达斯汀路过的时候被绊了一跤,爬起来第一句话是“这些箱子能不能按字母顺序排好”——说完自己先笑了。
“你开始拿自己的bug开玩笑了,”陈舟说,“说明你真的睡够了。”
“睡了八个小时。这辈子没睡过这么饱。”
拉杰没有参与他们的对话。他蹲在机架旁边,用扎带把网线一根一根理好,动作精确得像在做外科手术。每根线的长度都预先量过,标签提前打好了编号。玛利亚站在他身后,手里端着一杯没加糖的黑咖啡,褐色的眼睛跟着拉杰的手指移动。她没有说话,但陈舟注意到她点了两次头——一次是拉杰把冗余服务器的故障切换时间从四十五秒压缩到了二十八秒,另一次是他在网线标签上用了她之前提过的颜色编码。
“你们两个,”陈舟靠在门框上,“是不是不需要产品经理了?”
“暂时不需要。”玛利亚头也没回。
“那我回去写News Feed的测试方案。”
“等一下。”玛利亚从机架后面走出来,把咖啡放在桌上,从打印机上拿起一张刚打出来的拓扑图递给陈舟,“新架构的节点分布。公开注册之前需要确认所有节点都通过了压力测试。”
陈舟接过图纸扫了一眼。图上的每一条线、每一个节点都标注得清清楚楚,不同区域用不同颜色区分,最下面还有一行手写的小字——拉杰的笔迹——写着“预计峰值承载能力提升百分之两百”。
“这个数字怎么算出来的?”
“拉杰算了三遍。我核对了三遍。”玛利亚说。
“那就是可靠的。”
玛利亚看了他一眼。那双褐色的眼睛里有一丝很淡的意外——像是她习惯了自己说出来的数字被别人质疑,忽然遇到一个直接说“可靠”的人,反而不知道怎么接。
“你都不验算一下?”她说。
“你验算过了。”
“万一我算错了呢?”
“你不会。”陈舟把图纸折好放进包里,“你在服务器这件事上从来不会出错。”
玛利亚沉默了一瞬。她的表情和平时没有区别——平淡、安静、不易读——但她转身走回机架旁边的速度比平时慢了半拍。陈舟不确定那是什么意思,但他记下了。
下午,News Feed的封闭邀请测试方案在白板上被扎克伯格画了三个圈。
“五千个种子用户,每人三个邀请码,总共两万个名额。测试期两周。”扎克伯格用马克笔敲了敲白板,“问题在于怎么选这五千人。”
“从活跃用户里随机抽。”达斯汀说。
“不能随机。”陈舟走到白板前,“封闭测试的目的是制造稀缺感。随机抽奖没有稀缺感,用户不会炫耀。”
“那怎么选?”
“两个维度。第一,日均使用时长排名前五的用户优先。第二,在照片标记功能里活跃度高的用户优先。这两类人是最愿意尝鲜新功能的人,也是最可能在社交网络上去炫耀自己拿到了邀请码的人。”
扎克伯格推了推眼镜,盯着白板看了片刻。
“按使用时长和标记活跃度加权排序,”他说,“取前五千名。”
“对。”
“达斯汀,你能在数据库里跑出这个名单吗?”
“能。但要先把排序算法修好。”
“那个bug早就修好了。”
“我知道。我就是想再确认一遍。”
帕克靠在沙发上,翘着腿看他们讨论。等三人都停下来,他才慢悠悠地开口:“邀请码发出去之后,需要配合一条系统通知。措辞很重要。不能写‘恭喜你被选中’,太像中奖广告。要写‘你的朋友想让你提前体验一个新功能’。让收到邀请的人觉得——不是平台在施舍他们,是某个朋友在主动拉他们进来。”
“这就是你当年做Napster拉新时的策略?”陈舟问。
“不是。是我被Napster踢出去之后才想明白的。”帕克把腿从沙发扶手上放下来,“人在被需要的时候,分享欲是最强的。比被奖励的时候更强。”
陈舟在白板上记下了这句话的简写:被需要>被奖励。
傍晚,玛利亚从机房出来,脸上有一道灰印——大概是在机架后面蹭到的。她去洗手间洗了把脸,回到角落的iBook G4前坐下。陈舟注意到她把椅子从角落往外挪了一点点,不再紧贴着墙壁,现在她的屏幕可以被路过的人看到一部分。
他没有走过去。只是在自己的折叠桌前继续写News Feed的测试文档,偶尔抬头看一眼窗外。大学路上的梧桐树已经开始掉那种白色的小绒毛,在傍晚的阳光里飘得到处都是。
手机震了。是江晚秋的短信。
“公司注册下来了。陈记建材批发有限公司。法人:陈国昌。经营范围:建材批发、进出口。”
下面还有一行字。
“你的人情,我又加了一笔。利息怎么算?”
陈舟看着屏幕,嘴角浮起一抹弧度。玛利亚从角落里扫了他一眼,然后收回目光,继续盯着服务器日志。
他没有马上回复。窗外加州的暮色拖得很长,那家汉堡店的吉他声又响起来——这次是《Norwegian Wood》,披头士的老歌,很轻,像被风吹过来的。他想象着此刻江晚秋在杭州某个办公室里的样子——深夜,加班,桌上一杯早就凉掉的茶,嘴角带着那种完成一件事之后公事公办的表情。但这次,她的表情里应该还有别的什么。利息。她开始主动要账了,而催账是关系变质的第一个信号。
陈舟回复了三个字。
“你开价。”
诺基亚1100的物理键盘,他按得很慢。这三个字他想了很久。不是犹豫,是斟酌。对江晚秋这样的人,多说一个字是轻浮,少说一个字是怯场。三个字,把下一手牌交给她。
这是他在阿里十二年学会的另一件事:如果一个人已经开始计算你们之间的账目,最好的回应,是让她继续算下去。因为每一笔账都是下一次见面的理由。
他放下手机,继续写文档。
玛利亚的键盘声在角落里轻轻响着,节奏和从前一样稳定。拉杰从机房出来,手里拿着那张拓扑图的更新版,递到他桌前。
“压力测试方案我已经写好了,”拉杰把图纸放在桌上,“下周一可以开始第一轮。”
“需要多长时间?”
“两轮测试,每轮一周。加上修复和调优,总计大约三周。”
“三周后是五月中旬。”陈舟看着那份图纸,“正好赶在News Feed公开测试之前。”
拉杰点点头,转身走了两步,又停下来。
“陈舟。”
“嗯?”
“玛利亚说你验都不验就信了她的数字。”
“我是信了。”
“她让我告诉你——”拉杰顿了一下,像是在回忆一句要求他逐字转述的话,“‘下次至少装模作样问一句。’”
陈舟愣了一下,然后笑了。拉杰没有笑,但他的眼神里有一丝陈舟很熟悉的东西——那种只有在一个团队里待得足够久的人才会有的、不易察觉的归属感。
晚上,达斯汀把News Feed邀请测试的初版文案发到了共享文件夹里。标题是“你的朋友想让你提前看看这个”,正文只有三段,每一段都不超过两行。陈舟看了一遍,回了一个字:过。
达斯汀从地板上坐起来,一脸不可置信:“你就回一个‘过’?我写了两个小时。”
“好的产品文案不需要修改。”
“……你能不能至少挑一个错别字?你这样我很不安心。”
“没有错别字。”
达斯汀沉默了一瞬,然后躺回地板上,对着天花板说:“这个人真的太难取悦了。”
扎克伯格头也没抬:“取悦产品经理最好的方式就是把东西做好。你已经做好了。别求夸奖。”
帕克从沙发上飘来一句:“我刚入行的时候也跟你一样,觉得不被骂就是不够认真。后来发现——当你的同事开始用‘过’代替一大段夸奖,说明你已经不需要夸奖了。”
达斯汀没有回答。但他嘴角那个压不下去的弧度,出卖了他。
深夜,所有人都走了。扎克伯格回宿舍补觉,达斯汀去便利店补充红牛顺便散步,帕克不知去向,拉杰关了机房最后一盏灯之后悄悄离开。只有玛利亚还坐在角落里,面前屏幕上滚动着新服务器的监控日志。
陈舟坐在门前台阶上。
加州的夜晚比白天安静得多。大学路上的车流声消失了,汉堡店已经熄了灯,连吉他声都停了。只有路灯还在亮着,暖黄的光晕里有几只飞虫在打转。梧桐树的影子在人行道上轻轻晃动,远处偶尔有一辆夜班公交驶过,引擎声由远及近,再由近及远,最后消失在更深处的夜里。
他掏出那部诺基亚1100,打开记事簿,在那串未来大事记的最下面加了一行字。
2005.4.27服务器冗余改造启动。拉杰的方案。玛利亚核验。团队第一次不需要我开口就互相信任。
他合上手机,在台阶上坐了很久。
一万公里之外,杭州的天应该已经亮了。江晚秋应该已经在办公室里看到了他的回复——那三个字。他想象她看短信时的表情,和上次被他问“名片是不是还留着”的时候一样,冷着脸把手机屏幕锁掉,嘴角却有压不下去的弧度。
而在圣马特奥那间车库里,陈士骏和赫利应该还在改代码。他们现在有了新的服务器和更好的带宽,测试用户数正在悄悄逼近四位数。
蝴蝶翅膀正在扇动越来越多的风。
有些风他知道会吹向哪里。有些风他也不知道。
但这正是“再来一次”的意义——不是把所有事情都做对,而是把所有事情都做得比上一次更好。

