如果说马来西亚子公司上线切换作为全公司参与级别(各业务部门同时参加)的“渡河”第一战。
那在真正意义上渡河战役之前的前哨战则是系统开发,这是独属于华兴It的独角戏。
四周前的2016年10月21日,凌晨1点17分。
华兴坂田总部G1大楼23层作战指挥中心,空调出风口不停喷出新风。
此刻窗外的城市灯火也开始逐渐熄灭。
李峰的手指在键盘上敲出急促的鼓点,眼睛死死盯着屏幕上滚动的代码日志。
作为自研ERp项目的项目经理,他已经30个小时没合眼。
眼下泛着青黑,头发乱糟糟的,关键是脸上的油感觉比电脑还亮几分。
作战室中央的巨幕上,200+个监控指标正在进行最后的基线校验。
红色预警灯每隔三分钟就会闪烁一次,像某种机械生物的呼吸。
“供应链模块初始化失败。”负责配置管理的赵宏明声音特别大,他是从蓉城过来支持项目,“自研数据库的存储过程和旧系统的兼容性测试通过了七轮,怎么一到生产环境就报错?”
自从被陈默喂饭升职以后,赵宏明就成了他的铁杆拥护者。
本来这次支援是不需要他这个主管过来的,他愣是带上几个核心骨干工程师直接飞过来。
说是这马上产品迭代开发的第一个版本就要上线了,想要尽一些绵薄之力。
会议桌上摆着三十多份夜宵套餐,从潮汕牛肉丸到麻辣香锅,热气混着键盘清洁剂的味道在空气中游荡。
陈默靠在墙角,手中杯子里的茶已经凉透,目光却始终停留在巨幕右下角的倒计时:
距离代码冻结还有2小时13分钟。
作为项目领导小组主要负责人之一,他这会儿尽量在角落里面看着,免得下属们紧张。
“把存储过程的执行计划调出来。” 李峰的声音带着沙哑,手指在触控屏上快速滑动,“第三十七行的事务锁参数没对齐,旧系统用的是oracle的行级锁,咱们的高斯数据库默认是表级锁,得手动添加锁粒度声明。”
他突然转头看向坐在斜后方的数据库组负责人刘洋,“上周不是说兼容性方案里加了自动转换层吗?”
刘洋推了推滑到鼻尖的眼镜,面前的三台显示器分别显示着数据库日志、架构图和代码比对界面:“转换层在测试环境没问题,但生产环境的负载均衡策略里,第三节点的读写分离配置漏了锁机制的关联参数。”
他调出配置文件,“现在有两个选择:要么回退到旧锁策略,要么现场修改负载均衡配置。”
作战室里响起此起彼伏的吸气声。
回退意味着前三天的联调成果作废,而现场修改则要承担配置失误导致系统崩溃的风险。
李峰的手指悬在键盘上方,迟迟没有落下。
他清楚,这个决策不仅关系到今晚的上线,更会影响整个渡河项目的节奏。
渡河ERp的第一个可运行版本必须在11月13日前完成技术验证,这是陈默在月度例会上拍板的死线。
但他不甘心,他一直都是奔着提前完成项目进度的目标去的。
陈默看李峰有些犹豫,终于开口,声音平稳却带着不容置疑的力度:“按新锁策略改。”
他向前走了两步,带起的风让桌上的文件轻轻翻动,“上周在蓉城研究所的压力测试里,新锁策略的吞吐量比旧方案高出不少,现在回退就是给后续的业务适配埋雷。刘洋,你带两个人去现场调负载均衡,需要求助的话找冯亦如。李峰同步准备应急预案,一旦第三节点挂掉,立刻切到备用集群。”
“收到。” 刘洋抓起工牌就往外跑。
“赵宏明,把第三节点的配置权限给我开放到最高级;王磊,准备好数据库切换脚本,我数到三就执行预演流程。”陈默的声音却出奇的冷静。
时间在键盘敲击声和对讲机的电流声中缓慢流逝。
陈默走到茶水间,给自己换了杯热茶,目光扫过作战指挥室。
It运维支撑部下属的三个四级部门负责人此刻全都在这里。
胡笳盯着桌面云的资源调度曲线,张福全在和基础架构团队确认服务器负载,徐双龙和李峰在讨论弹性域迁移问题。
这算什么?自己把自己一锅端了?
他忽然意识到,这个曾经被质疑 “搞运维的不懂研发” 的团队,此刻加入到了创造华兴历史上最复杂的系统工程中。
凌晨2点45分,巨幕上的红色预警灯终于熄灭,200+监控指标全部转为绿色。
李峰瘫在椅子上,看着系统日志里的 “初始化完成” 提示,突然笑出声来。
他大声的喊了一声,“兄弟们,冒烟测试通过了。”
作战室里响起稀稀拉拉的掌声,有人开始狼吞虎咽地扒拉已经凉了的夜宵,有人靠在椅背上闭目养神。
只有键盘敲击声依旧密集,后续的功能验证需要覆盖137个核心业务场景,每个场景都要在测试环境里跑三轮。
陈默走到李峰身边,递过去一瓶矿泉水:“供应链模块的库存同步逻辑,明天上午让赵坤的解决方案部来做业务校验。”
他指了指屏幕上的数据流图,“渡河ERp的第一个版本不需要完美,只要证明技术路线可行。记得尽快把系统性能数据同步给徐董,也算是报喜了。”
他清楚这个版本的上线意味着什么:不是终点,而是残酷战场的起点。
自研ERp要取代oracle,不仅要过技术关,更要过业务关。
那些在旧系统里浸淫十年的业务部门,才是真正需要攻破的“堡垒”。
凌晨3点12分,测试环境的功能验证开始。
陈默看着测试工程师在模拟界面上创建采购订单,数据流沿着自研的中间件层层传递,最终在自研数据库里生成对应的库存扣减记录。
这个在旧系统里再普通不过的操作,此刻却让整个作战室的同事们都屏住了呼吸。
“订单创建成功,库存同步延迟0.8秒。”开发组leader辛嘉豪的声音带着颤抖,“比旧系统快了1.2秒!”
掌声终于响亮起来,有人吹起了口哨,更多人是长出一口气。
手机震动,弹出徐总的消息:“听说冒烟测试过了?黎明前最黑,但你们已经摸到了天亮的脉搏。”
陈默笑了笑,今天第一版上线注定是不眠夜,徐总也在等结果。
他思考了一会儿,才回复道:“第一仗打完了,第二仗马上开始。”
渡河ERp真正的挑战其实不是技术上线,而是让业务部门接受这个“新生儿”,后面马来西亚子公司封测和试运行才是真正的硬仗。
清晨6点,第一缕阳光爬上玻璃幕墙,作战室里的灯依然关着。
李峰趴在桌上打盹,手机屏幕还亮着,上面是凌晨4点多他老婆发的消息,问他第一版上线是否顺利。
陈默轻轻盖上他的笔记本电脑,目光落在作战室墙上的白板。
上面是他刚刚用红笔写着的后续计划:
11月1日,业务部门首轮适配会议;
11月15日,海外子公司试点准备;
12月31日,核心财务模块联调完成。
早上7点,作战室的门被推开,食堂的工作人员送来早餐。
李峰揉着眼睛站起来,放下心事的他看着热气腾腾的豆浆和油条胃口大开,突然大声说道:“放开那些油条,我要打十个。”
众人哄笑,疲惫的脸上终于有了血色。
陈默拿起一个包子,咬下的瞬间,尝到了久违的烟火气。
窗外的城市已经苏醒,写字楼的灯光又开始次第亮起。