首页 第19章

第19章

周一早上七点,陈渡在自动贩卖机前站了半分钟。
卡里余额三块。矿泉水两块。豆浆三块五——买不起。他选了矿泉水。瓶子从货架上滚下来,咚一声砸在取物口。凉的。握在手里掌心发紧。
手机震了。林鹤的消息。
“监控告警模块凌晨跑通了。短信通道调完。方旭测到三点。现在趴桌上睡了。”
下面跟了一张截图。蜂巢的测试日志。短信告警测试用例全部通过。最后一条测试短信的内容写着:“蜂巢监控告警——测试消息。收到请忽略。”
陈渡拧开矿泉水瓶盖。“他今天上班怎么办。”
“请了半天假。周经理批了。说他试运行期间夜班多,该补休。”
“周经理主动批的?”
“主动。还加了一句——‘告诉方旭,以后再测到凌晨,第二天不用来。在家睡。’”
陈渡把瓶盖拧回去。周经理的态度变了。联调之前还想压时间,现在主动给方旭补休。不是良心发现。是试运行数据太好看了。
八点整到嘉和。电梯里碰见张恒。张恒手里没端咖啡,端着杯豆浆——食堂买的,一块五。陈渡看了一眼。
“你也买不起咖啡了?”
“月底。”张恒喝了口豆浆,“工资明天发。今天全身上下还剩三十块。烟抽完这包得戒两天。”
“你烟呢。”
“昨晚抽完了。剩两根在抽屉里。留给关键时刻。”
电梯到十六楼。门一开,余小舟趴在桌上。不是补觉——眼睛睁着,盯着屏幕上的监控面板。蜂巢的监控告警模块已经在测试环境里跑起来了。短信通道绿灯。邮件通道绿灯。审计系统对接——黄灯。
“黄灯什么意思。”
“审计系统的接口文档更新了。上周五赵工加了一条新规则——‘所有告警记录须附带操作时间戳’。我们的短信告警不带时间戳。审计那边拒收了。”余小舟揉了揉眼睛,“不是大问题。加个字段就好。”
“谁改。”
“沈言。”余小舟切到GitHu*页面,“凌晨四点半他提了个PR。在告警模块的短信通道里加了时间戳字段。标题是——‘修审计拒收。顺便骂林鹤。’”
陈渡点开PR。沈言的代码改动很干净。新增字段四行。注释一行。提交信息写着:“短信告警缺时间戳字段,审计拒收。加了。林鹤你写接口的时候能不能把文档看完。”
下面林鹤的回复:“文档看了。审计系统那边的规则是上周五加的。我写接口是上周四。时间差一天。”
沈言回:“那你不更新。”
林鹤:“等你PR。”
沈言发了个表情。系统自带那个翻白眼。
张恒在旁边看完这段对话。豆浆喝完了。纸杯放在余小舟桌上。
“他们在Issue区吵了两天前端框架。现在开始互相甩锅了。”
“不是甩锅。是磨合。”陈渡把水瓶放在桌上,“三年没一起写代码。重新磨合需要时间。”
上午九点半。试运行数据评审会。十七楼小会议室。
郭远明坐在前排。老周坐旁边。冯工带后端组。陈渡站投屏前面。星云那边线上接入——周经理、赵工、方旭。方旭的摄像头开着,人在工位上。头发压塌了半边,眼睛底下青黑还在,但精神看着比上周好。
“试运行第七天。数据同步稳定。时区偏移归零。红色告警零。**告警三条——全是边界条件。已归档。”陈渡切到下一页,“监控告警模块今早跑通。短信通道、邮件通道全部就绪。审计系统对接需要加时间戳字段——沈言已经提了PR。预计今天下午合并。”
周经理在视频那头翻着打印出来的报告。“告警模块的响应时间多少。”
“短信通道一点二秒。邮件通道零点八秒。”余小舟在后排报出数据,“测试环境跑了一百条告警。全部送达。没有延迟超过两秒的。”
赵工推了推眼镜。“审计系统的对接规则是我加的。时间戳字段确实是上周五补的。怪我通知晚了。”
“不怪你。”陈渡把沈言的PR投到屏幕上,“字段已经加了。下午合并之后审计对接就能变绿灯。”
郭远明在iPad上记了一笔。然后抬起头。
“试运行还剩最后三天。周三结束。结束之前——蜂巢的版本号准备跳到多少。”
会议室里安静了一下。
“v1.2.0。”陈渡说,“监控告警模块上线之后,版本号从v1.1.2跳到v1.2。贡献者名单会同步更新。”
“更新几个人。”
“三个。沈言、陆知遥、方旭。”
方旭在视频那头的角落里动了一下。摄像头晃了晃。他伸手扶正。动作有点僵。
“我——贡献者?”他的声音从音响里传出来,干巴巴的,“我代码没写几行。”
“你测了三个月。”陈渡没回头看他,“凌晨三点跑测试的人。Issue区回用户消息的人。试运行夜班盯数据的人。贡献者不一定写代码。”
赵工在旁边点了点头。周经理看了方旭一眼,没说话。
散会之后。张恒在走廊里把最后两根烟掏出来。递了一根给陈渡。陈渡没接。
“戒了。”
“什么时候戒的。”
“上周。林鹤说我胃不好。抽烟伤胃。”陈渡靠在玻璃隔断上,“他把烟灰缸从五零二扔了。走廊的也扔了。”
张恒自己点上。烟雾在冷白灯光下散开。
“方旭进贡献者名单。林鹤跟你商量过没。”
“商量过。他说方旭欠的账还够了。”
“你觉得呢。”
“够了。”陈渡把手**裤兜,“鼎象抄云舟的事,方旭背了三年。地下室跑测试跑了三个月。联调背锅。试运行夜班。Issue区回了几十条用户消息。他不欠什么了。”
张恒吐了口烟。“你原谅他了。”
“不是原谅。”陈渡站直了,“是他还清了。还清之后就不用再提原谅不原谅。账清了就是清了。”
下午两点。蜂巢的GitHu*页面更新。
版本号跳到v1.2.0-rc1。更新日志第一行:“监控告警模块上线。短信通道、邮件通道双通道告警。”第二行:“审计系统对接完成。时间戳字段补充。”第三行:“贡献者名单更新。”
贡献者那栏。现在有四行。
Lin He - 架构与核心开发。
Shen Yan - 前端架构优化。
Lu Zhiyao - 商用适配与接口测试。
Fang Xu - 测试与用户支持。
方旭的名字排在最后。但字体跟前面三个一样大。
陈渡刷新页面。Issue区多了条新帖子。发帖人:FangXu_dev。标题:“我刚看到贡献者名单。手在抖。谢谢。”
下面第一条回复是沈言的。“抖完继续干活。用户支持区积了三个问题。去回。”
第二条是陆知遥。“恭喜。澜数这边的接口测试环境明天搭好。你帮我跑一轮跨境数据。”
第三条是赵工。“方旭。贡献者名单不是终点。是起点。继续。”
**条是林鹤。“别抖了。Issue区等你。”
陈渡把页面关掉。手机震了。方旭的微信。
“陈渡。名单我看到了。”
“嗯。”
“我不知道说什么。欠你的。欠云舟的。欠林鹤的。三年了。今天——”
“欠的还清了。”陈渡打了一行字,“以后不欠了。”
方旭隔了很久没回。然后发过来一张照片。不是机柜。不是测试日志。是一张老照片。三年前的。云舟办公室。八个人站在公司logo前面。方旭站在最边上。笑得拘谨。
照片下面一句话:“这张照片我藏了三年。不敢看。今天敢了。”
陈渡把照片放大。八个人。他自己站中间。白衬衫。林鹤搭着他的肩膀。沈言蹲在前面。陆知遥靠着墙。宋知渔举着咖啡杯。纪鸣比了个耶。余小舟——那时候还不是云舟的人——不在照片里。方旭在最边上。灰色衬衫。头发比现在多。
他存了照片。回了两个字。
“存了。”
下午四点。余小舟在机房里升级蜂巢的版本。v1.2.0-rc1部署到测试环境。短信告警跑通。邮件告警跑通。审计对接绿灯。
冯工在后端组盯着屏幕。“告警模块上线之后,试运行最后三天的监控压力会小很多。之前告警靠人工盯。现在系统自动推。”
“人工盯的误报率多少。”
“百分之三。系统自动推——赵工测的是万分之五。”冯工摘下眼镜擦了擦,“差距不是一般大。”
陈渡靠在机柜上。A3机柜上的黄标签还在。上面“已隔离”三个字被红笔划掉了。旁边用蓝笔写了新的字——“已恢复。监控告警已上线。”
是余小舟写的。
下午六点。陈渡去食堂。刷卡机显示余额:1.50元。打菜阿姨看了他一眼。多舀了勺土豆丝。又多扣了勺***。油汪汪铺在米饭上。
“明天发工资。”阿姨把餐盘推过来,“今天多吃点。”
“卡里没钱了。这顿——”
“不收你钱。”阿姨把刷卡机按了取消,“你这个月瘦了。多吃。”
陈渡端着餐盘坐下。***嚼在嘴里。肥肉化开。油香从舌尖漫到嗓子眼。手机在桌上震了。
林鹤的消息。
“食堂卡没钱了?”
“你怎么知道。”
“余小舟说的。他说你中午只喝了矿泉水。”林鹤打字不快,“我在五零二做了饭。晚上过来吃。”
“你做饭?”
“电饭煲。煮饭。菜是王姨给的。炒青菜。”
“你什么时候学会做饭的。”
“上周。王姨教的。她说煮饭比泡面便宜。大米三块一斤。能吃三天。”
陈渡把筷子放下。
“我七点到。”
晚上七点。陈渡站在五零二门口。手举起来。没敲。拿出裤兜里那把备份钥匙。银色。上面贴着白色医用胶带。胶带上几个字——“五零二的备份钥匙。不用翻脚垫了。”
钥匙***。锁舌弹开。门开了。
屋里多了两样东西。一个电饭煲。放在厨房水槽旁边。插座是从墙上牵的。一个炒锅。放在一个电磁炉上。电磁炉是旧的。表面有一层灰。擦过了。
林鹤站在厨房里。围着一条旧毛巾当围裙。筷子在锅里翻青菜。油溅起来。他往后躲了一下。
“油温太高了。”
“你倒了多少油。”
“王姨说‘适量’。”
陈渡走过去。低头看锅里。青菜在油里泡着。不是炒。是炸。
“你是不是把油当水加了。”
“没。王姨说适量。我不知道适量是多少。”林鹤把火关小,“下次少倒。”
陈渡接过筷子。把青菜从油里捞出来。放在盘子里。油沥在盘底厚厚一层。
“你以前在云舟。每天点外卖。”
“嗯。”
“三年在外面。怎么过的。”
“泡面。”林鹤把电饭煲打开。米饭的蒸汽涌出来。热乎乎的白雾扑在脸上。“泡面不用放油。”
两个人坐在地上。折叠床推到墙角。电饭煲搁在地上。一盘油泡青菜。两碗米饭。筷子是一次性的——便利店买的。
陈渡夹了一筷子青菜。油太重。但咸淡刚好。
“王姨盐放多少跟你说了。”
“说了。一小勺。”林鹤把米饭塞进嘴里,“盐我量了。油没量。”
“下次油也量。”
“嗯。”
窗户开着半扇。晚风灌进来。巷子里**摊又出摊了。孜然味飘进屋里。混着米饭的热气。林鹤穿着那双灰色防滑拖鞋。陈渡光着脚——进门的时候把皮鞋脱在门口了。
“方旭下午给我发消息。说贡献者名单里有了他的名字。”林鹤夹了一筷子菜,“他说不敢相信。”
“你回了什么。”
“回——‘别不信。Issue区三个问题还没回。去干活。’”林鹤把筷子放在碗上,“他不适合听好话。听好话会飘。”
“你怕他飘。”
“不是怕。是他自己会不自在。”林鹤端起碗,“方旭这个人。背锅背久了。突然不背了会觉得轻。轻了就容易飘。”
“所以你压着他。”
“不是压。是让他知道——不背锅不代表没事干。有事**什么都踏实。”
陈渡把碗里的米饭吃完。碗底沾着油。他放下筷子。
“贡献者名单——你的署名。什么时候改。”
“试运行结束那天。”林鹤把碗放在地上,“周三。v1.2.0正式发布。到时候把作者署名从linhe_dev改成我的本名。”
“然后呢。”
“然后蜂巢就不是个人项目了。是开源项目。有五个贡献者。”
“六个。赵工也算。”
“他算星云的人。不一定愿意署名。”林鹤靠在床边,“但他做的事比署名重要。极限测试。时钟补偿。审计规则。他在星云内部推蜂巢,推得比任何人都用力。”
“周经理知道赵工在推蜂巢吗。”
“知道。上次极限测试报告出来之后,周经理私下找赵工谈了一次。问他——‘蜂巢这套东西能不能替代星云自研的数据中台。’赵工说——‘能。但需要时间。’周经理没再问。”
陈渡把空碗摞在电饭煲旁边。窗外霓虹灯亮了。红蓝交替的光映在对面墙上。
“周经理在考虑用蜂巢替代星云自研。”
“不是马上。但他在考虑。星云自研的数据中台维护成本太高。三年了还没跑稳。蜂巢的试运行数据比星云自研的好。他心里有数。”
“郭远明知道吗。”
“知道。郭远明上周跟周经理通了一次电话。内容是试运行数据。郭远明没提蜂巢。只说了四个字——‘数据不错。’”
陈渡站起来。走到窗边。对面楼的灯火亮了一半。巷子里**摊的烟顺着风飘上来。孜然味呛进鼻子里。
“他们两个在电话里谈了什么。”
“郭远明把试运行数据发给了周经理。时区偏移归零。红色告警零。容灾切换七秒三。消息队列积压深度零点零三。误报率零。预热成功率百分之百。”林鹤把炒锅端到水槽里,“周经理看完数据之后回了一句话——‘你们那个转换中间件,我们这边想正式引用。’”
“郭远明怎么回。”
“‘引用可以。致谢名单里加蜂巢和作者。’”
陈渡转过身。“周经理答应了。”
“答应了。所以试运行结束之后,星云的正式版本里会有蜂巢的署名。”林鹤拧开水龙头。水冲在锅底。油花浮起来。“三年前星云抄了云舟的代码。三年后他们引用蜂巢。不是抄。是正式引用。”
“你等了三年。”
“不是等。”林鹤把锅放在水槽边,“是写了三年代码。让他们没理由抄。只能引用。”
晚上九点。陈渡回到五零一。皮鞋脱在门口。光脚踩在地板上。手机在裤兜里震了。
不是林鹤。是宋知渔。
微信消息。三年没联系的人。突然冒出来一句话。
“蜂巢的监控告警模块我看了。短信通道用的***接口不对。北京这边联通和电信的接口格式不一样。移动的也有差异。你让林鹤改改。不然北方用户收不到告警短信。”
陈渡站在门口。脚底板贴着凉地板。手机屏幕上的字一个字一个字跳。
“你在北京怎么看到的。”
“陆知遥发给我的。他把蜂巢的全部代码打了个包。压缩了发过来。我解压完花了两天看完全部模块。”宋知渔回得很快,“监控告警的短信通道用的是南方的***接口。北京这边三家***接口格式全不一样。不改的话北方用户告警短信收不到。”
“你改了没。”
“改了。刚写完补丁。明天提PR。”宋知渔发了个文件过来。文件名叫“sms_gateway_north_china_patch”。十六K*。注释写得清楚。每条接口的差异都标注了。
“你还做运维吗。”
“做。在北京一家云服务商。天天加班。没空看手机。陆知遥上周给我打电话。说蜂巢上了。让我看。我拖了三天才下载。看完就发现短信通道的坑。”宋知渔又发了一条,“林鹤这个毛病三年没改——写接口的时候只管自己那边的环境。不管别的地方能不能用。”
陈渡靠到门框上。“他在南方。手头只有南方的测试环境。”
“我知道。所以没骂他。帮他把北方接口补上。”宋知渔发了张照片。机房里一排机柜。蓝色指示灯闪烁。角落里放着一碗泡面。
陈渡认出那个碗。跟三年前云舟办公室那个一样。康师傅红烧牛肉面。纸碗。叉子插在旁边。
“你还吃这个。”
“嗯。便宜。”宋知渔写道,“云舟没了之后我换了三份工作。每次入职第一天都吃这个。习惯了。”
陈渡问:“你现在的公司知道你在改蜂巢吗?”
“不知道。我是下班改的。公司项目是公司项目,蜂巢是蜂巢。不冲突。”宋知渔隔了几秒补了一句,“但如果蜂巢的监控告警能跑稳,我可以跟老板说——我们公司也换个数据中台。现在用的这套太老了,还是三年前的产品,维护费一年四十万。”
“你们老板会同意?”
“不知道。但陆知遥的澜数科技已经在用了,如果你们嘉和和星云也在用,加上北京的市场需求——这套架构就能推广出去。”宋知渔打了很长一段话,“****做了三年运维,知道这边的中小金融公司缺什么。缺一个干净、便宜、不开后门的数据中台。蜂巢要是能接住这个市场,我负责把北方机房全推一遍。”
陈渡盯着屏幕。把手机翻过来看。碎屏的裂纹恰好印在宋知渔的头像上。头像是一个服务器机柜的侧面,贴着张褪色的贴纸——三年前云舟开业做的那批冰箱贴。
“你做运维三年,还留着云舟的冰箱贴。”
“留着。贴在我负责的每一台核心服务器上。我们公司的开发问我这是什么logo。我说是一个倒闭的公司的。他们问为什么贴。我说——那家公司做的东西是对的,只是时间不对。现在时间对了。”
陈渡存下截图,给宋知渔回了简短三个字:“继续改。”
宋知渔回得很快。“明天提PR。让林鹤准备好——我写的补丁注释比他多。他要是批得慢我就打电话骂他。”
“你有他电话?”
“有。三年没打。明天可能打。”
晚上十点半。陈渡坐在床边。手机亮了。
林鹤转发了一条GitHu*通知。新PR提交。“短信通道北方***接口补丁”。提交人:SongZhiyu_dev。标题只有一行:“修北方短信接口。林鹤你写完代码能不能测一下别的地区。”
下面林鹤已经回了。“北方接口没有测试环境。”
宋知渔回:“我有。我测完了。十六家***全部跑通。”
林鹤隔了两分钟才回。“十六家。北京的***你都测了。”
“测了。联通五家。移动六家。电信五家。全部通过。”宋知渔又补了一条,“我机房里有测试卡。每家的SIM都有。你那份接口文档只写了南方的三家。”
赵工在评论区插了一楼:“这个补丁我看了。北方接口的差异主要是短信中心号码格式。南方用+86开头。北方有些***用0086开头。补丁兼容了两种格式。代码干净。”
沈言也插了一楼:“宋知渔你三年没写代码。运维脚本的水平倒是没退步。”
宋知渔回沈言:“运维不写代码早**了。****天天写脚本。Shell写到凌晨两点。”
陆知遥在最后回了一条,像是给所有人说的,只有四个字:“都回来了。”
陈渡把手机放在枕头旁边,没有睡着。窗外霓虹灯灭了。巷子里**摊收了,传来铁架子拖过地面的声响。电动车报警器又响了,这次只响了两秒。他闭上眼睛——半夜十二点,手机最后一次震动。林鹤发了一张截图:蜂巢贡献者列表,现在显示五个人,第五行是“Song Zhiyu - 北方运维适配与短信**”。截图下面附了一句话。
“五个。还剩三个。”

==>戳我阅读全本<===

设置
手机
书页