2017云栖大会POLARDB专场,阿里云高级技术专家贺军带来POLARDB产品特性和通用业务场景的演讲。本文主要从POLARDB产品架构开始谈起,接着介绍了产品特性,最后着重分享了POLARDB通用业务场景。
以下是精彩内容整理:
产品架构
当我接触到POLARDB时很震惊,因为它是集计算、存储、网络,众多的创新于一体的,我个人理解是跨代界的里程碑产品。它采用了全新的设计理念,Cloud Native,和之前谈到云数据库设计理念有很大的不同。数据库最早的血缘关系来自于IT时代关系型数据库,是那个时代计算力的创造。可是当我们把计算力放到公有云上面来连接用户业务的时候,做了很多很多创新的能力提供,可是这样远远不够,为什么呢?今天我们需要针对公有云的环境,针对公有云环境下用户业务的一些场景来设计一款公有云上使用的关系型数据库,这是很难的事情。
POLARDB采用了计算、存储、分离的架构,我们知道这一句话说起来容易,做起来是非常难的。因为存储之所以要和计算放在一起,是为了性能。做一个关系型数据库,所有关系型数据库首要就是性能,当把计算和存储做分离是很容易构想,怎么创造出来是非常难的。
今天POLARDB采用计算与存储的分离是一次大胆的创新,不仅是一个想法,而且我们做到了。关系型数据库的难点在于什么,它要支持ACID的语义,一个关系型数据库不支持AC的语义,是不能支持在线事务处理的业务场景的。如果又要支持ACID,又要性能很好,又要在云上提供公有云的各种弹性能力,还要性价比。放眼市面上商用数据库,似乎觉得多多少少是一种幻想。能不能把所有特点,我们的功能、能力、性价比融合在一起,有一种满足绝大多数业务场景的架构来支撑呢?我们通过对业务的理解,公有云这么多年的积累,我们采用一写多读的数据库架构,极大简化了数据库多写的复杂性。同时又能够满足绝大多数使用场景。我们采用了自主研发分布式存储引擎,这个引擎可以是阿里云自主研发的核心武器,由于采用了共享分布式存储引擎的技术,使得我们POLARDB才有可能提供多维的弹性能力。
如图,它分为三个层次。最上面是DBserver,采用一主多从的架构,其它节点通过在线的扩展或者伸缩来支持读的请求,底层是分布式快存储的设备。
POLARDB 产品特性
POLARDB有哪些特点?首先关系型数据库的诉求就是性能要好。如果说一个关系型数据库性能不好,很难满足在移动互联网时代数据爆发性增长下处理能力的要求。POLARDB的性能好,好在哪些方面呢?具体如下:
- 极速。单点QBS很轻松上到50万,由于采用共享式分布存储,POLARDB增加一个只读节点时性能很好,共享一个数据不用再增加一个新的只读实例进行数据复制,减少了数据复制的开销,增加只读实例的时间快则1分钟,慢则5分钟,而且不会因为数据规模的增加导致时间的增加。另外,采用一主多读的结构,延迟也是控制在毫秒级。还有做备份秒备。这些能力都是具有极速的性能。
- 超大容量。当数据用到一定的时候,随着数据量的增加到2个TB的时候好像不够用了。今天POLARDB能够提供超过100个TB级别的数据量,本身在关系型结构化数据的层面来讲,是非常大的数据级别。
- 应需而变,弹性伸缩。云的弹性在POLARDB数据库架构上得到充分的发挥,根据用户业务变化灵活的做升级。
- 兼容MySQL。开源数据库加进来已经超过Oracle数据库,而且这个趋势每年在递增,我们现在向下百分之百兼容,也会尽快展开对SQL标准的支持。
- 高可靠,高可用。POLARDB采用一主多从的架构,天生支持高可用。当主节点有故障时,会自动到指挥节点。同时数据也是多副本的,数据可靠性可以得到天然的保障。
POLARDB 通用业务场景
讲到POLARDB产品能力时,一个产品的诞生,它的价值、产品的荣耀最后还是来自于服务。如果没有用户的使用,没有解决用户场景各种问题,我们很难体现一个产品的价值。对于公有云上用户来讲,它首先需要考虑的是诉求能不能通过云数据库来解决。新业务,或者已有的业务,如果我想迁移到云上面,我想用性价比更高的数据库,我想使用新一代数据库,把数据库放在公有云上,这涉及到用户整体迁移成本。
如果整体迁移用户非常便捷迁移上来,那么这个迁移成本是非常低的。如果用户还需要改业务程序,这个过程就非常痛苦,也会带来一些潜在的风险,这是用户去做的事情。我们需要提供强大的性能满足高端用户的需求,业务上到云上,我相信公有云,相信阿里云。业务上提供7×24小时的服务,所有的业务是不能中断。当用户数增加了之后,数据库是否有足够的弹性,是否有足够的扩展能力来满足业务场景能力的增加。
最后,数据要安全可靠,满足这几个用户的诉求,才能体现数据库产品服务用户的价值。刚才讲到了POLARDB的能力和服务用户的场景,我把整个大图做一个分解,分成四个场景。
高吞吐量、大数据量处理
高吞吐量,大数据量的处理能力。公有云最早的时候都是服务一些互联网网站的用户。随着公有云能力的增强,公有云各种软硬件持续的进化,公有云服务的能力不可同日而语。有一些大客户,或者一些中型客户,或者有潜力业务增长的客户,他的业务量越来越大,数据量也越来越大。我们知道在移动互联网时代,数据不仅仅是为了解决需求的问题,数据很可能接下来会做一件更伟大的事情,数据可能会改善供需关系的平衡。因为我们知道今天的计算,怎么提高生产效率,生产的效率性能越来越好,用户服务的场景效率就越高,它的性价比也就越好。我们因为服务了用户之后,有了数据之后就会收集用户的诉求,我们就知道该给用户提供什么,有了数据会因需而变,有了数据之后能够提前感知数据的变化。数据可能会改变供需的不平衡,这是大数据时代的贡献能力,随着数据的无限增长,数据库作为商业文明支撑后台计算能力,它在计算力上也需要处理更多数据量的处理能力。
我们采用读写分离的架构,能够应对更多的客户端处理系统,同时采用共享存储,支持100TB以上的规模,应对互联网环境下数据量的增加。
高可用、业务弹性能力
几年前在做developer时候,那时候开发一个高可用软件。当时我们想通过两个单节点上装开源的MySQL,再花钱买一个高可用的软件,然后再学习高可用软件的配置,才能做到让两个机器上运行LAMP架构高可用能力。今天在公有云上,公有云高科技能力把普惠科技用更低的成本,把科技含量用更低的价格服务所有公有云上用户,它所带来的价值巨大。
我们看这张图,每一个POLARDB的计算节点、CPU和内存不够用的时候可以很容易往上升。今天通过共享存储的架构,再去做Scale Up和Scale In。当读业务需求量不大时,还可以把只读节点删掉。今天由于竞争、营销、互联网一些生态的变化,我们的业务可能时间窗口到小时,甚至分钟级,电商经常搞一些秒杀,可能一个小时业务流量就上来了。有这个能力,可能分分钟加一台只读节点,这个事情就变得容易了。
上云、迁移
当一个新的东西,更高级的东西出现的时候,我们特别想来用,可问题是如果还需要改变业务程序很难。如果MySQL兼容的话,它上云非常轻松,再借助其它上云的工具,做一些逻辑的迁移,整个上云甚至在云上面迁移的过程都非常平滑。
今天进入了云计算,物联网,人工智能的时代。之前说互联网要从线上走到线下,可能一些传统行业也要走到线上,甚至用人工智能开辟一些新的业务形态。行业+互联网,可能更多会拥抱云这种性价比高、具有弹性、部署容易的特点,它就会迁到公有云上面。有这样一些迁移工具,兼容也解决了,上云的代价就非常低,整体上云迁移的成本比以前低很多。
高可靠、备份容灾
最后一点,高可靠备份容灾能力。POLARDB有一个产品架构图,POLARDB是一个集群架构,在DBserver层都是集群架构。对于集群架构来说,它的网络连接可以为Mission Critical应用服务。
回头来看,我个人理解POLARDB,它应该是一种想象力+创造力+应变力,来专门设计的一款数据库产品。我相信POLARDB就是以信仰的精神,加上所谓的努力和付出,今天才能呈现给大家。