阿里云大数据三次技术突围:Greenplum、Hadoop和飞天
2017-02-14 17:01:29 阿炯

对于企业来说,到底什么是云计算?相信很多企业都有这样的困惑,让我们一起回到这个原始的起点探讨究竟什么是云计算?云计算对于企业而言到底意味什么?

云计算的三条发展路径及三种落地形态

当回到最初的起点再审视云计算的发展路径,可以发现,经过十余年的发展演进,云计算有三条发展路径,并且最终沉淀下来了三种落地形态。



第一条路:源自于谷歌对大规模数据的处理,谷歌为全球的互联网用户提供同一个服务——搜索,它需要将全世界所有的网站的数据都爬回去,然后做排序和索引,之后再为用户提供搜索服务。可以看到这样的工作需要对海量数据进行处理,谷歌需要把上百万台的服务器整合起来去做排序、索引和查询。

第二条路:淘宝则发展出来云计算的另一条路径,这条路与谷歌相比有类似之处,同样需要把很多数据整合起来做一件事情。在我看来,淘宝所做的事情比谷歌更伟大一点,因为淘宝做的事情是交易。承载6亿用户在线访问和下单支付,这件事情比简单提供一个不能保证这次查询和下次查询结果的差异的查询要更加困难,也更加伟大。因为这是有极其严格的业务要求的,虽然在规模上而言淘宝可能用不了像谷歌那样多达百万台的机器,但是这也是一个聚沙成塔的过程,把众多的廉价的服务器整合起来去做一件事情,这就是云计算的第二条路径。

第三条路:这条路径的发展,是源于在过去的十几年间企业内部在硬件方面进行的大量投资,造成大量赋闲服务器资源。对于企业内部的使场景而言,往往仅有几千或者几万个用户,即便是大型的国有企业拥有有上百万用户,也就仅此而已。和动辄上千万,上亿的互联网用户相比,企业投入大量的IT资源特别是硬件资源的情况下,服务的客户数过少,显然造成服务器资源的赋闲。面对由此造成的资源利用率低的情况,带来的挑战就是如何更多更好地去利用这些赋闲资源。虚拟化技术,最早是IBM在小型机上或者大型机上就实现了,通过虚拟化或者分区技术,可以来解决资源利用率低的问题,虚拟化的技术后来被VMWare发扬光大,在X86的平台上进行了广泛传播应用,第三条路径其实是就是虚拟化的过程。

云计算经过发展最终沉淀下来的这些技术,对于企业,甚至对于任何一个开展的业务而言,都必不可少的。既需要有效利用资源,将规模从小变大;也需要面向客户和业务做在线并且有业务质量保证的交易,同时也需要对数据进行大规模处理,进而产生对数据的洞察来支持业务的智能化。

真正能做到这样的集大成者,实际上是我们现在看到的互联网架构的云提供商,比如AWS和阿里云。而另外一些模式产生出来的云计算提供商,因为它们没有这些强大的业务需求推动而产生的技术沉淀,所以很难把这个能力集合在一起。比如面向企业的商用软件VMWare,虽然其能够提供虚拟化,但是对于运行在其上的分布式应用,以及对大数据的处理就显得比较薄弱。而开源世界则通过软件方式的交互,看起来能够拥有这样的能力,比如通过Hadoop可以做大数据,通过OpenStack可以做虚拟化,但是我们可以看到这两者是实际上存在天然的割裂,无论是在硬件的共享还是在管理层面的融合,以及在业务层面的互相支撑都存在鸿沟。

再回过头来看,企业在上云的过程中会遇到一些挑战,企业需要面对非常复杂的云计算路径。面对这么多的云计算形态,企业在上云时会遇到困惑:到底该怎么考虑自己的云计算?

中国企业上云的三大问题

阿里云在和很多企业沟通并且帮助他们进行云计算转型的过程中,认识到了企业上云面临的最大的三个问题:

第一,陷入虚拟化的误区:将虚拟化等同于云计算,沿着虚拟化的这条路走到黑。

第二,缺乏数据中心全局方案:在小规模的应用场景下,进行简单的虚拟化还是可行的,但是当云变成了企业的公共资产,变成一个平台的时候,就需要从大规模的角度甚至从数据中心整体的角度考虑,不光要考虑硬件的安装部署,还要考虑后续的维护和统筹部署,安全问题以及业务快速响应问题。由于缺乏全局方案,所以数据中心变得非常棘手。

第三,难以全面拥抱公共云:由于中国的很多政策,以及很多企业的传统习惯,还有很多投资方面的资产会限制企业一步到位地去拥抱公共云,很多时候企业希望在自己内部有一朵云,帮助企业既能够享受互联网技术带来的业务升华,同时又能避免一些政策的影响以及数据安全的限制。这些问题是真实存在的,比如说虚拟化这件事情,未来的业务场景会是互联网化甚至移动互联网化的,我们不得不把自己开放出来,去迎接更多用户的访问。只有与更多客户发生直接的关联,才能够产生对客户的洞察,这时大规模的访问以及大规模在线交易将成为必然。另一方面制造业设备,运输业的交通设备和其他电子设备等都在升级改造成为智能设备,这些设备之所以智能的前提条件就是它能够将数据送回来,让我们加以利用,这就构成了另外一个维度的大规模,这就是互联网连接的大规模和物联网信息处理的调度大规模。

