第20章 新规则
系统压测的那天早上,林叙收到了一份特殊的“礼物”。
早上八点,他像往常一样走进办公室。连续几天的熬夜让他脚步有些虚浮,但他还是强迫自己打起精神。今天要压测,要模拟真实用户场景,要确保系统在压力下稳定运行。这是上线前的最后一道关卡,不能出任何差错。
推开办公室的门,里面已经有人了。
老吴蹲在服务器旁边,耳朵贴着机箱,眉头紧锁。小玲在整理培训材料,打印出来的纸张堆了半张桌子。李薇和王锐挤在一台电脑前,低声讨论着什么。张明和陈芳站在白板前,指着上面的架构图争论。老张在角落里打电话,语气不太好,似乎在和财务部的人争辩预算。
一切都和过去七天一样。
但又有点不一样。
因为林叙的桌子上,多了一个东西。
一个很普通的牛皮纸文件袋,没有署名,没有快递单,就那样静静地放在他的键盘上。文件袋很薄,里面似乎只有几页纸。
“谁放的?”林叙问。
办公室里的人都抬起头。
“不知道。”老吴说,“我来的时候就在了。可能是行政部送来的文件?”
“行政部送文件不会这么早。”小玲看了看表,“而且,他们一般会放在门口的文件篮里,不会直接放桌上。”
林叙皱了皱眉,拿起文件袋。
很轻。他撕开封口,里面是几张A4纸,打印着密密麻麻的字。
他抽出来,只看了一眼,脸色就变了。
是一份“项目风险评估报告”。
报告不长,只有三页,但内容极其详实。从技术架构的潜在漏洞,到数据安全的合规风险,到团队成员的背景缺陷,再到商业模式的不可持续性,每一点都有理有据,甚至引用了大量的内部数据和案例分析。
报告的结论,用加粗的字体写着:
“该项目存在重大系统性风险,技术架构薄弱,数据安全存疑,团队能力不足,商业模式未经验证。建议立即暂停,进行全面的风险评估和整改。在风险未消除前,不应投入任何资源,更不应上线运营。”
报告的最后,没有署名,只有一个打印的落款:“星澜集团风险管理委员会(建议稿)”。
风险管理委员会。
林叙听说过这个部门,是集团新成立的,名义上负责评估所有重大项目的风险,但成立以来一直没什么存在感,据说只是个摆设。
但这份报告,绝对不是摆设。
它太专业了,太细致了,每一刀都砍在项目的要害上。
比如技术架构部分,报告指出了他们用的开源消息队列RabbitMQ“在高并发下存在消息丢失的风险”,建议换成商业版的Kafka。但Kafka一年的授权费就是几十万,他们根本用不起。
比如数据安全部分,报告质疑他们“通过非公司网络传输数据,规避了公司安全审计”,认为这是“严重违规行为”。这确实是他们的软肋,但如果不这么做,项目早就被赵启明的“新规”卡死了。
比如团队成员部分,报告特别指出了小玲“怀孕可能影响工作投入”,老张“临近退休,动力不足”,老吴“技术陈旧,跟不上最新趋势”。虽然话说得难听,但某种程度上,是事实。
比如商业模式部分,报告认为“社区服务匹配的收费模式未经市场验证,预期收入过于乐观,很可能无法覆盖成本”。这也是实话,他们确实没把握。
这份报告,像一把手术刀,精准地切开了这个项目的所有伪装,露出了里面脆弱的、不堪一击的内核。
林叙感觉手心在冒汗。
这份报告,如果正式提交给风险管理委员会,甚至直接提交给董事会,那这个项目就完了。沈清辞也保不住。
更可怕的是,这份报告,是谁写的?
风险管理委员会?不太可能。那个部门平时不做事,怎么会突然这么“专业”?
赵启明?有可能。他有动机,也有能力写出这么专业的报告。但以赵启明的风格,如果要动手,不会用这么迂回的方式,他会直接出招,一击必杀。
那会是谁?
林叙抬起头,看向办公室里的其他人。
每个人都还在忙自己的事,没有人看他。但那种专注,有点刻意。
是团队里的人写的?
不可能。这个团队虽然才组建七天,但每个人都拼了命在干活,都指着这个项目翻身,没理由自毁长城。
那会是谁?
“林哥,怎么了?”小玲注意到他脸色不对,走过来问。
林叙迅速把报告塞回文件袋,摇摇头。
“没事,一份技术文档。”他说,声音尽量平静,“你忙你的。”
小玲狐疑地看了他一眼,但没多问,回到座位上。
林叙把文件袋塞进抽屉,锁上。
然后,他深吸一口气,强迫自己冷静。
“好了,大家停一下,我们开个会。”
八个人围过来。
“今天压测,是关键一仗。”林叙说,声音很稳,听不出任何异常,“压测通过,我们下周上线。压测不通过,我们得延期,甚至可能重新设计架构。所以,不能有丝毫大意。”
他在白板上写下压测的几个关键指标:
“1.并发用户数:100。2.响应时间:95%的请求在1秒内完成。3.错误率:低于1%。4.系统资源:CPU使用率不超过80%,内存使用率不超过70%。”
“王锐、张明,你们俩负责执行压测,记录数据。李薇、陈芳,你们监控用户体验,特别是匹配的准确性和满意度。老吴,你盯服务器,有任何异常立刻报告。小玲,你记录整个过程,出压测报告。老张,你算一下压测的云服务成本,别超预算。”
任务分配下去,大家各自准备。
林叙回到座位,打开电脑,手指放在键盘上,但一个字也打不出来。
他的脑子里,全是那份报告。
那些尖锐的、毫不留情的批评,像一根根针,扎在他的心上。
“技术架构薄弱。”
“数据安全存疑。”
“团队能力不足。”
“商业模式未经验证。”
每一句,都像在嘲笑他这七天来的努力,嘲笑他的天真,嘲笑他以为能靠技术和拼命,杀出一条血路。
他握紧了拳头,指甲陷进掌心,带来一阵刺痛。
不。
他不能被打倒。
这份报告,不管是谁写的,目的都很明确:打击他的信心,瓦解团队的士气,在关键时刻制造混乱。
如果他慌了,如果他动摇了,那正中对方下怀。
他必须稳住。
不仅自己要稳住,还要稳住团队。
“林哥,压测脚本准备好了。”王锐说。
“好,开始。”林叙站起来,走到王锐的电脑前。
屏幕上,压测工具已经启动,100个虚拟用户的头像整齐排列,状态显示“就绪”。
“开始。”
王锐按下回车键。
瞬间,屏幕上的数据开始狂飙。
请求数:0, 100, 500, 1000……
响应时间:10ms, 50ms, 100ms, 200ms……
错误率:0%, 0.1%, 0.2%……
服务器监控屏幕上,CPU使用率从20%飙升到50%,内存使用率从30%涨到60%。
办公室里一片安静,只有服务器风扇的轰鸣,和键盘偶尔的敲击声。
所有人都在盯着屏幕,表情凝重。
林叙的心提到了嗓子眼。
前三十秒,一切正常。
响应时间稳定在200毫秒左右,错误率0.1%,系统资源使用率在安全范围内。
但第三十五秒,情况突然变了。
响应时间猛地跳到了500毫秒,然后是800毫秒,然后是1秒、2秒……
错误率从0.1%飙升到5%,然后是10%……
CPU使用率突破了80%,内存使用率突破了70%……
“不对劲。”张明皱眉,“响应时间怎么会突然变长?是数据库问题?”
“我看看。”老吴快速敲击键盘,调出数据库监控。
“数据库连接数满了!”老吴脸色一变,“连接池设置太小了,只有50个连接。100个并发用户,连接不够用!”
“改连接池参数!”林叙说。
“正在改!”张明手指在键盘上飞舞,修改配置文件,重启服务。
但重启需要时间。
这期间,压测还在继续,错误请求在堆积,响应时间越来越长。
“停掉压测!”林叙说。
“停不了!”王锐急得满头汗,“压测工具卡住了,停不掉!”
“强制结束进程!”
“在结束,但需要时间!”
办公室里一片混乱。
服务器风扇的轰鸣声越来越响,像一头垂死挣扎的野兽。监控屏幕上的数字在疯狂跳动,全是红色警报。
林叙感觉后背全湿了。
这是压测,不是正式上线,出问题很正常。但关键是,他们没预料到连接池的问题,这说明他们的测试不够充分,架构设计有缺陷。
如果这是正式上线,这就是一场灾难。
三分钟后,压测工具终于被强制结束。
但系统已经半死不活了。CPU使用率还在90%高位,内存使用率85%,数据库连接池虽然调大了,但系统响应还是慢。
“清理缓存,重启所有服务。”林叙下令。
“在重启。”张明和老吴手忙脚乱。
十分钟后,系统终于恢复了正常。
但压测数据,已经惨不忍睹。
平均响应时间:800毫秒。95%线响应时间:2.5秒。错误率:8.7%。系统资源使用率峰值:CPU 92%,内存 88%。
没有一个指标达标。
办公室里一片死寂。
每个人都低着头,不敢看林叙。
“连接池的问题,为什么没提前发现?”林叙问,声音很平静,但平静下是压抑的怒火。
“我……我以为默认配置够了。”张明声音很小,“以前在小项目上,50个连接确实够了。没想到并发一高,就不行了。”
“压测的目的,就是为了发现这种‘没想到’。”林叙说,“如果今天没压测,直接上线,会发生什么?”
没人说话。
“会发生雪崩。”林叙自己回答,“用户请求积压,系统越来越慢,最后彻底挂掉。然后,街道办会投诉,刘主任会失望,项目会黄,我们会滚蛋。”
他说得很直白,很难听。
但每个人都知道,这是事实。
“林哥,对不起……”王锐说。
“对不起没用。”林叙摇头,“我们要的,不是道歉,是解决问题。连接池参数调大了,问题解决了。但我们要问自己,为什么会出现这种低级错误?是我们的测试流程有问题?是我们的架构评审不严格?还是我们,太自信了,觉得这种小项目,不会出大问题?”
他停顿了一下,目光扫过每一个人。
“这份报告,你们看看。”
他从抽屉里拿出那份文件袋,抽出报告,扔在桌上。
“今天早上,有人放在我桌上的。里面写了什么,你们自己看。”
李薇拿起报告,快速浏览。看完,脸色变了,递给王锐。王锐看完,脸色也变了。报告在八个人手里传了一圈,每个人的表情都很复杂。
愤怒,羞愧,不甘,还有一丝……恐惧。
“这份报告,虽然不怀好意,但说的很多问题,是事实。”林叙说,“我们的技术架构,确实有薄弱环节。我们的数据安全,确实在打擦边球。我们的团队,确实有短板。我们的商业模式,确实没经过验证。”
他顿了顿,声音更沉了。
“但这就是现实。我们没有豪华的团队,没有充足的预算,没有成熟的商业模式。我们有的,是这间破办公室,是这台二手服务器,是我们八个人,和我们那点不肯认输的劲。”
“所以,我们没资格犯错,没资格大意,没资格以为‘差不多就行’。因为我们的容错空间,是零。一次错误,就是万劫不复。”
“今天这个连接池问题,给我们敲响了警钟。还好,是压测发现的,不是正式上线。但下一次,我们可能没这么幸运。”
“所以,从现在起,我们要改变。改变工作方式,改变思维方式,改变我们做事的标准。”
他走到白板前,擦掉上面的所有内容,重新写下:
“新规则:
1.所有技术决策,必须有至少两个备选方案,必须做充分的对比测试。
2.所有代码提交,必须经过至少两人审查,必须有完整的单元测试。
3.所有数据操作,必须有完整的日志和回滚机制,必须有双人复核。
4.所有风险评估,必须前置,必须在设计阶段就考虑周全。
5.所有沟通,必须书面,必须有记录,不能口头传递重要信息。
6.所有承诺,必须保守,做不到的绝不承诺,承诺的必须做到。
7.所有失败,必须复盘,必须找出根本原因,必须有改进措施。
8.所有成功,必须归零,不能骄傲,不能松懈,永远保持饥饿感。”
他写得很慢,很用力。
每一笔,都像刻在石头上。
写完,他转过身,看着大家。
“这八条,是我们的新规则。从今天起,我们按这个规则做事。同意的,留下。不同意的,现在可以走,我绝不为难。”
办公室里安静了几秒。
然后,老吴第一个站起来。
“我同意。我老了,技术是有点旧。但我愿意学,愿意改。这个项目,我跟到底。”
小玲第二个站起来,眼眶有点红。
“我也同意。虽然我怀孕了,但我不会拖后腿。我会努力,做到最好。”
老张叹了口气,站起来。
“我这把年纪,本来想混到退休。但这次,我想拼一把。我同意。”
李薇、王锐、张明、陈芳,四个人同时站起来。
“我们同意。”
林叙看着眼前的七个人,心里涌起一股热流。
“好。”他点头,声音有点哑,“那我们就按新规则,重新开始。今天压测暴露的问题,我们今天解决。连接池参数调整,数据库索引优化,缓存策略改进,架构评审加强。明天,重新压测。不通过,不睡觉。”
“好!”八个人,异口同声。
办公室里,气氛重新燃了起来。
那份报告带来的阴霾,被这股热气冲散了。
林叙回到座位,打开电脑,开始工作。
这一次,他的眼神很坚定,很清澈。
像被大雨洗过的天空,干净,明亮,一望无际。
他知道,前路依然艰难,对手依然强大,风险依然巨大。
但他不怕了。
因为他有了规则,有了团队,有了方向。
更重要的,他有了那种“把不可能变成可能”的勇气和决心。
窗外,地下二层那个小气窗,透进来的阳光,似乎亮了一些。
照在斑驳的水泥地上,照在破旧的桌子上,照在每个人专注的脸上。
温暖,明亮,充满希望。
而那份不具名的报告,被林叙锁进了抽屉最深处。
它没有击垮他,反而让他更强大。
像一块磨刀石,把他这把钝了的刀,重新磨得锋利,磨得雪亮。
他知道,这只是开始。
更激烈的战斗,还在后面。
但他已经准备好了。
准备好,迎接一切挑战。
准备好,用新的规则,打一场新的仗。
这一次,他不会输。
也不能输。
因为,他已经没有退路了。
而退路这种东西,有时候,是好事。
因为它逼着你,只能向前,不能回头。

