一秒记住【笔趣阁】
xbiquge365.net,更新快,无弹窗!
第三百零八章投资人战争(第1/2页)
首都机场的航站楼灯火通明,炜杰的车停在贵宾通道出口。张建国拖着一只黑色登机箱走出来,风衣领口沾着夜航的寒气。
“刚下飞机就给你打电话。“张建国把箱子扔进后座,“饿坏了,先找个地方吃东西,我有话要说。“
炜杰把车开到东三环边的一家粤式茶餐厅。这个时辰店里客人不多,两人在角落卡座坐下,张建国要了碗及第粥和一笼虾饺。
“赵明远。“张建国咽下一口粥,开门见山,“这三天他在北京见了至少六拨投资人。话风很一致——千度技术团队崩了,核心工程师被搜乎挖走一半,产品数据造假,索引量虚报了百分之三十。“
炜杰手里的茶杯停在半空。
“他的目标很明确。“张建国放下勺子,“搅黄你们的下一轮融资。你们不是计划在春节前后启动第二轮融资吗?“
“二季度。“炜杰说。
“那就是了。“张建国点头,“他这是提前埋雷。明天晚上,长城饭店,有个投资人年会,北京圈子里有头有脸的都会去。赵明远也会出席。你去不去?“
炜杰看着杯里浮动的茶叶。王志远留下的烂摊子还没收拾干净,索引组的修复工作进行到一半,何明还在公司加班审计代码。腾信那边三个月的倒计时每天都在走。但这场仗如果不去打,就等于把阵地拱手让人。
“去。“
“好。“张建国露出笑意,“明天我来接你。“
长城饭店的宴会厅铺着厚重的地毯,水晶吊灯把每个人的表情照得清清楚楚。炜杰穿了一套深蓝色西装,去年秋天在秀水街做的,料子一般,但剪裁合身。
张建国带着他穿过人群,一路介绍。艾迪吉资本的合伙人周正,四十出头,戴一副金丝边眼镜,握手时力道很大。红杉中国的李薇,短发,说话快得像机关枪。黄河创投的老曹,六十岁了,是圈子里出了名的“老炮儿“,投过三家后来在纳斯达克上市的企业。
“这位就是千度的炜杰。“张建国说,“合伙人,公司所有的产品设计都是他一手搭起来的。“
老曹上下打量炜杰:“听说你们索引出问题了?“
“节点故障,已经修复。“炜杰语气平静,“昨天完成的回滚,搜索增长曲线今天已经走平,数据在公司的监控后台里,随时可以看。“
老曹“嗯“了一声,不置可否。
人群忽然安静了一瞬。炜杰不用回头也知道谁来了——赵明远穿着一身浅灰色西装,领口别着搜乎的徽章,正从宴会厅另一头走过来。他看见炜杰时脚步明显顿了一下,脸上的笑容僵了半秒,随即恢复如常。
“炜杰。“赵明远伸出手,“真没想到在这儿见到你。听说你们最近挺忙?“
炜杰握住那只手:“比不上你忙。三天见六拨投资人,这份精力我们比不了。“
赵明远的瞳孔收缩了一下。他没想到炜杰已经知道了他的行踪。
“搜乎最近在准备新一轮融资,多走动走动是应该的。“赵明远松开手,语气轻松,“不像你们,听说技术团队出了点状况?“
“什么状况?“炜杰问。
“我听到的版本是,核心工程师离职,产品数据有水分。“赵明远摊了摊手,“圈子里传得挺厉害的,我还替你们担心呢。“
周围的几个投资人都在听。周正推了推眼镜,李薇抱着胳膊,老曹掏出烟盒又塞了回去。
“核心工程师。“炜杰重复了一遍这个词,“你说的是王志远?“
赵明远笑而不语。
“王志远,北大博士,在我公司干了八个月。“炜杰的声音不高,但足够让周围的人听清楚,“八个月里他接触的是分词模块,从来没有进入过核心架构层。我们上周发现他在同步层参数上做了手脚,所有被篡改的节点已经全部回滚。这是内部审计报告。“
炜杰从西装内袋抽出一份装订整齐的文件,递给周正。
“报告里有完整的操作日志、回滚记录和修复后的性能对比。王志远留下的每一个改动都有签名和时间戳。各位如果有兴趣,明天可以来千度办公室,我让工程师现场演示。“
周正接过报告翻了翻,递给李薇。李薇扫了几眼,眉毛挑了起来。
“数据造假更是无稽之谈。“炜杰转向赵明远,“千度的索引量从成立第一天起就是开放的,任何人都可以输入关键词验证。倒是搜乎——你们的索引量是怎么统计的?抓取到的页面都算,还是只算实际能响应搜索的?“
赵明远的脸色变了。
“我们——“
“我帮你说完。“炜杰打断他,“搜乎的索引量统计包含大量死链和重复页面,实际可用索引不到公布数字的六成。这个数字你们内部技术团队清楚,投资人心知肚明。千度不做这种事。“
宴会厅里一片寂静。
张建国适时开口:“千度的数据我看过。我投的钱,我负责。他们上个月的搜索增长率是百分之四十七,独立用户数突破两百万,这些都是我可以背书的数据。“
张建国的分量在场的人都清楚。香港那边几个大基金都听他的推荐,他投过的项目成功率在圈子里排前三。
(本章未完,请点击下一页继续阅读)第三百零八章投资人战争(第2/2页)
老曹终于点了点头:“年轻人,有底气。“
但李薇没有松口。她把报告还给炜杰,问了一个尖锐的问题:“王志远这件事,说明你们的代码审核机制有漏洞。一个分词工程师怎么能接触到同步层参数?“
“问得好。“炜杰说,“这是我们最大的教训。千度的代码权限管理是按模块划分的,王志远利用职务便利,在提交分词代码时夹带了同步层的参数修改。这个漏洞现在已经堵上了——所有跨模块的提交必须经过双人复核,核心架构层的任何改动需要三个技术负责人同时签字。“
他停顿了一下,补充道:“这个教训值八十万,但我们学到了。“
“八十万?“周正问。
“王志远从搜乎那边拿的价码。“炜杰看了赵明远一眼,“八十万,换一个可能拖垮千度三个月的漏洞。挺划算的买卖。“
赵明远的脸涨红了。他没想到炜杰会在这种场合把数字抖出来。
“炜杰,说话要负责。“赵明远的声音冷了下来,“搜乎和千度是竞争关系,但我们不会用下三滥的手段。“
“是吗。“炜杰从口袋里掏出一张纸,“这是王志远在北京银行的转账记录,八十万,付款方是搜乎科技的关联公司‘搜乎信息服务有限公司‘。需要我把复印件给在场的各位发一份吗?“
赵明远盯着那张纸,嘴唇动了动,没说出话来。
老曹忽然哈哈大笑起来:“行了行了,年轻人斗气,我们老家伙看戏。炜杰是吧?明天上午我去你们办公室,让我看看那个现场演示。“
“欢迎。“炜杰说。
同一时刻,中关村太平洋国际大厦十层,千度办公室的灯光还亮着。
何明一个人坐在工位上,面前摆着三台显示器。他的眼镜滑到鼻尖上,头发乱得像鸟窝,手边放着半杯已经凉透的咖啡。
他正在审计王志远改过的每一段代码。
三天前,炜杰交给他一个任务:把王志远在职期间提交的所有代码全部过一遍,不仅是同步层,是所有模块。何明当时还觉得小题大做——一个分词工程师,能碰的东西有限。
但现在他不这么想了。
第一个发现是在查询解析模块。王志远修改了一个看似无关紧要的字符串拼接函数,把默认的分隔符从逗号改成了竖线。单独看这个改动没有任何问题,甚至能通过所有单元测试。但何明注意到,这个改动和同步层的参数篡改结合在一起时,会导致查询结果在缓存阶段出现键值冲突。
第二个发现在日志轮转模块。王志远加了一行时间戳格式的代码,把“年年年年-月月-日日“改成了“日日/月月/年年年年“。这个改动被注释标记为“适配海外服务器格式“,但千度根本没有海外服务器。何明追查下去,发现当日志轮转按这个格式运行时,会触发一个边界条件,导致旧日志文件在特定日期不会被正常清理。
第三个、第四个、第五个……
何明越查越心惊。王志远不只是改了同步层,他在六个不同的模块里留下了“微调“。每一个改动单独看都无害,甚至能通过代码审查。但把它们连起来看,就是一个精密的陷阱。
如果六个模块同时按王志远预设的路径运行,查询解析的键值冲突会不断累积,日志轮转的边界条件会在特定日期引爆磁盘空间,而同步层的参数篡改会在最关键的时刻切断备份通道。
系统性雪崩。
何明靠在椅背上,后背全是汗。这不是一个离职员工发泄不满的恶作剧,这是一份经过精心设计的自杀蓝图。
他拿起电话打给炜杰,但话筒里传来占线音。炜杰还在那个投资人聚会上。
何明放下电话,继续查。他的直觉告诉他,还有更深的东西没挖出来。
他开始检查系统日志。不是业务日志,是操作系统层面的内核日志。王志远在职期间,每天晚上十一点到十一点半,服务器上都有一个定时进程在运行,进程名是“系统同步备份“,看起来像是系统自带的备份服务。
但何明知道千度的备份策略。所有备份任务统一由运维组的“备份主控“调度,不会用这种散装的定时任务。
他调出这个进程的完整调用链,一层一层往下追。调用链的末端指向一个隐藏在日志系统深处的脚本文件,文件名是一串随机字符,藏在日志归档目录下一个叫“第三方归档“的深层子目录中。这个目录的名字伪装成第三方日志存放路径,连何明都是第一次注意到它的存在。
何明打开那个脚本。
屏幕上的代码让他的呼吸停滞了。
那是一个定时触发器。触发条件写得清清楚楚:如果系统时间在一九九九年二月一日零点之前,且千度的存储层版本标识不等于“协同版二点一点七“,则自动执行以下操作——
清空全部索引缓存。
重置存储层版本标识为出厂默认值。
删除近三十天的增量备份索引。
何明看了一眼电脑右下角的时间显示。
1999年1月12日,晚上九点十七分。
距离触发器的截止时间,不到二十天。