对于第三件事情,还有重要的一点是:当客户的行为数据和产品产生的数据都回到我们手中的时候,应该如何去使用这些数据?我们需要使用它们产生智能来指导业务,比如淘宝体系内,对于6亿用户,100亿商品,依靠传统方式手工去推荐基本上是不可能的事情,只能依靠人工智能对数据的挖掘,靠商业的智能在100亿商品和6亿客户中做推荐。双十一900多亿的营收,有300多亿的超总营收三分之一是来源于智能推荐,这也导致一个3万人的企业产生了3万亿这样庞大的经济规模。



企业上云的最大障碍

未来企业做大规模云计算的时候,会遇到一个很大的障碍就来源于数据中心。在传统企业中构建数据中心往往采取使用复杂的硬件做集成的方式。这些异构的硬件产品在小规模的单系统情况下,耗费一些时间去集成运维,系统所提供的可靠性保证还算是可以的。但是如果将全公司成百上千个业务都运行在同一个系统上面的时候,靠简单硬件的高可用已经不足以承载,因为在5000台机器的规模下,每天都有超过10台硬盘的损坏,以这样维修的概率,如果不以软件的方式和智能化的方式加以解决,完全靠硬件的集成方式,是无以为继的。

更可怕的是对于这样一个复杂的集成工程,从采购到建设,将会经历一个漫长的的周期。这样做云计算反而制约应用的发展,因为过去一个系统采购一套设备,还是等得起的事情,但是当几千个应用都需要等待这个云平台的建设来开通的时候就是个等不起的事情了。

安全同样也是,政策法规、信息安全的一些隐患、现有系统的投资等等问题,都导致企业不可能一步就走到公共云上去。在这样的情况下,企业要解决这些困惑,要上云该怎么办呢?

阿里巴巴作为一个企业,我们也亲身经历过这样的过程,而也把这个过程获得的收获总结成公共云,并且服务了众多的小微企业。现在我们也尝试用混合云的方式服务大型企业。阿里云是怎样发挥自己的特长去帮助企业的呢?阿里云能帮助企业解决刚才提到的一个比较严重的上云障碍。可以用数字来证明我们真正做到了,双十一是对我们业务的强大的挑战,但对于技术而言,双十一也是孵化新技术良好的土壤。通过3亿用户同时在线,每秒产生14万笔订单,进行8万多笔支付交易的强事务处理的场景,以及每天要消化掉200PB的数据,产生对于客户的洞察,进而使智能化营销和智能化推荐形成闭环。

我们孵化出来了以淘宝体系为核心的分布式架构,也孵化出来了类似于谷歌那样的大数据处理的平台。这些都是从经历十多年的艰苦卓绝的斗争中积累下来的。

淘宝催生分布式应用架构

2003年开始的时候,淘宝只是一个非常简单的网站,一个现在大家都可以做的LAMP架构的网站。但是到现在已经经历了5个阶段,通过不断解耦,通过分布式架构的1.0,2.0,3.0这样的逐步演进,我们已经能够做到把交易,消息以及数据库都完全做成分布式的。也就说在数据层面,应用层面,进入方面和查询方向,全都以分布式的结构来搭建系统,使得整个系统不存在性能以及扩展的瓶颈。



开放技术能力

我们的架构总结下来是这样的,全分布式的体系,访问层,应用层和数据层都是分布式的,这使得核心系统也是分布式的。为应对大规模的挑战,我们在前端通过CDN把内容缓存在离客户最近的地方来提高客户体验。在2015年的时候,我们将这个架构变为产品,让任何一个企业,哪怕是小微企业也可以构建像淘宝一样强大的在线交易系统,帮助这些企业在做“互联网+”转型以及业务转型的时候获得最大的技术基础。



阿里云大数据发展之路的三次突围

能够把云计算的三个方向整合到一起的另外一个方向就是大数据的处理。阿里云的大数据处理也是经过了从2009年到2013年这五年的孵化,在2009年的时候,我们还是亚洲最大的Oracle集群,但是还是已经无法承载飞速发展的业务。

于是我们选择了3条分支路径去探索后面的路,第一条路径是用商业的Greenplum来替代分析型数据运算;第二条路是因为担心Greenplum不靠谱,我们也使用Hadoop做类似的事情;第三件事情,就是启动了飞天操作系统的研发,目标是打造一个属于自己的大数据平台。中间的历程非常坎坷,到2010年的时候,Greenplum这条路因为规模和可用性的问题以及计算准确性问题被放弃;2013年的时候,Hadoop平台也因为数据中心规模扩展不上去和安全管理以及权限管理和资源管理等一系列问题,最后不得不放弃这套体系。



“飞天”涅槃


