关掉了一个健康监控模块之后,系统终于恢复了稳定。比起紧张,肖涵感到的更是前所未有的震撼:原来自己所做的事已经和千万人息息相关,每一点微小的疏漏,所影响的都是难以估量的庞大群体。
“没有身在其中过,就很难意识到自己敲下的每一行代码有着怎样的分量。”郑洋飞说。他在2013年加入支付宝实习,带他的师兄巩杰说了一句令他印象极深的话:你看看那些客服mm,你敲代码时仔细一点,少出一个错,她们就不知能少接多少个报错电话。
【三】架构革命
跨过了2012年的坎儿,DBA就再三给出警告:扩容已经到头了,顶多再撑几个月,按这个增速,如果不想点别的办法,肯定坚持不到明年双11。
祸不单行。另外的“紧箍咒”也接连落下:Oracle数据库的连接数上限成为扩容的瓶颈,更要命的是,由于机房的一再扩容,杭州的电力已不足以支撑。有时候为了保机房供电,“大夏天的,办公室都会停电,不得不运冰块过来降温。”巩杰苦笑着说,杭州的盛夏,谁过谁知道。
治标的方法快要山穷水尽,必须要从治本的角度出发寻找新的解决方案,比如,从架构层面“搞革命”,做单元化。
革命不是请客吃饭,要从架构层面做根本性的调整,举步维艰:一来没有任何成功经验可以借鉴,只能摸索着走;二来牵涉到众多部门,大家需求不同,意见难免相左;三来,既然要革命,那目光必须放得更加长远,不能只是为了解决今年或明年的问题,至少也要做未来三年的规划。
与此同时,在和淘宝商城——现在叫天猫了——沟通之后,支付宝毫不意外地定下了又一个令人惊呼“不可能”的目标:支付峰值每秒2万笔。
事关重大,人人都很谨慎。“光是架构调整的方案就讨论了很久。”陈亮说,作为项目的架构师,他费了不知多少口舌去说服所有人都认同这个方案。
重担的一头落在他的肩上,另一头则交给了2010年抖着手化解危机的蒋涛,蒋涛更愁稳定性问题:“做技术架构变更的同时还得稳住业务,这件事非常复杂,技术风险也很高。”
留给他们的时间也不多了。LDC架构的立项已是2012年年底,距离2013年的双11不足一年,对于这样浩大的工程来说,就一个字,紧。
陈亮最初构想了一个宏大的体系,要把所有系统都一口气单元化,但这个方案被程立否了:“主要问题在淘宝的交易上,先把淘宝做了。”按他的意思,哪怕先做第一期,2013年也必须上线。
一堆不可能的目标聚集在了一起。但目标既然定了,就只剩向前这唯一的方向。
“立项之后,我们几乎每个月都做发布。”蒋涛说,这个频率是一般项目开发的好几倍,但即便如此,直到双11之前半个月,整套系统才算部署完成,小错仍然不断,不过,随着越来越多的小问题和被发现和修正,他终于感到,“心里总算慢慢有点底气了”。