星光不问赶路人,看阿里自研数据库崛起之路 原创

阿里抓住云计算的契机,依托绝无仅有的“双十一”海量数据和高并发的实战考验,冲破了传统商业数据库的长期垄断,终于实现了国产自研数据库的跨越。

至顶网软件与服务频道消息: 2019年的“双十一”已经落下帷幕。天猫“双十一”实时成交额再创新高,达到2684亿元人民币。阿里旗下的两款自研数据库POLARDB和OceanBase表现也非常优秀,POLARDB最高峰TPS达到8700万次/秒,OceanBase达到6100万次/秒,创下数据库的新记录。抗住如此大并发流量的压力,充分证明这两个数据库的可靠性与稳定值得信赖。

应该说,这一切并不令人意外,今年10月份阿里自研数据库已经给了我们一次大大的惊喜,OceanBase刷新了甲骨文在TPC-C排行榜保持9年第一的记录,完成了登顶。同样,POLARDB在与同类竞争对手的对比中,也表现亮眼。在Gartner公布的2019年全球数据库魔力象限评选中,作为国内数据库市场份额第一的厂商,阿里云成功进入“挑战者”象限,连续两年作为唯一中国企业入选。在Forrester发布的数据库评估报告《The Forrester Wave:Database-As-A-Service,Q2 2019》中,阿里云数据库也跻身“强劲表现者”阵营。

 星光不问赶路人,看阿里自研数据库崛起之路

众所周知,在数据库领域从来都是甲骨文(Oracle)、IBM(DB2)、微软(SQL Server)等国外巨头的天下,垄断市场超过30年,此前中国的数据库从来没有在Gartner的魔力象限上出现过。虽然这些年我们从来没有放弃过研发自己的数据库的努力,但在市场上几乎感受不到国产数据库的存在。一直等到阿里POLAREDB和OceanBase,中国的数据库才终于有了自己的一席之地,实属难得。

回头看阿里云数据库的这一段历史,一路走来历经波折,非常不易,但在阿里技术人员的坚持和阿里高层坚定不移的支持下,终于迎来了今天的成绩,为中国人在科技领域赢得了荣誉。这一段历史不仅值得阿里人记忆同时也值得中国IT人好好铭记和回味。

2009年的那一场行动

2009年,在阿里巴巴的发展历史上绝对是值得大书一笔的一年。这一年,阿里云的飞天操作系统写下了第一行代码,它揭开了中国云计算产业的新篇章,也是在这一年,阿里集团启动了去“IOE”行动,此举同样给阿里乃至整个中国的IT行业带来深远影响。

“IOE”三个字母分别代表IBM、 Oracle和 EMC 。当时IBM的小型机、Oracle的数据库、EMC的存储是企业IT系统的主要担当,它们代表了稳定、可靠,但是价格昂贵。去“IOE”就是用开放、便宜、通用设备来取代这些封闭、昂贵的专用设备。

那些年,随着阿里巴巴业务(当时主要有B2B网站、淘宝、支付宝)的快速扩张,每年新采购设备费用和旧系统的维护费越来越大,更为重要的是,这些设备和系统就像一个个黑盒子,一旦出现故障必须等待厂商的技术人员来解决。花了那么多钱,还被人“卡着脖子”这是阿里巴巴所不能接受的。2009年,忍无可忍的阿里人决定把命运掌握在自己手里,这才有了去“IOE”。

在“IOE”中最难去的就是“O”,也就是Oracle数据库。因为Oracle数据库中保存的是企业最核心和最宝贵的资产——数据。更换数据库不仅意味着要面临数据迁移时损坏和丢失的风险,还意味着上层软件代码重写。更为要命的是,Oracle数据库是当时技术最先进的数据库,如果Oracle不行,哪个数据库行?在2009年,阿里 Oracle RAC 集群节点数达到了创记录的20个,成为亚洲第一,这样的数据量换到哪个数据库能抗得住?

没有其他选择的阿里对开源数据库MySQL进行修改以满足淘宝的业务需要,这就是今天的AliSQL的雏形,后来发现这并不能彻底解决阿里面临的挑战,不得不启动了数据库的自研之路,这才有了今天的POLARDB和OceanBase。

阿里去“IOE”的过程历时超过3年,一直到2011年7月,淘宝商品库完成了从 Oracle 到 AliSQL 的大迁移,2012年全淘宝最后一台小型机宣布下线,阿里的去“IOE”取得初步成功。2013年支付宝最后一台小型机下线,这也是阿里巴巴全集团最后一台小型机下线,阿里历时三年多的去“IOE”基本告一段落。在此过程中阿里自研数据库功不可没。

POLARDB:为云而生

当年阿里决定“去IOE”时,市场上除了Oracle外其实没有哪个数据库能满足淘宝的业务要求,最后换成MySQL是不得已。MySQL是使用最广泛的开源数据库,最重要的是阿里可以拿到源代码,这样就可以按照自己的应用场景对代码进行修改和改进。