最终我们使用自主研发的“飞天”操作系统将五千台机器整合到一个大平台,用“飞天”操作系统能够分布式地部署到异地的多个机房的能力实现了大数据计算和存储能力。“飞天”操作系统帮我们真正实现了梦想:把三个云计算方向整合起来,提供通用的计算能力,提供一种足够便宜足够强大的计算能力。



通过使用安装了Linux系统的五千台相同的计算机,通过“飞天”的分布式文件系统,整合成为一个分布式系统,开通了三类服务:

第一类服务:弹性计算,就是应对虚拟化的服务,但是它不只虚拟化,弹性计算可以做计算虚拟化,存储虚拟化,可以提供更加强大的计算环境;

第二类服务:提供淘宝这样强大的分布式应用中间件来帮助企业打造分布式应用;

第三类服务:大数据处理和数据智能的这些业务,这些业务都是依赖于我们的大数据处理能力进行的。

数据处理能力推动智能业务

通过“飞天”系统成功地将三种云计算以及云计算路线整合到一个平台当中,有了这个平台的支持,才使得整个企业的智能化得到了长足的发展。在智能化发展过程中,我们基于这些计算能力,逐渐垒高了技术和模型的储备以及对数据应用的储备,一层一层地从分析工具到应用引擎再到解决方案,支撑了阿里巴巴整个智能化的人力资源,智能化的安全管理,智能的物流客服以及智能化推荐,这些也支持阿里巴巴整个集团业务不断前进和发展。



十年攻防铸就云安全

在这个的过程中,阿里巴巴作为一个互联网公司,在快速发展业务的同时也在遭受世界上最多的互联网攻击。

统计数据显示,我们每天会防御2亿次暴力破解,2000万次Web入侵,超过1000次DDOS攻击,在这样恶劣的环境下,我们用10年的时间产生出一整套安全体系和服务产品。这个产品从感知态势就可以知道,哪些坏人,哪些恶意的行为在哪里发生,以及他们用了什么样的服务器,谁是主控,对我们在进行什么样的探索行为,背后的人是谁,他的身份证号码是多少,这些东西,我们都通过感知的基础之上进行捕获。

基于感知的基础就可以做到知己知彼,才可以百战百胜,战胜敌人的同时对自己进行保护。我们的产品服务有网络层面的保护,也有服务器主机层面的保护,更多的会上升到业务层面的保护以及对于数据的防护。



举个态势感知的一个例子,双十一当天,有很多机构和竞争对手在对我们发起攻击。这些攻击行为来自世界各地,来自机器和人。通过对其进行追溯,我们构建出了一套以大数据为核心的安全体系,围绕着网络,应用数据,形成了各个维度的全链路的闭环式的联动安全体系。

这套安全体系,不仅在保护着我们自己,同时也在保护阿里云的用户,帮助他们修复每天6000多次的高危风险,阻碍1000多次DDOS攻击,拦截2000万次的Web渗入和2亿次主机暴力破解,为阿里云百万客户保驾护航。

软件定义数据中心

对于从用户提供的服务中沉淀下来的能力,用一句话总结就是:软件定义数据中心。在如此大规模的情景下,我们没有办法靠传统方式去堆叠硬件,去做集成和做分段维护,我们必须要有新的方式:基于最简单最普通最标准化的硬件构建底层,然后用“飞天”操作系统将几千台机器整合成一台机器,在其上为大家提供软件定义存储的服务。客户需要对象存储,阿里云就提供对象存储,无论如何一定会解决客户的存储问题。



软件定义网络的服务,需要安全网络VPC,需要负载均衡和高速通道,阿里云都可以帮用户提供,不需要客户去独自支撑这样的服务,也不需要客户再去手工操作。之后再将安全包括刚才提到强大的云盾,安骑士态势感知作为一个防护体部署在数据中心之上。

有了这样的软件定义存储、网络和安全之后才算是提供了真正的弹性计算。



有了阿里云自主研发的这些技术优势,才能够支撑我们在全球快速地部署云计算业务,并且快速稳定地运营云计算业务。

因为这些特点,阿里云在公共云上有了很大的突破,海量用户和应用都承载在我们云服务的资产之上,使用了弹性计算、中间件、大数据的存储计算、智能化的应用开发的能力以及安全和监控云服务。

“专有云+公共云”提供上云最佳路径

考虑到国内的一些实际情况,一些企事业单位上云遇到了很多痛苦和困难,我们就把软件定义数据中心,大数据计算的能力和分布式应用的能力作为一个“三位一体”的解决方案,通过专有云的形式,部署到企事业单位的体系内,帮助企业单位去享受互联网技术带来的赋能。同时也解决企业不能使用公共云的困惑。

我们还发现企业还是需要“互联网+”的,这时候我们就以混合云的方式解决问题。企业内部在成员企业和总部内部署自己专有云,作为自己集中化演进的过程,通过阿里云公共云的VPC资源与专有云进行打通,为企业提供快速解除“互联网+”的通道,这样的方式称为混合云。



