文 | 史中 @ 浅黑科技
有人曾在网上回忆自己的故事:
大约两年前,我买了《动物之森》这款游戏,玩了一个月就有点厌倦了,于是我把它教给妈妈。妈妈从小得了小儿麻痹,后来变成多关节硬化。除了每月一两次必须的购物,她几乎不出门。我让她在游戏里建了一个家。想不到她竟然沉迷于此,这么大的人每天玩游戏,连我都觉得有点丢脸。
直到有一天,她的病情恶化,不能再玩了。一年后,她去世了。又过了很久,我突然心血来潮,想去看看妈妈建立的小村庄。里面的杂草长得好长,村民们也都在问我妈妈这段时间去了哪里。
我打开信箱,发现里面都是未读信件。其中有一张是生日贺卡,信里写着:儿子,当你看到这封信时,我应该不在了。但是没关系,你将来偶尔回来看看,应该会发现我给你的生日贺卡。我在游戏里赚了一些钱,足够每年都给你买一张生日贺卡。对不起生病了,没能好好照顾你。你要坚强,我会在天堂看着你。
赛博世界并不是辽阔的荒野,数据也不全是冰冷的记录,它是亲人的笑靥,它是我们的记忆。
(一)田园时代
假如互联网有记忆,它也许会怀念2005年。
这一年,淘宝网两岁,但它已不像一个婴儿。一望无垠的货架上陈列着800万件商品,日均浏览量超过9000万次。
这一年,马云和杨致远喝了“有史以来最贵的一杯清酒”,换回雅虎中国全部人马和10亿美金,准备随时划破黎明,吹响对 ebay “决战”的号角。
这一年,遥远的北方,王坚在神秘的微软亚洲研究院,孤绝地探索听上去颇为可疑的“大数据技术”。
这一年,英雄如满天星散,一切像平静的雪。
但杀机总是暗伏。
现在回望,当年阿里巴巴被极速缩小的“互联网毒圈”推向战场的中心,黑暗森林的另一边,潜伏着盛大、网易、百度、腾讯数位绝世高手。还来不及褪去草莽气息的阿里,迫切需要几条顶级的枪镇楼。
有件事儿再明朗不过:
一个合格的商人,得随口说出自家所有货物的特点、型号、价格。这得靠一个天赋异禀的“好记性”。
一个合格的电商,更要实时给出亿万件货品的图片、描述、优惠。这得靠一个打磨精良的“数据库”。
多说一句,很多人听到“数据库”就会觉得无聊,其实蛮有趣的,它和人的记忆有两点相似:
1、要在最短的时间内把有用的东西“记住”;
2、要在最短的时间内把需要的东西“回忆”出来。
听上去简单,但能把这两件事儿做好的数据库凤毛麟角。
马云和
淘宝创始团队
2005年,数字世界的“好记性”只有一个选择:美国甲骨文公司的 Oracle 数据库。
当时的阿里巴巴有三个儿子:大儿子——阿里巴巴B2B网站、二儿子——淘宝、三儿子——支付宝。就像今天所有望子成龙的家长一样,当然要给他们吃最好的,用最好的,补习班也上最好的。
于是,三个儿子都迫不及待地装备了甲骨文的数据库系统。
如果说一般的数据库系统是奥拓夏利拖拉机,那么 Oracle 无疑就是数据库界的劳斯莱斯。买得起劳斯莱斯的人本就不多,会开劳斯莱斯的老司机就更加凤毛麟角。
数据库系统的“司机”被称为 DBA(数据库管理员),当时全中国的 Oracle DBA 加起来也没多少。事实上,这些大神们彼此之间也非常熟悉,经常聚餐撸串。
买了这么多劳斯莱斯,老司机不够用了,阿里巴巴很急。就在这些大神散落在阔绰的外企和安逸的国企里过着舒服的日子时,突然窜出一个好汉大声呼喊:外企和国企给多少?我阿里巴巴以后给三倍!
这一声吼彻底搅动了中国数据库的历史。
DBA 大神云集响应,天下英雄尽入彀中。说实话,钱,彼时这些咖们是不缺的,让他们感到振奋的是这片无远弗届的“新战场”。
鲁国良、冯春培、拖雷、七公、张瑞、后羿、楼方鑫等等一众人马从四面八方赶来,带着自己最的拿手绝活,准备大干一场。
张瑞回忆,自己从西门子被介绍加入阿里巴巴时还很年轻,面试他的四位大神都是业内“神兽”级别的人物。回家以后激情澎湃,立马开始收拾行李准备搬家到杭州,媳妇拉都拉不住。
张瑞
DBA 们把自己当做那个时代的哥伦布。
用张瑞的话说,当时的阿里巴巴是“生机勃勃的乱七八糟”,拥有一种和外企完全不同的诡异技术氛围。这并不难理解:这家新兴互联网公司正在全速扩张商业版图,背后的数据库当然也会以几何数级增长。
他们每天没日没夜地研究 Oracle 系统,把技术文档倒背如流,完全是因为他们觉得:自己对探索技术世界新大陆负有不可推卸的责任。
张瑞加入的第二年,另一位 DBA 大牛后羿从江苏电信被挖到雅虎中国,后来随着业务调整汇入淘宝。我让后羿形容一下 2006 年的阿里巴巴数据库,他只说了两句话:“国内数据量最大”,“国内数据并发最高”。
在吟游诗人的章句里,那一定是数据库的“田园牧歌时代”。
作为阿里巴巴的核心技术人员,DBA 大神们拿到了丰厚的报酬。2006年七公第一个买了宝马3系,大家开车出去喝茶。以至于人们都艳羡地口耳相传:听说了吗?阿里巴巴数据库的人都开宝马!
(二)魔幻时代
正如纪梵希的西装不能配老北京布鞋,倾城佳人不能坐在自行车后座上,Oracle 也不能运行在随便攒出来的“妖艳贱货服务器”上。
Oracle 的标配是 IBM 生产的小型机和 EMC 生产的存储硬件。
不少老员工至今都记得,阿里巴巴迎来全中国第一台 IBM 小型机时候的场景。“最高配的 P590,锅炉一样高的黑色大柜子。放在机房其他的机柜旁边,鹤立鸡群。”
跑在小型机上的 Oracle 数据库,速度快到根本不用做任何优化。就像在大草原上开车,闭着眼睛油门踩到底也不会翻车。一众 DBA “老司机”,恨不得围着小型机跳起图腾崇拜的舞蹈。
事情由此开始变得魔幻。
一台小型机就要500万,两台小型机就要配一个300万的 EMC 存储。2006年,正迎来史诗级喷发的淘宝网,小型机先是一台一台买,到后来干脆一排一排买。很多 Oracle、IBM 和 EMC 的销售们,都在很短时间里升职加薪,走上人生巅峰。
依赖是一种柔软,更是一种锋利。
世界第一次对阿里巴巴露出爪牙,是2006年。
就在最早两台小型机进驻机房的三个月后,故障毫无来由地降临了。小型机突然宕机了!
工程师们后背一阵发凉。随即而来的事实更让人绝望,业务宕机,每秒损失都在扩大。但一众工程师面对这台怪兽,不仅没人会修,甚至没人敢动它。感谢上帝,就在宕机的第40分钟,IBM 工程师正在从北京飞到杭州的万米高空时,小型机自动恢复了运转。
自家的设备出现问题,却得依靠设备厂商来拯救;一堆中国顶级工程师面对数据库的生死劫难,居然束手无策。这简直是对彼时中国互联网的绝妙讽刺。
就在这天晚上,完整经历一切的张瑞睡不着觉,他懵懂地问了自己一个问题:搜索技术靠雅虎,数据库靠甲骨文,服务器和存储靠 IBM 和 EMC,那阿里巴巴是什么?
这确实是直击灵魂的一问。
历史的剧情从不拖沓,这一问用不了多久就会有人来回答。2008年9月,在马云的邀请下,王坚从微软亚洲研究院动身,南下赴杭州。
王坚
(三)暗黑时代
2009年,阿里巴巴的 Oracle RAC 集群节点数达到了创记录的20个,亚洲第一。
这个数据还被做成了广告,骄傲地放在了首都机场的墙上,闪耀着刺眼的光芒。
光鲜背后,逆流暗涌。
作为当时淘宝数据库团队的一员,后羿已经连续好几个星期没有睡一个完整的觉了。20个 Oracle 集群组成了一个“巨婴”,不知什么时候会啼哭起来。
Oracle 是一个商业软件,它就像一个黑盒子。平均每周都要出现三四次问题,但无论多么精巧的工程师都撬不开它,更不用提修理它。
“唯一能帮助你的人——Oracle 技术支持人员——在一万公里以外,这有多荒唐。”后羿苦笑着对我说。
团队只能连夜值班,出现问题第一时间反馈给甲骨文总部,然后一边力所能及地拖延故障的发展,一边等待前方救援。由于时差的原因,对方返回结果的时候,很可能已经过去了一整天。大部分时间,DBA 团队所能做的唯一一件事情就是:祈祷。
而从阿里巴巴首席架构师王坚的角度看,一道更大的裂痕正在显现。
一方面,买机器的速度根本赶不上业务的发展速度;
另一方面,面对业务提出下个月要做大促的要求,那些技术大神经常连连摆手。数据库暴露出不适合互联网业务的致命弱点——无法弹性扩展——大促时数据库不够用,结束后又浪费。
这本质上是时代和工具的错配。
讲真,上帝的时间观念有时不那么强——祂为你关上一扇门之后,不知何时才会为你打开一扇窗。但在历史的烟尘里,后羿的运气并没那么差:
彼时平民化的 X86 服务器技术开始突飞猛进,SSD 闪存技术也飞速成熟。焦头烂额的后羿悄悄和几个同事们进行了验证,在平民服务器上跑免费的开源数据库,性能虽不及 Oracle,但也绝没有想象中不堪。
一瞬间,有些念头在他心里闪过,但随即又被他自己掐灭。
后羿
同一年,北京,阿里云工程师写下第一行代码。王坚开始履行对马云的承诺:为阿里巴巴输入技术的基因。
站在技术的潮头,王坚望尽大江东去;他唯独没看到,自己的命运跌宕才刚刚掀开扉页,他恐怕更难预料,多年以后自己将会以怎样的姿态出现在无数技术人的回忆录中。
当年12月,后羿代表数据库团队和他的老板振飞一起,向王坚提交明年的预算。
他们两个人内心都是打鼓的,明年要买的数据库、小型机、存储,加起来的开销之大,连看一眼都要心跳半天。
为了让自己看起来不是那么面目可憎,后羿在汇报结束之前,小声跟王坚提了一句,“要是太贵的话,我们有没有可能用开源数据库和平民服务器来替换 Oracle 和小型机?”
没想到博士(王坚)当即拍板:“就该这么干!”
“2010年以后,再也不购买小型机。”这句话就这么白纸黑字地写进了阿里巴巴的公司战略,振飞后羿签字画押。
后羿在工位上坐到了半夜。
暗夜窗外,月亮升起来,他似乎听到了什么声音。像是开源数据库的新生啼哭,又像是 Oracle 的最后挽歌。
开了半辈子“劳斯莱斯”,方向盘上的每一条纹理都稔熟于胸,闭上眼睛都能想象出按钮的陈设,闻到真皮座椅的气味。
那是一个 DBA 工程师用最好的年华换来的骄傲。如今自己真的要亲手砸掉宫殿一般豪华的 Oracle,转投一砖一瓦从零搭建的开源数据库吗?
退一万步,即便自己能接受这个人生的重大变革,但他凭什么替团队四十几个兄弟们做决定?
然而,决定已然不可辨驳。王坚的眼神里,闪烁的不仅是阿里巴巴数亿的成本节省,更是中国互联网的十年技术未来。后羿明白,自己正载着四十多个 DBA 兄弟冲向万丈悬崖,手中的方向盘已被拆掉。
一觉醒来,太阳照常升起,世界已地覆天翻。
杭州华星路创业大厦8楼,后羿跟兄弟们的“坦白局”。
放弃 Oracle,转投开源数据库!这不是讨论,这是决定。
憋了好久,后羿的话终于还是像一点星火,引爆了炸弹库。
“后羿,你TM今天不给大伙说清楚,就别想出这个门!”一位同事堵着门,所有人都站起来,局面眼看就要失控。
后羿努力克制着自己的颤抖,说:
“半年多了,我们所有人几乎天天半夜两点起床排除故障。但我们能做的只是把故障写成报告汇报到国外厂商。在别人眼里,我们是中国最好的技术人,但回到家里,我们叫天天不应叫地地不灵,这种无法掌握自己命运的感觉,你、我还能承受多久?
这几天,我们的故障三天两头就会影响到淘宝的业务。业务同事生气我们的气,我怎么能怪他们?因为保障阿里巴巴的核心数据库就是我们的职责啊!我们不怕苦,但每次都给其他数据库厂商做陪练,这有什么意义呢?
淘宝的数据量明年不知要翻多少翻。现在已经危如累卵,再把数据库的规模加大十倍百倍,只有天知道会发生什么故障。如果今天我们不砸自己的饭碗,明天连淘宝的饭碗可能都没了!阿里巴巴几千兄弟们都在靠着我们,我们不能退啊!”
后来,这一幕成为阿里巴巴历史上一再被铭记的标本。但在当时,剧中人又何以知道未来的走向。
你以为后羿舌战群儒,瞬间折服众人了吗?别逗了,那是小说里的情节。团队最大的善举只是放后羿活着走出会议室而已。一些工程师懵懵懂懂,愿意跟着后羿先试试,另一些人看到后羿决心已定,走出这个门,就已经开始投简历了。
(四)长征时代
投身开源数据库的长征路开始了。
你可以想象一下, 那些 Oracle DBA 大神就这样在小屋里抽着闷烟,捧着一本《MySQL 开源数据库进阶》时而哀叹,时而恍然,时而咬嘴唇嘬牙花子,是一个怎样的场景。
一个先锋敢死队火速建立了——“MySQL 学习讨论小组”。所有人每周三次在会议室里交流技术,分享心得。几个月后,好多同学都开始感慨,好像开源数据库也不像老虎那么可怕。
经过周密考虑,这个浩大的工程先从淘宝“商品库”开始替换。
理由如下:
“商品库”是淘宝系统里最大的一个核心数据库,存储着所有宝贝的描述、价格、评价。
虽然犹如一辆赛车在全速前进中更换引擎,牵一发而动全身,但是商品库的日常读多写少,通过前期的拆分,写部分都已被剥离出来,逻辑相对好掌控。
这已经是所有选项中最稳妥的选项了。
2010年1月,淘宝商品库开始了如非洲角马一般浩荡的迁徙。此岸土地开始干涸,彼岸水草逐渐丰美。阳光刚猛,波涛壮阔,勇者争渡,懦者哀鸣。
此时,故事里的另一位主角才姗姗来迟。他就是日后被人们称为“霸爷”,并且一众码农专门为他创建了“拜霸神教”的褚霸。
如果非要形容,我觉得褚霸像个“数字屠夫”。
这位网易工号25,迅雷工号前10的技术大神手里常提一把血淋淋的刀,一边“庖丁解牛”般把程序解剖成底层电路上的嘶嘶电流,一边看向围观震惊的吃瓜群众,摆出一副“都坐下,都坐下,这是基本操作”的傲骄表情。
褚霸
2010年5月,褚霸加入大神章文嵩领衔的“淘宝核心系统部”。
仅仅一个月过后,老板章文嵩就找到他说:“后羿那边在用开源数据库替换淘宝的商品库,遇到一些底层问题,想让你组建一个小分队去支援一下,你有没有信心?”
“有!”
能用一个字解决的问题,褚霸绝不说两个字。
你可能难以想象,说出这句话的时候,褚霸根本没做过数据库。他特别熟悉的是网络方向,而存储方向的核心技术是“I/O”(输入输出技术)。打个比方,一个是神经科,一个是脑科,完全不是一个领域。
褚霸去问当时内核组负责人伯松:“这个 I/O 要搞明白,一般需要多久?”
伯松抬抬眉毛,冷静地说:“有生之年能搞懂就不错了。”
褚霸嘴张得老大,一时无语凝噎。不过几分钟以后,他就下定决心:老子混了十一年开源社区,还没听说过哪个技术要花一辈子时间。既然是“I/O”先动的手,那就来吧,不服就干!
凭借“江湖嗅觉”,他很快就“捞”到一位大神,这位大神是 Linux Kernal“I/O”这部分核心代码的贡献者,而褚霸发现他还同时开发过一个 I/O 测试工具。
“这就像汽车设计师本人开发了一个修车工具,这里面检测的参数肯定个个都有用啊!”褚霸想。
于是,就从这个测试工具入手,褚霸一头扎进了 Linux Kernal 上千万行的代码里。那段日子,昏天黑地。每一个参数褚霸都反复测试,确信搞明白了才去看下一个。经常一抬眼就已经到了凌晨三四点,刚躺下又突然意识到刚才理解错了,从床上弹起来继续看代码。
如此疯狂。几个月后,褚霸终于成功地。。。。进了医院。
从医院回来不久,褚霸就像《功夫》里那个筋脉尽断又重新生长的周星驰,突然恢复了全部元气。用他的话说就是:“闭上眼睛,就能想象出整个系统的齿轮是怎么转的。”
后羿带领的数据库研发团队和褚霸带领的志愿军,每周都会在一起交流。褚霸把脑海中那些零件一点点拆开讲给后羿团队听,后羿会把核心技术消化之后用来攻克难关。
于是,开源数据库 MySQL 的一个阿里巴巴专属分支 AliSQL 就这样被雕刻出来。
经历了九九八十一难,2011年7月,淘宝商品库终于完成了从 Oracle 到 AliSQL 的大迁移。这意味着软件替代方案被验证成功。
与此同时,硬件替代方案也在不停验证。
AliSQL 团队查验了当时世界上所有主流闪存、硬盘、计算芯片、网络芯片的性能,协助团队设计了一套兼顾网络性能、存储性能和成本最优的服务器采购方案。
软硬兼备。通往下一代数据库的大门,终于被技术人的血肉之躯撞开。整体迁移只待一声令下。
王坚拍板,从最早的那台小型机,到一年前刚刚购入的最后一台小型机,从此刻开始同时进入退役序列。
接下来,整个阿里巴巴集团进入了 2012-2013 年史诗般的整体大迁移。
(五)末法时代
历史的浪潮滚滚向前,但每一朵浪花却有不同的命运。
自从王坚宣布“数据库大迁移”从淘宝商品库扩大到全集团以来,阿里巴巴内部反对的声音开始逐渐弥漫。
一些元老对于新技术并不信任,他们反复在高层会议上表示:用开源数据库替代 Oracle,有意义吗?
阿里人并不会从私利出发考虑问题,反对派技术人也不是阴谋家,他们只是阿里巴巴体内的“白细胞”,有义务用自己的专业知识,保证阿里巴巴这条大船不会被几个激进的“开源技术原教旨主义者”弄沉。
历史很有趣。
用望远镜回望,一段岁月是创新和保守的美妙制衡;
用显微镜查看,那却是每人每日的拼死角力和煎熬。
2012年,是阿里巴巴历史上打不开的结。
中哥在《阿里云的这群疯子中》曾经写到,彼时的王坚,高处不胜寒。承载了他二十年技术理想的飞天系统屡次“试射”失败,阿里云摇摇欲坠。如此激进的数据库替代战略,也顺理成章地被认为是危险的。
但上帝是个公平的庄家。你要是相信未来,不用多说,只需要在生命的赌盘上不断加注。
在不同的会议室里,在不同的场合,在不同的时间。面对质疑,后羿看到王坚沉默,看到振飞沉默,他唯独没有看到任何人为理想停下哪怕半步。
AliSQL 数据库就这样一点一滴地渗透进集团的每一个服务中。
2012年,全淘宝最后一台小型机宣布下线。这本来是一个史诗级的时刻。遗憾的是,那正是两条技术路线交锋最激烈的日子。现场只有四五个人,后羿组织大家认真地拍了一张合影。时间无声,这至少是一场对自己的交代。
同年,还发生了一件影响深远的“小事”。
阿里巴巴“大儿子”B2B团队和“二儿子”淘宝团队合二为一,后羿接管B2B数据库团队。
淘宝网已经被“蹂躏”完毕,而阿里巴巴B2B团队的数据库团队还懵懵懂懂。此时已经没有什么可以动摇后羿的决心。
长痛不如短痛,他用决绝的方式推进阿里巴巴B2B的同事们从 Oracle 过渡到 AliSQL 数据库。结果是,20个 Oracle DBA,最终出走了15人。
内网上烽烟四起,一篇名为《淘宝的成功不可复制》的文章成为热帖,口诛笔伐如雨点袭来。
多难的技术都没有击倒后羿,但那一刻,他忽然觉得自己走不动了。
从 Oracle DBA大神,到 AliSQL 的开创者,后羿背负着沉重的理想走了六年。人人都说黎明在前,但天为什么永远不亮?人人都说梦想可贵,但真的要剖开胸膛才能让所有人看到自己的一片丹心?
那天,后羿对振飞说,“也许是我离开的时候了。”
这一击甚至也超过了振飞的预料。
当晚一家小饭馆里,振飞和后羿两家人坐在一起。“我不允许自己的兄弟功败垂成。”振飞说。烈酒入喉,过往的烟尘被马蹄扬起,在天地间飘荡。
振飞还是把后羿留下来了。
2013年5月17日,支付宝最后一台小型机下线,这也是阿里巴巴全集团最后一台小型机下线。历时三年,一场赛博世界的大迁移自此落下帷幕。
现场媒体拍下了这张照片。
阿里巴巴最后一台小型机下线
人们看到一排欢乐的脸蛋儿,谁又能知道,这背后又藏着多少人的过往,和那些岁月里碾不碎的挣扎和不甘。
无数在过去三年里把这件事变成可能的人,此刻像河彼岸升腾的焰火,映出众人的微笑。人们总是喜欢璀璨。而在焰火升起之前的漫长寒夜里究竟发生了什么,他们并无兴趣。
(六)钢铁时代
唯有热血换不来粮食,只靠勇敢赢不下战争。
2012年是“官宣”的世界末日,大多数人最担心的是12月21日,而阿里技术人最担心的却是11月11日。
因为这一天,阿里巴巴将第四次返回那个盛大的战场——“双11”。人们预测,这一年的淘宝天猫总销售额会超过100亿。100亿,一秒数一张,够你不睡觉数三年。
张瑞刚刚并入淘宝数据库团队,后羿就让他做“双11”数据库的总指挥。与此同时,刚好淘宝天猫的所有数据库都从 Oracle 替换成了AliSQL。
这意味着什么呢?张瑞就像一个转校生,刚领到新的教材,第二天就要参加高考。这太刺激了。
100亿的成交额,意味着数据库里的一条热点记录,每秒钟最多要被修改十几万次。什么样的钢铁数据库可以承受这样的蹂躏呢?
彼时,阿里巴巴还不具备“全链路压力测试”的能力。换句话说,谁都没办法把“双11”可能遇到的情况完整演习一遍,只能靠局部测试甚至大脑里的思想实验来推演,摸着石头过河。
11月11日,大战来临。
零点钟声刚敲响,巨大的数据洪流涌向阿里巴巴的服务器,资源占用数值直线拉起,所有人的目光都随着曲线向上抬升。几秒钟过后,数据库资源占用值像一辆失控的赛车,径直撞向100%。
张瑞脑中一片空白。
如果2012年“双11”零点前后你正在参与剁手,一定会记得,有那么半分钟,所有的页面都卡顿在半空。
就在同一时刻的杭州,阿里巴巴内部的数据迅速淤积,发动机已经被烧红。这套即将崩溃的 AliSQL数据库,背后是无数人的赌命奋战。它太贵了,贵到没人能承受失去。
大家都在看着总指挥李津,只等他下令,拍停数据库,拍死兄弟们无数个白天和日夜。
只见李津站起来,大喊:“大家都别慌!”
所有人的手就这么悬在半空,一秒、两秒。。。主屏幕上的成交数据突然开始松动,缓慢抬升。数据库里的记录每秒都被十几万次海啸疯狂地冲刷。一点一点,数据库的运转速度,缓慢而坚定地追上了全国人下单的速度。之前一分钟淤积的数据,也在被消化。
一切安然度过,仿佛一场鹅毛大雪抚平了地上的一切沟壑。
有人回头,看见后羿站在角落,他正望向窗外漆黑的夜空。
那天没有月亮。
2012年“双11”,成交额定格在了191亿;2013年“双11”成交额达到了350亿。
2012年“双11”
(屏幕上为一小时成交数据)
就在2013年“双11”结束之后半个月,甲骨文找到了阿里巴巴。根据你们“双11”公布的成交总额,你们的 Oracle 数据库用量肯定不少,算下来比你们实际购买量多多了!这边补下钱吧!
你无法想象,甲骨文拿出来的账单有多大!
后羿对我回忆。
阿里巴巴这时才告诉他们:对不起,我们的核心数据库已经从 Oracle 替换成了自己开发的 AliSQL。
甲骨文的同事根本不相信,一家中国的企业用三年时间做好的开源数据库,居然能达到甚至超过美国老牌企业有三十年技术积淀的 Oracle 系统。直到阿里拿出了非常强的证据,他们才接受。
这时,阿里巴巴的很多高管和同事才开始后怕:如果三年前没有启动自研数据库计划,今天谁能有勇气面对甲骨文的这张账单?
(七)黄金时代
2011年8月,毕业于北大计算机系的鸣嵩来到阿里。
相比褚霸的怼天怼地,鸣嵩显然是个学院派。如果说褚霸手里挥着屠刀,那么鸣嵩手里捏的就是手术刀,他们俩都会庖丁解牛,姿势却大相径庭。
在北大的时候,鸣嵩曾经深入做过国产处理器研究,这段经历给他的大脑烙上了两个不可磨灭的钢印:
1、我们的理想是:中国人拼死都要有自主技术。
2、我们的现状是:国外的技术论文读起来真香。
加入阿里巴巴之后,鸣嵩开始研究数据库技术。他沿着国外的技术论文的脚步,一边啧啧称赞,一边刻苦研读;至于有一天中国人自己的数据库论文也能被美国人学习,那是万万不敢奢望的。
说回褚霸。
彼时阿里巴巴掀起的“去 IOE”活动已经在全国蔚然成风。很多充满野心的互联网企业和大国企都想去掉 Oracle。于是,褚霸被邀请到腾讯,专门讲述开源数据库的调优技术。
我以为就是几十人一百人的报告厅。没想到到了腾讯,台下1000多人,黑压压地望不到头。人家还告诉我,另外有2000人正在线上看着你。我站在台上,紧张得30秒都说不出一个字。
褚霸回忆。
话匣子一旦打开,紧张感就消失了,那个提刀怒吼的霸爷灵魂附体。演讲像一阵台风,吹得现场观众心花凌乱,掌声如潮。褚霸还没从腾讯回来,阿里巴巴内部就已经有同学建立了一个旺旺群,名叫“拜霸爷神教”。
从此,隔三差五就有人给褚霸送一个小礼物,附上纸条“拜霸爷”;有同事去旅游,还在海滩上用脚写上“拜霸爷”发到群里。。。
就在霸爷走上人生巅峰的时候,阿里巴巴历史上的两条伏线,此时迎来了一次“握手”。
看过中哥《阿里云的这群疯子》的童鞋也许还记得:2013年,阿里巴巴遇到了一个生死劫。
阿里巴巴赖以仰仗的算力调度系统——阿里云“飞天”卡在了研发中最艰难的时刻。真正要命的是,集团内很多业务已经开始向阿里云迁移。如果飞天系统在短时间内难以冲上5000台集群的调度能力,阿里巴巴的诸多业务都将停摆,后果不堪设想。
彼时的王坚正在河流最湍急的漩涡里,他横下一条心,宁可一辈子背负“骗子”的骂名,也要死死托住飞天。
千钧一发之际,章文嵩决定派出自己“核心系统部”的精锐部队驰援阿里云。
多隆、褚霸、鸣嵩等一众底层系统大神云集响应,上午接到任务,下午就去阿里云解 Bug。三个月不眠不休,终于在阿里巴巴集团算力撞到预测极限的前一周,惊险地把飞天推上5k。
为了纪念飞天5K,云栖小镇专门树立了一尊雕像,这是2013年王坚在为雕像揭幕。
这次惊险一跃之后,褚霸任阿里云数据库“RDS”的负责人,鸣嵩成为“RDS”首席架构师。同样在这一年,张瑞接替后羿成为了集团数据库团队的新掌门。
(八)太空时代
虽然很多人“拜霸爷”,但褚霸自己却会“拜王坚”。
以前会觉得,为什么王坚“吹牛”吹成这个样子?直到前两年我才理解了他的方式,这是“降维打击”。
如果你和别人在同一个层面死磕,这没什么了不起的。人家做到了80分,你最多只能做到100分。如果你上了一个维度,直接就比别人多了一个数量级,你做得再差,也比对手们强多了!
这种思维,直接激发了自研数据库 POLARDB的诞生。
如果此时拉开视野,会发现数据库市场本身就发生了巨大的变化。就如当时经典内燃机汽车迎来了史无前例的高峰之后,被迎面而来的电动车打了个手足无措。
经典数据库迎来了诸神的黄昏。创业企业直接用云上数据库,而存量客户也会想重演阿里巴巴去IOE。
仅仅是卖别人做的数据库这很好。但是,当你有机会自己去造出新的数据库当然更好。这是2014年RDS团队全体大会上的决定。
“数据库”和“操作系统”“中间件”一起并称为三大底层系统。阿里云的成功,和中间件的完美设计关系密切。然而,阿里巴巴无数大神拼了老命,用了几年时间才打磨出了阿里云精致的中间件。观摩过阿里云5K的“扒层皮”,褚霸还能这么轻松地喊出自研数据库,可以用胆大包天来形容了。
这个面向未来的数据库要叫个啥名字呢?褚霸一拍脑门决定:“就叫POLARDB!”
时间表很快被制定好了。2017年10月底,POLARDB要开始公测。反推回来,所有研发节点都被定死。
两年多时间,30万行代码,这场由鸣嵩领导的“数据库新长征”,就这样悄无声息地开始了。
鸣嵩回忆,2017年是最艰苦的一年。有两个多月,团队所有成员都是通宵赶代码。用他的话说:“大家每天下班都会遇到早高峰。”
鸣嵩
奇怪的是,那时候无论多累,就是没人偷懒,更没人提出离职、转岗。
当时团队有一位同学,早晨上班之后突然对鸣嵩说:“我老婆今天生孩子了,我请一天假去趟医院!”。牛X的是,他真的只请了一天假。第二天他安排妥当了一切,准时出现在工位上。
“为什么?”我问。
“阿里人不想做螺丝钉。”鸣嵩说。
2017年9月,POLARDB 盛大发布。
过去需要70个小时的10TB的业务数据创建只读副本,在POLARDB上只需2分多钟。更关键的是,它的成本只有商用数据库的十分之一。半年后,上千个用户用上了这个新数据库。
POLARDB 发布
双11的难关对阿里巴巴数据库团队的挑战仅仅是开始。
林子大了,什么鸟都有。99.9%场景下不会出现的bug,在阿里,就会出现。
淘宝交易的订单处理突破了地域限制,可能在北方区、华东区、南方区。但如果其中一地发生了灾难,怎么办?
这种特殊的业务场景要求数据要可扩展,持续可用、要强一致。因此,新一代数据库必须要包含几个重要特点:全球部署、对存储数据冷热隔离等。
这时候,我们不得不自己研究了新一代数据库了。
张瑞说。
说起来轻松,阿里巴巴过去几年数据库技术突飞猛进,从来都是有前人脚步可循的。如今,这些数据库大神们面前,真的是一片“荒原”。
“全球最顶尖的数据库人才,仍然在美国。为了自研下一代数据库,2017年我们几乎把美国数据库的人才挖空了。”张瑞回忆。
在他和另一位数据库大神圭多的推进下,一个自研的超大规模数据库系统 X-DB 就这样诞生了。短短几个月,X-DB就在集团体系内完成了MySQL、AliSQL集群的升级换代。
对阿里巴巴的数据库而言,2017年寓意非凡。正是从这一年开始,以大致胜的 X-DB 和以快致胜的 POLARDB 成为了阿里巴巴数据库的两款拳头产品。
(九)会师时代
三军易得,一将难求。
2017年10月,马云振臂一挥,在云栖大会上成立“达摩院”。誓要争夺未来10年的技术高峰。
19岁的阿里巴巴,已经有权“任性”,成为自己理想中的模样。但很多人没注意到:在细致的肌理中,因为公司使命的刷新,无数阿里巴巴人必须变得和以往不再相同。
从全中国最早最优秀的 DBA,到中国第一批研究开源数据库,再到自研数据库,一代代英雄前赴后继。从这时开始,研究未来的数据库的任务,将要落到达摩院肩上。
仅靠一腔热血不能换来坚船利炮。必须找一个真正有能力的人来带领实验室。如果没有牛人,达摩院数据库实验室的领导人职位宁可空着!
张瑞斩钉截铁。
李飞飞就这样进入了数据库团队的视野。
那天达摩院数据库实验室筹备组开会,团队有人提出,犹他大学计算机系的终身教授,世界数据库领域的顶级大神李飞飞是一个非常合适的人选。一打听,李飞飞此刻正在上海出差。
张瑞和圭多连夜坐火车去上海,仅仅聊天一个小时,张瑞就感受到李飞飞身上那种科学家少有的产业思维。
“这就是我要找的老板。”张瑞说。
后来,李飞飞加盟阿里巴巴,成为达摩院数据库与存储实验室的领头人。
李飞飞(飞刀)
2018年11月,阿里巴巴集团 CEO 张勇发表全员公开信,宣布阿里云升级为阿里云智能。这意味着数据库的侠客们将重新团聚,兵合一处聚如团火。
所有人一致推选李飞飞成为新数据库团队的带头人。李飞飞大旗一挥,张瑞和鸣嵩两支团队合二为一。X-DB 走出“阿里集团”深闺,更名 POLARDB X,成为POLARDB的分布式版本,共同通过阿里云为社会提供服务。
李飞飞站在数据库科学的浪头,提出了未来的三个方向:
1、“自动驾驶”的数据库:
POLARDB 和 POLARDB X数据库已经可以在很多方面实现了自动化管理,但这还远远不够。数据库可以借助人工智能实现更加低成本地实现自动存储、自动检索。
2、“安全”的数据库:
在云上的数据库,天然要解决用户的信任问题。未来的云端的数据库需要有一把锁,用户手握钥匙,可以随时验证数据库的安全。
3、“新硬件支撑”的云原生与分布式数据库:
在非易失存储(NVM)、远程直接数据存储(RDMA)等等新技术的加持下,可能会让新的云原生和分布式数据库架构成为可能,把以前只能用“妥协”方式绕过的问题直接用技术解决掉。
坐在我对面,李飞飞眼睛里闪烁着一个科学家改变产业格局的雄心。
数据库是个“古老的领域”。它的本质就是对数据的生产、存储和消费系统。
为了这个目标,所有人都在不断探索对资源安全可靠快速调度的方法。于是,在漫长的时间里,数据库领域才会不断爆发新的技术点。
这是让我们这些老炮儿在数据库行业几十年都不觉得厌倦的根本原因。
李飞飞说。
从空中俯瞰,2019年阿里巴巴和蚂蚁金服的数据库百花齐放,POLARDB、POLARDB X、OceanBase、AnalyticDB、NoSQL、图数据库、时序时空数据库等等一应俱全,在技术光谱上,我们第一次拥有了不输给任何人的完整的生态。
2018年,在 Gartner 数据库魔力象限,阿里云成为国内首个入选的科技公司,与AWS、Google、Oracle 等国际大牌同台竞技。
在魔力象限的图表上,代表阿里云全部技术的只是一个小点,但就是为了这个点在象限里挪动哪怕一分一毫,无数数据库侠客付出了十年韶华光阴。
同年,阿里巴巴在国际数据库顶级大会 VLDB 上发表论文介绍POLARDB的存储系统 PolarFS。
鸣嵩惊喜地发现,不久前这篇论文已经被旧金山大学制成了课件,用于给美国的学生授课。
而在即将到来的2019年国际数据库顶级大会 ACM SIGMOD 上,阿里巴巴数据团队又将发表介绍云原生分布式 OLTP 存储引擎 X-Engine。
从2009年到今天,十年的卧薪尝胆,我们从不敢说超越谁。但我们确信,中国人从来就不比别人差,我们已经和世界顶尖高手身处同一个阵营了。
鸣嵩说。
(十)那些侠客们
如果我们能够回到 2005,那里也许有座站台,火车头冒着蒸汽,像一个期待远方的孩子。
在接下来的五千多个日夜里,从受制于人的闭源数据库,到开源数据库,到追星逐日的自研数据库,那些数据库人肉身串演了一幕幕戏剧。
有时我想,他们挺幸运,因为他们见识了这个世界的美好和荒唐。但他们好像也是不幸的,因为这些美好和荒唐都发生在他们自己身上。
数据库工程师半夜起床的日子再也没了,自动化运维程序的精致让过去的热血蜷缩在日志里。吹过原野的风目睹了那些草莽英雄撤离战场,顶级院校的计算机大神扛起大旗。人们在曾经野兽横行的荒原上,建起了安静细密的城市。
如果现在不做技术研究,十年后,人们将看不到阿里巴巴。
王坚2009年的话犹言在耳,答案在空中飘荡。
历史曾有一万条岔路,阿里巴巴理应庆幸自己如今仍是互联网大潮中的一朵巨浪。而互联网浪潮,又是中国厚厚自传中的一章。
张瑞、后羿、褚霸、鸣嵩、李飞飞,这些人从人群的暗处走来,历史毫不吝啬地对他们行了注目礼。
他们是普通人,只是用自己千回百转的命运,把故事堆砌成了今天的样子。
从2009年到2019年,也有无数数据库人离开了阿里巴巴。
留着大胡子的老和尚在 2013 年“退休”,离开之前他说:感谢阿里巴巴,让我从此不再为了钱发愁。
那一时期“负气”出走的 Oracle DBA,也有很多人最终还是进入了开源数据库领域。也有离开阿里的人,过了两年带着新的认知重又归队。
有些人选择独立创业,大神拖雷创立袋鼠云、陈栋建立沃趣科技,他们开枝散叶,成为了中国数据库和各种数据智能系统的先驱,演绎着各自的故事。
人们终于明白,死生聚散恰是世界走向未来的方式。此生路远,莫问归期。
告别之前,我问后羿:“过去十年,你真的觉得值吗?”
他笑了,说:
时代的洪流总会到来,而你唯一的武器就是自己的血肉之躯。
阿里巴巴数据库技术
微信:alibabadba
分享数据库前沿
解构实战干货
长按二维码关注