阿里技术人员对MySQL数据库按照自己的业务要求进行了修改和改进,增加了不少原来没有的功能,AliSQL由此诞生。到2013年,阿里的“双十一”就已经完全靠AliSQL来支撑了,但是每一年阿里的“双十一”交易量都会有比较大的增长。尤其是每年“双十一”零点的峰值来得越来越猛烈,而且几乎是瞬间上去的(今年“双十一”数据库压力达到了正常值122倍),一直要持续10分钟,再开始逐步递减。这种高峰时的高并发流量是对数据库的最大考验。

“每年双十一零点开始的10分钟,是我们压力最大的时候,我们会紧张地盯着压力曲线,看看会不会抖,因为一抖就是数据库出现了问题,只要过完这惊心动魄的十分钟,我们就基本可以放心了。”阿里云智能数据库产品事业部技术专家曹伟(花名:鸣嵩)表示。

面对每年双十一不断攀升的压力,眼看AliSQL数据库很快就接近能力极限。2015年阿里云决定研发自己的数据库,两年后的2017年10月份,阿里云宣布推出POLARDB,开始公测,2018年4月POLARDB正式对外商用。

阿里云的POLARDB是真正为云而生的数据库,采用的是分布式共享存储架构,计算与存储分离,带来数据库的高可扩展性。由于计算与存储的解耦,存储可以通过RDMA高速网络形成分布式存储。正是由于采用了计算与存储分离的架构设计使得POLARDB的最大数据容量可以达到100TB,并发量也达到了MySQL的10倍以上。除了借助RDMA等网络技术实现弹性伸缩能力之外,POLARDB还享受了很多现代技术的红利。比如,POLARDB采用了傲腾内存、GPU等等,从而带来更好的性能表现。

谈到POALRDB的特点,曹伟总结为三点:创新、开放和普惠。所谓创新是指POLARDB利用其诞生于云时代的后发优势大量采用了创新技术,如上所述的存储与计算分离、RDMA等。开放是指POLARDB充分兼容传统数据库包括Oracle、MySQL的生态,让MySQL、Oracle数据库能一键迁移到POLARDB。成本是指POLARDB成本不到传统数据库的1/6,能让用户以更低成本享受到很大的容量、更高的TPS、很好的生态。

据阿里云的官方资料,目前不仅阿里的核心业务系统采用了POLARDB,中国邮政、银泰百货、北京公交IC卡系统等众多头部企业也都采用了POLARDB,其产品性能、稳定性和可靠性等各种指标得到多方验证,帮助客户大幅降低了成本。比如,银泰百货等采用阿里云POLARDB替换传统数据库,仅数据库一项就节省IT设施开销超过千万元人民币。

OceanBase:9年磨一剑

与POLARDB相比,OceanBase起步更早。与POLARDB从一开始就定位在承载阿里的核心业务不同,OceanBase经历了更多波折,研发过程中几经“夭折”,甚至产品研发出来后一直进入不了核心业务系统。

OceanBase是一款真正面向高并发、大数据环境而生的分布式关系型数据库,基于完全的分布式架构设计和PAXOS协议。与POLAREDB和Oracle不同,OceanBase的工作方式是把原来集中存储和处理的数据分散到不同的机器分别处理,避免了单纯依赖分库分表的分层设计中所缺失的全局一致及跨库查询等缺陷。OceanBase把所有与高可靠性及数据一致性相关的问题放在数据库内核层面解决,使得OceanBase即使架构在普通PC服务器上也可以充分保证系统的可靠性、高可用、强一致、易用性、高性能、可扩展以及低成本。

而今年10月份对外公布的TPC-C的测试成绩也表明,基于分布式架构的OceanBase能够与基于传统的专业服务器、采用集中架构的Oracle实现安同样的功能,并且性能更好,成本更低。

OceanBase的研发始于2010年,2011年OceanBase就已经参与了当年的“双十一”活动,支持淘宝的收藏夹,用了三年,虽然表现不错但一直没有进入支付宝最核心的业务系统。原因也很简单,支付宝的核心业务系统需要支持金融交易,要求稳定、可靠,过去一直用的就是Oracle。对于一个新兴的数据库,即使是自己研发的,阿里也不敢轻易做出用OceanBase替换Oracle的决定。

直到2014年情况有了改变,当时的支付宝CTO终于做出了一个大胆的决策,提出当年“双十一”至少给OceanBase 1%的业务流量。而另一个让OceanBase研发人员感觉幸运的是,在当年对Oracle的压力测试中,发现Oracle出现了抖动,这意味Oracle也并非无懈可击。这一年的“双十一”最后给OceanBase切了10%的流量,OceanBase没有让人失望。

一旦迈过了第一道门槛,有了第一次,后面的一切都顺理成章了。