混合云有很多实际的落地实现,举个例子:中国石化在自己机房内建设了一个私有云,同时在阿里云公共区域也申请了几百台虚拟资源,弹性计算资源和分布式架构资源,它的公共云承载了面向客户的电商业务以及对外其他业务,在专有云上承载了智能物流,智能炼厂,智能油田,大数据安全以及企业内部安全的一些应用。

这一套体系中,应对未来物联网飞速也有一个专门的参考架构:实时的数据上报,将数据快速的沉淀到阿里云的离线计算平台当中,总结出预测性的模型,在实时的流量计算服务单元里面加载,进而帮助我们进行实时的智能判断,然后同时通过数据存储单元和数据转换单元实现智能化和图形化的应用。

这里的一个应用例子:威派格智慧供水业务,它实现了TB级的设备时序数据在日常监控,历史情况回溯,和时指标统计,我们的架构应用于在这个企业所管理水房,泵房以及设备的故障规则预警与智能故障预测等多个应用场景。

阿里人工智能的未来



基于整个大数据平台之上,未来的发展方向是人工智能。智能上一些新的技术往往从娱乐方面开始的,阿里云也在娱乐端做了一些人工智能的尝试,阿里云小Ai在歌王挑战中准确预测了前三名选手的顺位,帮助我们证明了在阿里星球强大的数据支撑下,用500万首歌曲训练后得到的强大预测能力。只有强大的计算能力支持才能开展人工智这个领域的探索。而这只是开始,阿里云未来将会针对各行各业开展人工智能的应用。

(上文根据阿里云技术专家宋杰在5月17日举办的2016云栖大会·武汉峰会上演讲整理而成)


OceanBase创始人阳振坤二三事


阳振坤的存在创造了一种新的生态,他颠覆了时下困扰这个行业的「35岁危机」:一个程序员必须在35岁之前跻身进入管理层,否则将无法以技术身份立足,年长的技术人员意味着贬值、淘汰、失去意义,「60岁还在写代码」几乎是对一个程序员最恶毒的职业诅咒。阳振坤活成了这个危机的最好反例。他离开北大的那年已经36岁,着手数据库立项的那年45岁,投身业界的过程并非一帆风顺,中途经历过不止一次的否定、质疑、团队解散危机,可他始终是一个绝对意义上的程序员。自始至终,他保留了王选教给他的职业原则:正气、专注、顶天立地。

去更远的地方

超过一万名程序员在蚂蚁集团上班,但其中有一个人是另类。他今年已经五十多岁了,活得却像一个刚毕业的计算机系学生,他不带团队,没有管理职务,直到今天依然是第一线的程序员,每天跟程序员们坐在同一个工位区,在工位上看代码、找bug。他并不是一个爱说话的人,不跟大家开头脑风暴会议,参加团建的时候不玩聚会游戏,中午也不跟大家一起吃饭,午餐时间总是一个人跑到楼下,边听英语边绕着圈散步。

办公室里流传着许多关于这个另类的故事,他常常穿着冲锋衣来上班,跟实习生开会的时候也会做笔记。还有一件广为人知的小事:他不止一次在面试的时候自己拿出纸和笔,事无巨细地给桌子对面的人画一个架构图,向对方努力推销自己的工作构想——他想要做一个数据库,叫OceanBase,他试着说服对方理解其中的意义,Ocean代表海洋,Base是数据库,它如何容纳海量数据,为什么做分布式系统……他的讲解常常让对方目瞪口呆,因为在那个面试现场,他才是面试官。

这个另类程序员就是阳振坤,OceanBase创始人、首席科学家,现任蚂蚁集团副总裁。办公室里既没有人喊他Boss,也没人称呼他「阳总」,大家都叫他「阳老师」。这是他在第一份工作里留下来的称呼。因为他喜欢数学,考大学选的也是北大数学系,一路从本科的基础数学读到了研究生的应用数学,阳振坤差一点就成了数学系的老师。只是那时候他觉得自己英语不好,家里又没钱,没办法出国留学。因此经过当时的北大数学系的邓东皋教授介绍,他去找了北大计算机研究所所长王选,成为了一名实习生,想在数学之外的地方走得更远。

跟着王选的日子改变了阳振坤。王选是中国最早也最伟大的第一代程序员,正是因为他创立了汉字激光照排系统,今天人们才能在计算机中使用汉字。王选是一个讲究「方正」的人,阳振坤在导师身上看到了如何做一名程序员。在王选的课题组,做人比做技术更重要,当一个程序员要有技术能力,更要有见识,有正气,为人要正派,要有担当。阳振坤记得王选常说,「德才兼备,提拔重用;有德无才,难当重任;有才无德,以济其奸。」

「那时候他经常教我们,做事情要顶天立地。顶天就是你做的东西,技术上要有过人之处,否则就算你做出来,产品在市场上也没有很大的竞争力。第二个事情是要立地,你从做东西的时候就得想着别人怎么来用它,如果你只是把技术做得很好、很牛,没有太多去想别人怎么用,那样也没有机会的。」阳振坤说。「这后来成为我做很多事的原则,要做到顶天立地。」

