几天前在一篇《2684亿!阿里CTO张建锋:不是任何一朵云都撑得住双11》的文章中提到了阿里有几个方面做的特别好:
- 自研神龙架构、说的是神龙服务器支撑下的阿里云计算基础架构平台。
- 自研云原生数据库、一个是OceanBase、一个是POLARDB。
- 计算与存储分离、说的是大规模分布计算场景下的独立可扩容存储池。
- 大规模RDMA网络、存储之所以在远端访问可以比本地读写更快是因为RDMA网络,阿里是全球第一个大规模应用RDMA网络的公司。
两天前在北大光华管理学院和阿里研究院联合举办的2019「看中国」思想论坛上,阿里巴巴集团董事局主席兼首席执行官张勇表示,双11最看重的是和54.4万笔/秒的订单峰值以及背后的技术。
54.4万笔/秒背后的技术可能有很多,最首当其冲的就是云原生数据库吧,这次就让我们聊聊云栖大会上和这两个云原生数据库有关的技术细节吧,文中内容主要取自2019杭州云栖大会以下论坛:
- 分布式数据库专场
- 数字银行专场
- POLARDB云原生数据库专场
首先来看OceanBASE,OceanBase是由蚂蚁金服开发和使用的,据蚂蚁金服公众号文章介绍,在双十一期间,OceanBASE创造了6100万次/秒的数据库处理峰值的世界记录, OceanBase还在不久前的的TPC-C测试上一举挑落霸占榜首九年的Oracle,令Oracle从此不在独孤求败的同时也宣告在数据库这个基础技术领域里中国人终于赶上来了。
在分布式数据库专场有一个Session叫做《深入OceanBase 企业级数据库的分布式技术》,毫无疑问OceanBASE和Oracle 都是企业级数据库,但OceanBASE还是分布式的。从TPC-C的测试架构上看,Oracle用于完成测试的是专门设计的小型机,而OceanBASE用的就是普通的PC 服务器,正是因为有了分布式技术才能让便宜的PC服务器战胜昂贵的小型机。
在Ocean当前主要应用的2.2版本中,主要突出三个特性:
- Oracle 兼容性、全面兼容Oracle的数据类型,支持Oracle PL/SQL 存储过程、在TPC-C测试中就使用了Oracle兼容的存储过程。支持执行计划管理功能、支持部分Oracle系统预定义Package、支持150+的兼容函数和表达式、30张数据字典、30张性能视图。
- 事务处理、支持串行化隔离级别这一最可靠但代价最高的事务隔离机制,支持savepoint/rollback to快速恢复机制,支外键约束。
- 性能提升、OLTP(联机事务处理)和OLAP(联机分析处理)性能大幅提升,这次的TPC-C测试用的就是这个2.2版本。
除了阿里巴巴经济体,OceanBASE目前的部署案例包括(排名不分先后):
- 南京银行
- 山西农信
- 西安银行
- 中国建设银行
- 网商银行
- 东莞银行
- 天津银行
- 苏州银行
- 国泰产险
- 常熟农商银行
- 广东农信
- 招商证券
从客户案例上就可以看出,OceanBASE主要的定位是金融支付这个对数据库最严苛的场景。在数字银行分会场,来自蚂蚁金服的专家作了《银行数字化转型和创新案例》的分享。
在演讲中提出了数字金融的六大预见:
- 银行正在从一个“地方”变成一种随时、随地、随需、“永远在线”的服务。
- “数据资产”将成为最重要资源和核心竞争力,从现有的“流程银行”转变为“数据银行”。
- “数字化半径”=“业务迭代半径”,银行更加注重“数字化生态连接”的建设,以获得更多的业务场景和流量。
- 数字化成熟度高的银行将率先完成“乐高式银行”,整合内外部业务资源,形成“App Store”的运营模式。
- 银行将从单纯的“金融服务商”转变为“综合类生活服务商”,超过60%以上的金融服务将隐藏在各个生活场景中,金融服务讲随手可得。
- 2022年内将有超过50%的银行会完成新一代分布式金融核心架构改造,迎接全面的数字金融时代。
其中OceanBASE就是阿里巴巴用于新一代分布式金融核心架构改造的利器之一。
在阿里云互联网银行的解决方案的架构图上,OceanBASE位于IaaS基础架构服务平台的核心位置。
(图片来自于阿里云官网)
在这届云栖大会上,来自蚂蚁金服的阿里金融云正式并入阿里云,成为阿里云内部继新零售、数字政府之后的另一个一级部门。OceanBASE也正式上架阿里云,目前正处于邀测阶段。
(以上内容来自阿里云官网)
OceanBASE在过去通常只部署在金融机构的线下专有云,今天来到了线上公共云,另一个阿里云云原生数据库产品POLARDB则是从线上公共云来到了线下私有云。在本次云栖大会上,阿里云宣布正式推出高性能数据库一体机—— POLARDB BOX
POLARDB是阿里云自研的云原生数据库,在本次双十一期间,POLARDB数据库处理峰值达到8700万次/秒。在前不久举行的第六届世界互联网大会上,POLARDB更是当选了世界互联网领先科技成果。
(图片来自云栖社区)
本届云栖大会设有专门的《POLARDB云原生数据库专场》,第一个Session是阿里云智能数据库事业部总经理鸣嵩的《POLARDB 云原生数据库演化》。
鸣嵩将数据库的演化分成三个阶段:
- 采购License自建、购买Oracle、SQL Server、DB2等许可,安装部署在自己的服务器上。
- 云上托管数据库、使用阿里云的RDS这样的托管数据库,使用的还是传统数据库,只不过改由云服务商来运维和管理。
- 云原生数据库、在传统数据库并不适用于数字经济环境,因此阿里云根据组织机构数字化转型的需求开发出了云原生数据库POLARDB
阿里云为什么要开发云原生数据库?鸣嵩同时还管理着阿里云RDS团队,自然对托管数据库在互联网场景下的痛点了如指掌:
- 活动上线,压力突增,数据库来不及升级
- 业务发展很快,数据库即将超过3T,来不及拆库
- 应用扩容了,上百台ECS连接同一台数据库,高并发下性能差
- 使用读写分离,刚更新的数据,查询不到
- 老板要看活动运营数据,有一个复杂大SQL查询非常慢,半小时了还没跑完
- 主从复制经常中断,1236 1042 错误
- 添加一个字段,备库延迟3小时
- 1T数据量,一次备份竟然需要十几个小时
- 备份时会锁表,必须在业务低峰期操作
阿里云开发POLARDB就是要解决这些问题的,POLARDB单个集群存储容量最高可达100TB、单库最多可扩展到16个节点、集群最大支持1408核CPU、10TB数据的实例迁移只需要15分钟、1分钟即可完成10TB的数据备份。适用于企业多样化的数据库应用场景。以下是POLARDB的架构图:
(上图来自阿里云开发者社区)
POLARDB采用的是分布式共享存储架构,就是集群中的所有计算节点共享使用一组分布式的存储节点,计算和存储节点之间使用高速的RDMA网络通信。不像RDS的只读节点需要额外的存储空间和复制开销,POLARDB的共享存储架构无需为只读节点增加存储成本,因此在RDS的最大1主5从的架构下,使用POLARDB反而能够降低44%的成本,另外由于新增只读节点不需要数据复制,POLARDB最大能够支持15个只读节点,是RDS的3倍。
在数据库引擎支持上,POLARDB提供MySQL5.6/8.0、PostgreSQL11、Oracle 兼容引擎。因为完全兼容MySQL,MySQL的分库方案依然可用,当数据库容量超过100TB时,POLARDB for MySQL还支持通过DRDS分布式数据库服务来进行横向水平扩展。
假如您曾遇到过上面提到过的托管数据库痛点,不妨尝试下POLARDB,目前POLARDB正处于推广促销期。