“在2014年之前大家都认为OceanBase这个自研数据库不太靠谱,等到把业务由Oracle切换到OceanBase后,大家发现Oracle做的很多事情OceanBase也能干,只是需要给自研数据库一个成长时间而已。” OceanBase研究员杨传辉表示。

2015年,OceanBase替换了支付宝交易系统中的Oracle,承担了100%的交易流量和50%的支付流量,2016年全面替换Oracle,担负了100%的交易、100%的支付,这也就意味着在支付宝做的每一笔操作背后都是由OceanBase在执行。

从2017年开始,OceanBase走上了商业化的道路,开始对外赋能,先在南京银行上线。随后,西安银行、广东农信、人保健康险、招商证券、苏州银行、常熟农商行等也在生产系统中使用OceanBase,OceanBase随着蚂蚁金服的金融科技开放,开始了向更多传统金融赋能。

云数据库是未来

回顾阿里云数据库的成长,第一大推动力无疑是阿里自身的业务需求,尤其是“双十一”。实际上,阿里早期也是传统数据库的使用者,随着自身业务的不断成长,遭遇到“数据库”的瓶颈,在高额的成本和运维压力之下才萌生了自研数据库的需求,云原生POLARDB正是这样诞生的。

另一方面,“双十一”也给了数据库一个难得的练兵机会,阿里电商“双十一”在世界上绝无仅有,阿里云的数据库必须经受住“双十一”海量数据和高并发的实战考验,正是世界级的业务压力造就了世界级的数据库产品。

过去近40年的时间里,我们从来没有停止对国产数据库的研发,也涌现了像人大金仓、南大通用、达梦不少国产数据库,但在市场上它们的存在感一直很弱,几十年来没有任何一个商业化国产数据库产品能够替代传统高端数据库。最终还是阿里在业务需求的驱动下实现了这一目标。背后的一个重要原因在于其他数据库没有像“双十一”这样真正练兵的机会。

“数据库需要真实的业务来检验,没人用系统就没法成熟,系统不成熟就没有业务,这样进入了一个恶性循环,系统就很难真正做好。要跨过这个恶性循环,自研数据库可能需要5-10年的时间进行技术积累,同时需要有类似‘双十一’这样极端的业务场景。” 杨传辉表示。

在阿里云数据库成长过程中,除了独一无二的“双十一”,另一个重要原因是云计算的出现,给了POLARDB、OceanBase这些新一代云数据库战胜传统数据库的机会,云计算充当了数据库市场格局变化的推手。

阿里云智能数据库事业部负责人李飞飞就认为,未来的数据库一定是云原生数据库。他说,云原生数据库在成本、灵活度、安全、技术进化层面都优于传统数据库,“传统数据库会像马车一样被更为先进的汽车即云原生数据库淘汰。”

李飞飞并非在为自己的数据库做宣传。我们可以看到,伴随云计算的普及,一浪高过一浪的企业上云风潮让越来越多的企业将应用向云转移,对数据存储和计算分析的能力要求不断加强,直接推高了企业对数据库的新需求,比如海量、高并发、灵活扩展等。而作为因云而生的云原生数据库,天然地具备云的各种灵活性,它把云计算的分布式、灵活扩展以及成本优势淋漓尽致地充分展示出来,从而能够提供强大的创新能力、丰富多样的产品体系、经济高效的部署方式和按需付费的支付模式。尤其是,在与传统商用数据库的竞争中,性价比更是成为一大杀手锏。比如POLARDB的使用成本不到传统数据库的1/6。正因为如此,云数据库从一面市就受到客户的认可。AWS的Aurora成为AWS历史上增长速度最快的一项服务。POLARDB在阿里云2018年4月才开始商用,用户反应也非常正面,也是阿里云成长最快的业务之一。

星光不问赶路人,看阿里自研数据库崛起之路 

“云数据库是未来”并不只是云数据库厂商的说法。Gartner在其发布的《The Future of the DatabaseManagement System (DBMS) Market Is Cloud》报告中明确提出,传统的自己部署数据库的方式已经过时。云是未来,所有组织,无论大小都将越来越多地使用云数据库。Gartner还预计,到2021年,云数据库在整个数据库市场中的占比将首次达到50%。而到2023年,75%的数据库要跑在云平台之上。

毫无疑问,数据库市场格局正在发生巨变,而在这场事关数据库未来新格局的争夺中,阿里提前布局,励精图治,在数据库领域默默耕耘近10年。“星光不问赶路人,时光不负有心人”,10年的努力终于赢得了回报。据Gartner统计,阿里云已位居全球云数据库市场份额第三,年增速在115%。同期AWS增速为74%、Oracle为66%。我们希望阿里能够再接再厉,赋予阿里云数据库更强大的市场竞争力,为中国在数据库领域赢得更多尊重和行业影响力,早日让中国的数据库真正走上世界舞台中央。

来源:至顶网软件与服务频道

0赞

好文章,需要你的鼓励

2019

12/03

18:15

分享

点赞

邮件订阅
白皮书