抱着王选教给他的信念,他在激光照排领域做出了顶天立地的技术成果。他所发明的智能化高速向量还原算法让光栅图像处理系统不断升级换代,他的技术贡献让他从35岁之后开始过上安稳日子,他被连续破格提拔为副教授、教授,成为北京大学计算机科学技术研究所副所长,北京大学首批长江特聘教授……

就在迈向中年的节点上,阳振坤又一次找到王选,他想离开这个日渐成熟的行业,去外面的世界闯一闯。当时刚刚经历了互联网泡沫,有很多技术空白,有机会让他创造更多新的「顶天立地」。他在联想做过无线局域网、无线投影技术,做出了无线投影机,后来在微软和百度研究过云计算。最后,他找到了自己新的终点:分布式数据库。

2010年,阳振坤入职阿里巴巴,开始了分布式数据库OceanBase的研发。「我在微软亚洲研究院学做谷歌的技术,在百度做过云计算,后来到了阿里巴巴从0到1开始研发分布式数据库OceanBase。这些都有一个共同的特点——如何用更廉价而可靠的办法,正确地处理越来越庞大的数据?」阳振坤说。

就这样,商业世界里多了一个原本要当数学家的人。离开学界已经超过二十年了,他身上依然保留着一个学者的朴实。他是蚂蚁高管里为数不多的自己贴发票报销的副总裁,他没有助理,凡事亲力亲为。他自己则像程序员一样,坐在工位上,守着电脑看代码。

一开始,没多少人看得懂阳振坤在做什么。他是他所在的每一个群体里的另类。他是北大学者里少有的投身产业的人,而在觥筹交错的商人圈子,他的教师属性又让他格格不入。即便见到技术同行,他所创造的一个全新的数据库,能理解的人凤毛麟角。很长一段时间里,他必须活在无人理解的孤独里。他参加技术圈的聚会并不多,倒不是因为工作忙,而是他已经习惯了热闹里的孤独。「我还是会按照我的方式来做事情,我觉得需要参加的活动并没有那么多……对程序员而言,更重要的是沉下心来做事情。就我自己的经历而言,一个程序员把事情想清楚的重要性要比人们认为的大很多。」他说。


12年过去了,他和他的技术已切实影响了超过十亿消费者,他曾经一次次画在纸上跟人解释的数据库构想,最终全面替换掉了支付宝交易、支付、账务系统原本依赖的Oracle数据库,成为支撑着我们日常生活的底层基础,这个中国的数据库还出口到了东南亚和北美等地,为当地的业务提供数据库服务。这些真实世界的成功,让这个技术另类的存在变成了一个有趣的命题:商业世界存在一个阳振坤的意义是什么?

最直接的结果是技术进步。正是因为有他的坚持,中国诞生了一个拥有自主知识产权的分布式关系数据库,这也是全世界第一个大规模应用在金融核心业务的中国数据库。在没有任何先例可以参考的情况下,OceanBase最初仅由只有几十个人的小团队开发出来,以远低于传统数据库的成本,扛住了支付宝一次又一次的双十一支付峰值,入选了2022年世界互联网大会领先科技成果奖。

然而,更重要也更深远的意义或许在于,阳振坤的存在创造了一种新的生态。他颠覆了时下困扰这个行业的「35岁危机」:一个程序员必须在35岁之前跻身管理层,否则将无法以技术身份立足,年长的技术人员意味着贬值、淘汰、失去意义,「60岁还在写代码」几乎是对一个程序员最恶毒的职业诅咒。

阳振坤活成了这个危机的最好反例。他离开北大的那年已经36岁,着手数据库立项的那年45岁,投身业界的过程并非一帆风顺,中途经历过不止一次的否定、质疑、团队解散危机,可他始终是一个绝对意义上的程序员。自始至终,他保留了王选教给他的职业原则:正气、专注、顶天立地。他做过团队的管理者,但他大部分时间都在技术一线,全力专注于代码、设计和具体的技术问题。他的团队信奉另一种职业逻辑:一个程序员也可以不必钻研晋升捷径,专注于自己的代码,深耕技术也可以取胜。这对于热衷谈论风口、热点、捷径的互联网行业,不失为一种有意义的对照。

跟阳振坤一起爬过山的人都知道,他有自己的法则。在山脚下出发的时候,阳振坤并不是夺冠选手,他既不是体力最好的,也不是冲刺最快的,他的爬山也不讲究走捷径的技巧,他只是按照自己的节奏,找准通往山顶的路,不紧不慢地匀速前进。他比不过起速快的年轻人,中途也会被抄小路的人反超,但整个全程他走得最稳,走得也最远,所以几乎每一次,他都是最早攀登顶峰的人。这是他的取胜之道,一个技术主义者赢的方法论。


技术的愚公移山

杨传辉是第一个看懂阳振坤想做什么的年轻人。2007年,他毕业到百度工作,入职的唯一要求是要进阳振坤的组。后来阳振坤加入阿里巴巴,他也在一个月以后入职,继续一起研发数据库。

