“好。”
电梯到了十楼。沉默又回来了,比之前更厚,更重,像一个被压缩了的档案,体积很小但内容很多。
“刚才唐总找我谈话了。”裴衍之说。
程司白的手指在公事包的提手上紧了一下。“他也找我了。”
“他跟你说了什么?”
电梯到了八楼。程司白沉默了几秒,这几秒里电梯的数字跳了两次,从八到七,从七到六。
“他说你选Paxos是因为不想让我的架构承担风险。”她说。
裴衍之没有否认。
电梯到了五楼。程司白转头看著他。电梯里的光线很均匀,照在他的脸上,把他的表情照得很清楚。他没有看她,目光落在电梯门上,嘴唇抿成一条直线。
“是真的吗?”她问。
裴衍之沉默了三秒。“是真的。”
电梯到了一楼。门打开,两个人站在里面,没有人走出去。
大厅里传来保全走动的声音,脚步声很远,模模糊糊的,像一段信号不好的广播。程司白站在电梯里,手里的公事包垂在身侧,她的手指攥著提手的皮质部分,指尖因为用力而发白。
“裴衍之。”她说。
“嗯。”
“方案的事,我们谈谈。”
裴衍之转头看著她。她的表情很平静,但她的眼睛不是。她的眼睛里有什么东西在动,很慢,很小心,像一个第一次走出安全区的程序,不知道边界在哪里,不知道会不会崩溃,但它还是走出了第一步。
“好。”他说。
程司白走出电梯,脚步声在大厅里响起。裴衍之跟在后面,两个人隔著两三步的距离,一前一后走出大楼。夜风吹过来,十一月的风已经很冷了,程司白把领口往上拉了拉,裴衍之看到了,把外套的拉链拉到最高。
两个人站在大楼门口,谁都没有先开口。
街上的车流很少,路灯的光照在空荡荡的人行道上,投出一片一片的橘黄色光斑。对面写字楼的灯还亮著,有人在加班,窗户里透出白色的光,一格一格的,像一个巨大的监控面板。
程司白转头看著裴衍之。
“去楼下咖啡馆吧。”她说,“这里不方便说话。”
裴衍之看著她的眼睛。那里面有什么东西在动,比刚才在电梯里更快了一些,像一个参数被调高了的进程——还在可控范围内,但已经不是休眠状态了。
“好。”
公司楼下的咖啡馆叫“深夜编译器”,名字是一个工程师取的,因为它二十四小时营业,永远亮著灯,永远有人坐在里面对著萤幕敲键盘。程司白从来没有来过这里——她不喜欢咖啡馆,不喜欢那种坐著不动就能闻到别人身上味道的空间,不喜欢背景音乐里那种故作深沉的爵士乐。
但今天晚上,她推开了门。
咖啡馆里人不多,靠窗的位置坐著一个正在开视频会议的人,角落里有一对情侣共用一副耳机听音乐。背景音乐是钢琴曲,很轻,轻到几乎听不出旋律,只有一些断断续续的音符在空气里飘。
程司白选了一个靠里的位置,卡座,两张沙发面对面,中间隔著一张窄窄的桌子。她把公事包放在旁边,坐下来的时候发现沙发太软了,整个人陷进去了一点。她不习惯这种柔软,身体微微绷紧,调整了一下坐姿,让自己看起来不那么局促。
裴衍之坐在对面。他把电脑放在桌上,没有打开,只是放在那里,像一个不需要使用的工具。服务员走过来,两个人同时说“美式”,然后对视了一眼。
“我还是美式。”程司白说。
“我知道。”裴衍之对服务员点了点头,“两杯美式。”
服务员走了。桌上剩下一盏小台灯,灯光是暖黄色的,照在两个人之间的桌面上,把木纹照得很清楚。程司白看著那些木纹,觉得它们像一段没有规律的日志——看起来是乱的,但如果你花足够的时间去读,也许能找到某种模式。
沉默持续了大约十秒。
程司白先开口了。
“我承认一件事。”她的声音比在会议室里低了一些,低到背景音乐几乎要盖过去,“我想用Raft,有一部分原因是想证明自己。”
裴衍之没有说话,只是看著她。台灯的光照在她脸上,把她下巴的线条照得很柔和,不像在会议室里那么硬。
“三年前离开那家公司之后,我去读了硕士,考了架构师认证,从工程师做到Team Leader。我做这些的时候,脑子里有一个声音一直在说——你要证明给所有人看,你可以。你不需要任何人。”
她停了一下,手指在桌面上轻轻敲了一下。
“但今天在评审会上,唐总问我为什么非要Raft的时候,我发现那个声音还在。不是因为性能更好,不是因为架构更优雅。是因为我想让你看见,我这三年没有白过。”
她说完这些话的时候,手指停止了敲击。桌面上的木纹在灯光下显得很安静,一条一条的,像一段被暂停的波形。
裴衍之沉默了几秒。这几秒里程司白听到背景音乐换了一首,还是钢琴曲,比之前那首更低了一些,音符之间的间隔更长。
“我也承认一件事。”他说,“我想用Paxos,有一部分原因是怕你承担风险。”
程司白的手指在桌面上动了一下。
“你的Raft方案性能确实更好,这个我知道。但我更担心的是——如果上线之后出了问题,你是架构组的负责人。所有人会看著你,问你怎么办。我不想看到那个画面。”
他说这话的时候语气很平静,平静得像在解释一个技术参数。但程司白听到了他声音底下的东西——那里面有一种她熟悉的频率,三年前她在他说“晚安”的时候听到过,在他说“别太累了”的时候听到过,在他说“你可以叫我一起”的时候听到过。
那是担心的频率。
“所以你选Paxos,不是因为你觉得它更好。”她说。
“不是。”裴衍之说,“是因为它更安全。不是对系统安全,是对你安全。”
程司白低下头,看著桌上的木纹。那些纹路在灯光下显得更清楚了,弯弯曲曲的,像一段没有起点也没有终点的路。她的视线沿著其中一条纹路走,从桌子的这一端走到那一端,发现它没有连到任何地方,在中间就断了。
“我三年前说你不够理性。”她说,“但其实我不是那个意思。”
裴衍之没有问她是什么意思。他坐在那里,身体微微前倾,双手放在桌上,手掌朝上,手指微微张开。那是一个开放的姿势——不设防,不防御,不保护自己。
“我是不敢。”程司白说,“我发现自己开始期待你的消息,开始算你什么时候会来找我吃饭,开始在那十五分钟的路程里不想回家。我很害怕。我怕如果继续下去,我会变成我妈那样——把全部的自己交出去,然后被剩下。”
她的声音在最后几个字的时候抖了一下。只有一下,然后就恢复了平稳。但裴衍之听到了。
“你妈没有被剩下。”他说。
程司白抬起头。
“她有你。”裴衍之看著她,台灯的光照在他眼睛里,把瞳孔照得很亮,“你一直在她身边。你没有走。”
程司白觉得眼眶有点热。她咬了一下嘴唇内侧,把那点热意压了回去。
“你也不会被剩下。”裴衍之的声音很轻,轻到像是在自言自语,“如果你不想被剩下,就不会。”
程司白没有说话。她不知道该说什么。她的逻辑系统在这一刻完全失灵了——没有输入可以处理,没有输出可以生成,所有的进程都挂起了,等待某个她没有的资源。
服务员端著两杯咖啡过来,打破了沉默。美式,不加糖不加奶,两杯都冒著热气。程司白端起杯子喝了一口,烫的,舌尖被烫了一下,但那点痛感让她清醒了一些。
“方案的事。”她把杯子放下,“我们需要一个折中方案。”
裴衍之也端起咖啡喝了一口,点了点头。“灰度上线。先用Paxos跑核心业务,用Raft跑边缘业务。对比数据跑一个月,再决定最终方案。”
程司白想了想。“不对。应该是反过来。Raft的性能更好,应该用在核心业务上。Paxos更稳定,用在边缘业务上更合适。”
“边缘业务的网络条件差,更需要稳定性。”
“但边缘业务的流量只有核心业务的十分之一。即使Paxos在边缘网络下表现更好,影响范围也有限。如果Raft在核心业务上出了问题,影响的是全部用户。”
“所以你的意思是把风险最高的方案用在最重要的业务上?”
“我的意思是把性能最好的方案用在最重要的业务上。风险可以通过监控和快速回滚来控制。”
两个人沉默了几秒,各自喝了一口咖啡。
“各退一步。”裴衍之说,“核心业务同时跑两套方案,用一致性哈希分流。百分之五十的流量走Raft,百分之五十走Paxos。对比跑两周,哪个好就用哪个。”
程司白在脑子里快速推演了一下这个方案的可行性。一致性哈希可以保证同一个用户的请求始终被路由到同一个方案,不会出现数据不一致的问题。两周的对比时间足够长,能覆盖到高低峰不同时段的流量。如果其中一个方案出现问题,可以快速切换到另一个方案,影响范围不超过百分之五十。
“可以。”她说,“但两周太短。三周。第一周观察,第二周校准,第三周做最终决策。”
“行。”
两个人同时端起咖啡杯,喝了一口。杯子的边缘碰到了嘴唇,温热的液体流进喉咙,带著咖啡特有的苦味。程司白不喜欢苦味,但她习惯了。习惯是一种很奇怪的东西——你每天都喝一样的东西,不是因为喜欢,是因为你知道它不会让你失望。
“裴衍之。”她放下杯子。
“嗯。”
“谢谢你。”
裴衍之的手指在杯壁上停了一下。“谢什么?”
程司白看著他。台灯的光照在两个人之间的桌面上,把木纹照得很清楚。那些弯弯曲曲的线条在灯光下显得很安静,像一段已经稳定下来的曲线——没有波动,没有异常,一切都在正常范围内。
“谢谢你,还愿意跟我合作。”她说。
裴衍之沉默了三秒。这三秒里背景音乐又换了一首,还是钢琴曲,比之前那首更轻了一些,音符之间的空隙更大,像一段有很多休止符的乐谱——声音和沉默交替出现,沉默比声音更长。
“程司白。”他说。
“嗯。”
“我一直愿意。”
这五个字说出来的时候,他的声音很平,平得像在说一个他一直知道的事实。没有强调,没有修饰,没有多余的语气词。就是一个简单的陈述句,主语谓语宾语,结构完整,语法正确,没有任何歧义。
但程司白听到了这五个字里面的所有东西。
三年。一千多天。从“好,不打扰了”到“我一直愿意”。中间隔著无数个失眠的夜晚,无数次打开对话框又关掉,无数次在走廊上擦肩而过却假装没有看见。他一直在。不是不打扰的那种在,是愿意被打扰的那种在。
她低下头,喝了一口咖啡。咖啡已经不烫了,温的,苦味比刚才淡了一些。杯子里的液面下降了一截,露出杯壁内侧一层浅浅的褐色痕迹,是咖啡干了之后留下来的。
她的耳尖红了。
不是那种被烫到之后的红,是另一种——从皮肤底下慢慢渗上来的,一层一层的,像一个参数被逐渐调高的系统,温度在上升,但没有报警,没有崩溃,一切都在可控范围内。
裴衍之看到了。他没有说破,只是端起自己的咖啡喝了一口,然后把杯子放下,动作很轻,轻到没有发出任何声音。
两个人在暖黄色的灯光下坐著,中间隔著一张窄窄的桌子。桌上放著两杯喝了一半的咖啡,一台没有打开的电脑,一盏照著木纹的台灯。背景音乐还在放,钢琴曲,很轻,轻到像一个人在很远的地方自言自语。
程司白的手机震了一下。
她拿起来看,是何悦发来的消息。
“程姐,唐总说项目下周开始灰度上线,你们准备好了吗?”
她看了一眼对面的裴衍之。他正在看手机,大概是同一条消息——何悦喜欢在群组里同步发送,确保每个人都能同时收到。
她打了两个字:“准备好了。”