对于蚂蚁而言,每年的双11是既令人敬畏,又令人兴奋的。
敬畏源自对技术的执着。面对这样一场几亿人的购物狂欢,不能也不允许有一点点的差池。这种敬畏对于外人而言甚至有点“着了魔”——技术人员拜关公、烧香、穿战袍和红内裤,甚至预案的精细粒度达到「如果当晚茶杯在电脑上打翻了怎么办」这个话题。
兴奋是为了什么?
兴奋来自于未知。每年的双11对于蚂蚁金服,对于OceanBase来说就是一个超级工程,而下一年的双11又会突破前一年的纪录。永远不知道边界在哪里,但是一旦设定了方向就会不顾一切的往前冲。
严格来说,OceanBase真正经历了五年的双11。
2014年
2013年5月,支付宝下线了最后一台IBM小型机,完成了去IOE进程中的一次重要尝试。最重要的O如何去掉,又成为了摆在蚂蚁金服团队面前的一座大山。
2014年,阳振坤(OceanBase团队负责人)回忆道,当时大家在会议室里讨论支付宝交易库的上线,墙壁都快被吵破了,但是别人就是不愿意上OB。
他们原来的交易、支付系统全都在Oracle上,当时的Oracle无论是在稳定性、可靠性还是性能方面,肯定比OceanBase要好得多。
双11作战室里的鲁肃
最后,在程立(花名鲁肃,蚂蚁金服CTO)的力挺下决定切给 OceanBase 1%的流量试试。因为那几年业务发展的太快,当时Oracle的共享存储已经扛不住这个流量,按照当时的业务流量去做压测的时候,几分钟就要坏一块盘。
最后发现,把业务切掉10%,才能勉强扛得住。所以最后决定把10%的流量切到了OceanBase上。
2014年双11的零时之后,出现了285万笔/分钟的交易峰值,这个数值是2013年峰值的3倍多。最后2014年的天猫双11交易额达到571亿元,OceanBase 0.5 版本成功应用于支付宝核心交易系统。
OceanBase的老同学说,当时的第一反应是有点感动,有点欣慰,觉得我们真的撑住了!那一年,OceanBase成功扛住了10%的流量,顺利通过了交易洪峰的考验。
2015年
2015年天猫双十一的交易额达到了912.17亿元。
00:05:01:交易创建达到峰值14万笔/秒;
00:09:02:支付达到峰值8.59万笔/秒。
在当年,Visa的支付峰值是1.4万笔/秒(实验室测试是5.6万笔/秒);MasterCard实验室测试是4万笔/秒。这个数字已经让世界瞩目了。
2014年,OceanBase在双11算是一次牛刀小试,支撑了10%的交易创建流量。在2015年的双11,OceanBase真正挑起了大梁。蚂蚁交易创建100%切流到OB上,核心线的会员、充值、支付也都50%切流到OB,说是扛起来蚂蚁核心应用的半壁江山,一点也不为过。
从10%到100%,不仅仅是数字上的变化,其内部蕴含着性能、稳定性、可运维性、高可用等一系列的挑战。
当年的DBA热情洋溢地写道:
“如果缺少了‘一干到底’的精神,我们将很难在每一个细节上都做到完美。在双11这样的极端场景下,任何一个细节的疏漏,都很可能导致整个系统出现难以估量的损失。最终,OceanBase经受住了双11的极致考验,14万笔每秒的支付宝交易创建峰值(全部跑在OB数据库上)就证明了一切。”
2016年
2016年双11的成绩让马老师喜笑颜开。
“剁手党”们仅用6分58秒就让天猫双11的交易额破100亿元,2016年天猫双11最终交易额突破1207亿元。
零点9分39秒,蚂蚁金服CEO井贤栋宣布,2016年双11诞生了支付峰值的世界新纪录——12万笔/秒,是2015年的1.4倍。
令人惊讶的是,如此庞大的交易量,系统不仅没出现大面积崩溃,而且还很稳。用当年也是现在OceanBase的DBA孔德生(花名沈炼)的话来说,“曲线 ‘丝般顺滑’,过程 ‘云淡风轻’ 。”
2016年的双11,OceanBase 1.0版本承担了会员,交易,支付,红包,国际交易,花呗支付,账务前置,花呗账务,账务明细,会计,计费等系统的流量,支撑起了2016年12万笔/秒的支付峰值。
OceanBase 1.0版本当时还是一个刚刚发布不久的数据库,从稳定性到性能几乎与业务改造同步,可想而之对于当年的DBA同学,业务同学和OceanBase团队来说是多么巨大的挑战。
而事实上,为了这个结果OceanBase团队已经踏踏实实积淀了2年时间。从2014年到2016年,整整两年的时间,整个团队中的40多个人,全部投在OceanBase 1.0版本的开发上。整整两年,这40多个人只做了这么一件事。
2017年
2017年11月11日凌晨,天猫双11全球狂欢节刚开场5分22秒,新的支付峰值诞生:25.6万笔/秒,比去年增长超1.1倍,再次刷新全球纪录。同时诞生的还有数据库处理峰值,4200万次/秒。
2017年也是支付宝首次公布数据库处理峰值。4200万次/秒的意思是,在支付峰值产生的那一秒里,OceanBase平稳处理了4200万次请求数,这也再次直接应证了中国自主研发的数据库OceanBase已经跃升至全球数据库的第一梯队。
胡喜(花名阿玺,蚂蚁金服集团副CTO、副总裁、首席架构师)介绍道,支付宝之所以在2017年首次公布“数据库处理峰值”,是因为2017年的双11,支付宝首次把包括账务库在内的所有核心数据链,全部搬到了OceanBase上。
“对于用户来说,一笔支付就是一笔支付,对于数据库来说,一笔支付则是数个处理请求的集合。”胡喜介绍,用户进行支付时,钱可能从借记卡转出,从花呗借出、还有10块钱由优惠券出、分期付款……这些都是一个个独立的处理请求,需要数据库进行处理。在支付高峰,能否支撑得住海量级的处理并发量,对OceanBase来说是一个巨大的考验,而此次4200万次/秒的处理峰值充分说明,OceanBase再一次经受住了考验。
2017年的双11,OceanBase还有一个技术突破,是实现了“离在线混合部署”。它最核心的优势是,能够在双11支付峰值来临前,借调“离线机房”的闲置计算资源,并在峰值回落后再“还”回去。凭借这一技术创新,为2017年的双11支付保障节省了2000多台服务器。
2018年
2018年的双11,仿佛真实的还在眼前。天猫双11最终以2135亿元创纪录成交额收官,支付宝系统在这场“商业奥运会”中再次经受住了考验。
胡喜透露,整体系统稳定、顺滑地度过刚刚过去的这24小时,离不开核心技术的全面开放,这其中当然包括了蚂蚁金服分布式数据库OceanBase。
胡喜强调,支付宝已经将支撑双11自主研发的核心技术100%开放出来,包括三地五中心多活架构 、分布式数据库OceanBase、分布式架构SOFAStack、生物识别平台ZOLOZ、蚂蚁区块链 、智能风控引擎AlphaRisk等。
OceanBase 2.0版本就全面支撑了2018年双11支付宝的核心链路。该版本性能比去年提升了50%,这样交易不用临时扩容,真正实现了“零成本”支撑大促。
OceanBase 2.0版本的设计可支撑百万支付峰值甚至无上限。此外,在完全兼容MySQL后,OceanBase 2.0版本加强了对Oracle数据库的兼容。OceanBase在性价比方面更是精雕细琢,使得在OLTP场景的实际应用中,OceanBase 2.0版本相对于1.4版本,性能提升了50%以上,存储下降30%。
筑梦师?信仰者?
写到这里,突然想起《盗梦空间》里的一句话:
一个简单的念头可以创造一座城市,也可以改变整个世界。
我在想要怎么定义这群人,可以称呼他们为筑梦师,将所有最美好的最复杂的理想世界通过自己的“念头”筑造成现实。
倒不如说他们是自己技术理想的信仰者,即便在OceanBase即将解散的那些年,阳振坤还是会坚定如一的说,「OceanBase以后是要取代IOE的」。
这种自信源自于对一件事极致的、不掺一丝怀疑的信念。
即便是最艰难的时刻,这种信仰还是扎扎实实的刻在OB人的心上,因为他们相信:先活下来,只要不离场,就还有希望。
当然这句话还有下半句——只要有希望,就总有机会实现。
文章推荐