一开始,他们都着迷于谷歌的分布式系统。杨传辉在谷歌实习的时候第一次知道它的概念,而阳振坤在微软的时候,常常和王坚讨论起这个话题,每次聊起都觉得很震撼。以前人们要处理海量数据,只能把机器越造越大,但是谷歌提出了一个新主意——我们可以用很廉价的机器,以一种分布式架构组织起来,去完成大型机才能做的事情。这个主意激发他们去探索,如果将分布式应用在关系数据库上,同时解决这种系统的可用性和可靠性,那会是新的「顶天立地」。

当时,数据存储是一个亟待解决的难题。他们在组内讨论业务前景,中国人网上交易是海量的,阿里巴巴的服务器最早就是以千为单位计数,累积超过数千亿条记录了。当时支付宝一天就一亿多笔交易,如果像传统商业数据库那样一笔交易成本一毛多钱,一亿多笔交易一天就一千多万,哪个公司扛得住这样的成本?在这条路上依靠像Oracle这样的商业数据库是代价高昂的。更何况,业务还经常会跑来说,下个星期我们要做一次大促销,你们数据库扛不扛得住?Oracle扩容需要购买高端服务器和磁盘阵列,这至少需要2-3个月。这是摆在技术面前的挑战:能不能创造一种新的模式,既把成本几十倍地降下来,又能保证稳定、可靠、快速地按需扩容缩容?

在一次次重写的架构图纸上,阳振坤慢慢找到了一种可行的解决路径——固态盘SSD每秒钟能读取几万次,每次只需0.1毫秒,大大优于机械盘的读取能力。如果设计一种分布式数据库,采用SSD存储数据,只记录修改的动态数据,而把全部数据记录的写入时间放在用户行为减少的后半夜一次性写入,这就可以大幅提高效率,提升数据可用性。而同一份数据至少存在三台机器上,这就好像把生命送上三个运行的小星球上面,它们彼此都是对方的备份,失去任何一方都还有人能顶上,这就能保证数据的可靠。

这就是OceanBase数据库最初的构想,阳振坤提出了一种同时解决了成本、性能、可靠、可用、容错、容灾问题的技术解决方案。之后十多年的现实证明,这个最初的设想不仅成立,而且是关系数据库的显著技术进步。

OceanBase第一个业务应用在淘宝收藏夹,刚上线的时候是一个机房十几台机器,后来数据量和访问量都已经翻倍了,还是十几台机器。他们用了几分之一的成本,实现了比当时更高的性能。

但是,这个技术创新在诞生之初面对的却是接连的否定。当时Oracle数据库已经占据了市场统治地位,替换风险很大,那时候淘宝大部分业务也都已经按照用户维度做了分库分表,一个全新的数据库很难有用武之处。更重要的是,数据库是底层系统,研发周期以年为单位,短期看不出成效,但那时候人们还沉浸在中国互联网的高速增长中,没人知道十年后会有贸易战,大部分人不能理解为什么研发一个国产数据库迫在眉睫。

面试新人的时候,阳振坤经常问:「你觉得有没有希望追得上Oracle?」在OceanBase刚开始的几年,他得到过表述不一的回答,结论都是统一的「不可能」。

在当时的处境下,阳振坤提出「顶天立地」的技术目标听起来十分遥远。「那时候我经常跟大家聊,我们做这件事情,一定不只是给淘宝做,给天猫做,给支付宝做,我们一定要面向全世界,做一个真的顶天立地、通用的数据库,因为数据库一定会从单机走向多机、走向分布式,我们正好有机会先走了这一步。」

最初的很长一段时间里,阳振坤成为了数据库行业里的另类,围绕他身边的都是怀疑:为什么要自己做数据库?有那么多开源的数据库,拿来用不就行了?数据库发展那么多年,不止一家公司想做新数据库都没做成,你是一个没有做过数据库的人,凭什么你能做成?

「阳老师一直都觉得OceanBase肯定能替代Oracle,当时对我们来讲觉得是一个天方夜谭的事,我们怎么可能替代Oracle呢?我们连人数上都(比不上),我们几十人,人家Oracle几万人。从零到一做一个数据库,觉得是愚公移山,大家都觉得有现成的干嘛不用,干嘛非要自己去研发一个,但阳老师相信这件事。」在OceanBase负责技术运营的李琦说。「我觉得他身上有那股劲儿,非常执着,对于他坚信的事情一定要做到极致,并且会想尽办法把他相信的事情变成现实。」

「其实技术永远不可能完全地舒展开,那是个理想状态。但是我觉得一个技术团队(取得成功),也许有两点很关键,让大家看到技术很有价值,也要让大家理解技术的力量。因为有时候解决问题,可能不是用的技术手段,比如有人谈判能力很强,靠人的能力把价钱压下来了。但是我要做的事情是让大家看到,我们能用技术的手段解决问题。」阳振坤说。「我本身是一个程序员,我能把技术想得很清楚,估算出来大概需要花多长时间,多少人,就能把这件事情做出来。我们要让大家认同我们的技术做法,(相信)这个技术方向是正确的。」

这是阳振坤从王选时代就形成的信念。一个例子是,最早印刷的汉字看起来有点别扭,因为当时的技术没办法完美表达曲线,一碰到汉字有弧度的部分,像是撇、捺、点、勾,只能用短小的直线拼凑成近似弯曲的样子,这导致汉字的每一种弯曲在芯片上的算法表达都很困难,一度陷入瓶颈,但是阳振坤一点点推敲,最终想到了办法。他学数学出身,他用一个三次多项式表达这种曲线,再用三次加法的迭代让芯片处理这条曲线,这样一来就实现了芯片完美表达汉字里的每一种曲线,也是他的技术自信:那些原本你觉得不可能的事情,因为代码的存在,它们都能发生。

「他有一个信念,他认为没有什么技术问题是解决不掉的,只要这个问题有最优解,大家就一定能想到,这是他的自信。无数年的工作已经证明了这一点,他慢慢形成了这种自信。」杨传辉说。

只要有技术的进步,只要有人的坚持,改变一定会发生,这种技术自信一点点感染着周围的人。杨传辉说,一开始出去谈合作的时候总要开很久的会,因为对方做业务,听不懂他讲的底层数据库。每次一提到自家数据库的特征,「既能保证强一致,又能保证高可用,宕机的时候还能保证不丢数据」,对方总是一脸怀疑,这怎么可能呢?有时候开会讲不明白,开完会一边吃饭一边继续讲,他常常觉得最后对方同意,并不总是因为技术。「有时候业务方也知道,他没办法理解底层的每一个细节,他没听懂,但是他觉得你人是靠谱的,信任我们的为人,给我们尝试的机会。」

2014年,支付宝的交易支付系统开始使用OceanBase数据库,为了说服管理层信任技术,阳振坤当时写过一封邮件:「咱们的同学非常优秀:给他们一个信任,他们会给我们惊喜甚至奇迹,我们认为技术上做不到的,他们也能做到……」不久后,他也得到了信任的反馈:「我不懂技术,但是我相信技术。」

事实上,技术最终给出了一份超出想象的答复。在很多层面上,OceanBase已经做到了互联网数据库基础软件中的最优解。它在2017年在支付宝全面取代IOE,在2019年又在世界上最权威的数据库评测机构TPC(国际事务处理性能委员会)发起的TPC-C基准测试上取代Oracle,成为第一名,打破了Oracle保持了9年的世界纪录。不仅如此,从2017年开始,OceanBase开始服务外部客户,2021年面向全网开源,去年八月份发布了可以在全球最小的电脑树莓派上运行的4.0版本,这打破了当前分布式数据库只服务于大客户的局限,新版本让中小企业也可以低成本享受分布式数据库的高性能。

这所有的现实成绩证明了最初设想的成果,技术道路的确把商业带到了更远的地方,OceanBase朝着一个通用的数据库迈进,这条路走得越来越远。


阳振坤获得「CEO特别奖」

打破「35岁危机」

所有人都意识到,阳振坤还想要去更远的地方。杨传辉依然跟着阳振坤一起工作,他现在成为了OceanBase的CTO,每次跟阳振坤聊天都会发现,这位技术前辈总有新的想法。他在手机上预约剪头发的时候意识到,理发店都习惯于把预约信息放在公有云上,这意味着一种新的数据存储需求,而这可以成为分布式数据库的机会,他们可以用切分虚拟数据库来满足这种新的需求。还有一年过完春节回来,他在纸上画起了新的架构图,这是他用假期想明白的数据库未来——在同一个数据库里既做转账记账,又可以算账,一种被称为HTAP的数据库。

和阳振坤的每次见面都是一场新的学习。他已经逐渐迈向退休年龄了,但他在工作中的热情程度却丝毫不亚于一个刚入职的年轻人,直到现在依然喜欢提出新问题,讨论新方向。阳振坤在团队内部有个规矩,所有专利发明只要没有他的直接贡献,都不能写他的名字。但连他自己都没有注意到的是,在OceanBase 300多项专利里,超过三分之一的专利第一署名申请人是阳振坤。也就是说,留在技术一线的阳振坤一直在不断输出,一个程序员45岁之后的创造力依然强大,能源源不断提出新的构想。

办公室里的「阳老师」在技术之外的地方,也留下了很深的影响。与他共事的人最常提及的一个影响是,在他身上,他们重新理解了年龄,重新理解了时间。

互联网公司的典型项目周期是两个星期——用户提需求,他们在两周内响应,上线发布,项目结束。但是阳振坤的项目周期单位是年,最短也要以半年计算。当时新到公司的年轻人找他抱怨说,他们的合租室友在天猫工作,别人做网页,熬一两周就能看到成效,指着网站上的页面说,这就是我做的。可是自己来了半年了,好像什么都没做出来,做出来的东西也都关在屋子里,根本没有成绩。

阳振坤的回答现在也成为了这个团队的经典答案:「再过三年,你做的数据库还在天猫用,但是他改的网页三年后早就已经看不到了。」

「MySQL从发第一个版本到普遍用起来,花了十几年的时间。十年其实是一个挺正常的事情,基础性的东西是不可能几个月或者一两年就能做成的。」阳振坤说。

「我们这种做底层系统的团队,跟德国的蓝领工人很像的,他们年纪也很大了,但是他们很珍贵,比方说最精密的车床一直是靠人工制造的,最精密的镜片,最精密的望远镜,到了一定程度之后,它要靠人的经验。这也是为什么在美国一些老牌公司里面有很多年龄很大的程序员,那些做底层系统的人需要很长时间的培养、磨练和积累。」

这是阳振坤自己从数学转行做程序员的体会。刚从数学系转到王选所在的计算机系时,阳振坤对于程序员的生活一无所知。面对计算机,他几乎什么都不会,不懂C++,不会写任何一门编程语言,事实上他在此之前都没怎么见过计算机,因为八十年代的北大一共也只有几台设备,计算机系教学都不够用,更轮不上他所在的数学系。学计算机的头五年,他基本上一天工作16个小时,每天早上7点机房一开门就在门口。程序员的职业意味着什么?要怎么做?未来的路怎么走,全都是在摸索中发现的。

技术研发需要无止尽的探索

九十年代跟着王选去美国,他们去访问IBM的研究中心,不少白发苍苍的程序员坐在办公室里,敲着键盘写代码。这一幕一直留在阳振坤的心里,这是他所理解的程序员应有的样子。「比尔·盖茨曾经说过,IBM之所以发展得不够好,一个重要的原因是他们把聪明人都提拔成了管理者,很多技术、很多产品没有足够聪明的人继续发展它。这句话可能不见得对,至少说明了一个问题,管理不是每个人发展的唯一路径。」

「过去做应用、做前端,大家都是一股脑儿跑去做一些很前端的东西,来了OceanBase发现这个行业的人做了十年以上的非常多,这件事打破了我长期以来的观念。」李琦说,「阳老师一直在说,我们一定要沉下心来,做底层技术就是需要足够的耐心和充分的信心。我们自己也相信这件事,像阳老师那样把事情做五年、十年、二十年,慢慢看到成效。我觉得这里打破了所谓传统互联网『35岁危机』魔咒。我们不会说35岁是一个坎儿,在这个行业里沉淀的时间越久,你对行业的理解越深,你也愿意再花精力在行业里继续沉淀。在这里会有一种心态上的从容,把事情做好就行了,不用考虑太多。」

作为程序员,杨传辉也是一个不相信「35岁危机」的人,甚至他在招聘中会更看重程序员的年资,这是他和阳振坤一起做数据库十多年以来的切身经验。OceanBase很多核心的人在35岁以上,因为做数据库的开发设计需要时间沉淀,他自己也是花了近十年的时间才真正理解了数据库,一个人到了35岁也刚好把自己行业最深的问题想清楚,所以35岁到45岁正是一个程序员整个工作生涯产出最高的时间段,而不是一个应该忧虑的时间段。「一个50岁的人写代码,现在大部分人会觉得,这个人是不是不太行。以后看到这样的人,你会觉得挺正常的。阳老师这样的人现在只有一个,以后会越来越多。美国白胡子程序员多了去了。」杨传辉说。

再过几年,阳振坤就要60岁了,他的愿望是那时候的自己依然可以留在一线,解决技术的问题。如果一切顺利,退休的时候他希望自己依然是一个程序员。

「坦率地说,我并不是特别聪明的人。我见过聪明的程序员,比如在北大的时候我们的大师兄,内部各种各样的工具一多半都是他随手写完的。我佩服这样的人,可我知道我不是这样。我属于不算特别笨也并不聪明,可是很努力的那种人。小时候父亲教我一句话,『千年饿不死的手艺人』。我不想当头儿,也不想当官,如果可以,我还是喜欢自己做事。」阳振坤说。「我觉得中国人在技术上的创新,尤其是核心贡献与国际先进水平的差距现在真的越来越小了。就像当年的激光照排技术让中国走在世界前列,我想我们的数据库应该也有这样的机会。」

直到现在,他还是会在面试的过程中拿出纸,给新认识的人画OceanBase的框架图,讲解一个个分布式数据库里的技术细节。这是他作为商业另类最典型的例证,但现在,这也成为了他寻找同类的暗号。他的团队里现在多了一个另类的故事——有一次的面试里,坐在现场的候选人是曾在王选课题组里的学生。他曾经在北大读书,阳振坤是他的密码学老师。来面试之前,他曾经犹豫过要不要加入这个团队,但是在面试的时候,阳振坤直接掏出一个本儿,跟他讲OceanBase的未来是什么。他说,他就是为了这一刻留下来的,因为那种感觉像是回到了几十年前的北大,回到了王选的课题组,回到了他们做技术最初的起点,原来在学术界之外的地方也可以纯粹地做技术,讲究正气,追求顶天立地,把卡脖子的技术真正拿下,做中国人自己的技术。

他决定留下来,和阳振坤一起继续往前走。一个人的坚持变成了一群人的信念,办公室里不再只有一个另类。