分享嘉宾:刘冰冰 亚马逊云科技
编辑整理:张了了 聚水潭
出品平台:DataFunTalk
导读:数据库经过了几十年的发展,目前已经是一项非常成熟的技术,然而随着当今互联网的极速增长,我们进入到云时代,企业亟需构建现代化的应用,因此数据库有了更大的挑战。今天结合当前时代的发展和趋势,分享未来数据库需要关注的硬核创新。
今天的介绍围绕以下几部分展开:
--
01 趋势——数据库自由和创新
当今社会IT的快速发展,对诞生于20世纪70年代初的数据库技术提出了更高的要求。
不可否认的是当今时代数据已经成为企业最宝贵的资产,数据库作为存储和管理数据的载体,合理利用可以使企业的数据飞轮转起来,充分发挥数据的价值,使数据转化为业务洞察来指导企业发展。
很多企业目前还是在自己的IDC数据中心去管理数据库,会有很多挑战,主要有以下几种:
很多用户在使用传统关系型数据库,面临着成本高、license惩罚性许可导致的不方便、管理复杂等问题。
很多用户使用传统的关系型数据库都会遇到这些挑战:成本高昂、技术专有化、管理数据库的学习成本高、管理工作复杂,还会遇到License的限定等问题。
基于以上挑战,目前越来越多用户希望利用云的资源来实现数据库的创新,包括:
--
云原生数据库是一种构建和运行都充分利用云计算模型优势的构建数据库的方法。亚马逊云科技VP Adrian Cockcroft提出,云原生架构充分利用按需交付、全球部署、弹性和更高级别的服务,它们大大提高了开发人员的开发效率、业务敏捷性、可拓展性、可用性,资源利用率和成本节约。
我们把客户对云的接受分为了云好奇、云亲近和云原生三个阶段。
和数据库相结合,再去理解云原生,就是利用云上的创新的技术和架构赋能数据库,让数据库有更好的敏捷性、扩展性、高性能,从而实现全球部署、按需交付和弹性,以及高可用性。
基于以上理解,亚马逊发布了业界第一个云原生数据库Amazon Aurora,这也是亚马逊云科技历史上用户数量增速最快的云服务。它具有如下优势:
① Amazon Aurora的特点
可以实现最多可容忍AZ+1失效的高可用性,设计面向金融级跨3个AZ的数据库,同时提供了Global Database完成跨区域灾备。
可获得5倍于标准MySQL以及3倍于标准postgreSql的吞吐量,并行查询加速联机分析处理。
15个只读副本实现扩展性,Aurora Serverless来实现无服务器架构按需、自动拓展的数据库服务,可以实现无业务时自动关闭、按需启动数据库;同时拥有128T的存储。
提供商用级数据库性能的同时,成本仅为传统商业版数据库1/10,存储无需预置,按量付费。
② 设计原则及架构
基于计算层和存储层分别进行拓展,计算拓展8-10分钟。
消除了数据库这端很多脏页回写到存储的动作,变化的日志流存储到共享储存卷来处理。
每个AZ存两份数据,即跨三个AZ存储6个数据副本,做到了保障开箱即用金融级别的高可用性,如果有一个AZ故障,依然可以保证4/6副本,保持可写的状态;如果有AZ+1故障,依然有3份副本,不会有数据丢失,可以通过幸存的3副本恢复损坏的副本来恢复写能力;如果面临整个区域故障,Global Database提供了跨区域的灾备能力。
我们把很多数据库计算的动作下推到智能的存储引擎。计算与存储解耦,计算层和存储层可根据各自需求进行扩展。无论数据量多大,计算扩展速度可以很快。
③ Amazon Aurora 提供极致可用性
Aurora实现了开箱即用金融级的高可用性。如果一个数据中心宕掉了,再加上另一个AZ里的一份数据宕掉了,数据库仍然可以访问。因为在数据层面,是把数据打散,10GB为一个单元,每个数据有6份拷贝,每个AZ是两份,这样可以保证面临AZ+1故障时,仍然有3份拷贝可读。同时,我们还通过Global Database提供了跨区域的灾备。
④ 客户案例
九州通B2B系统的业务特点是读多写少,之前遇到过以下挑战:
使用了Aurora之后明显有了提升,主要体现在以下几方面:
上图中可以看到,原来的自建Mysql需要把资源开的很高,来应付业务高峰时的负载。而Aurora按需而动,在高峰来临时扩展读副本,负载下降后再回缩读副本,有非常好的伸缩性。
⑤ Aurora Serverless
Aurora Serverless是Aurora提供的无服务架构,扩展性有了更高提升,可以实现以下功能:
目前Serverless 已经升级到了V2,提供了预览版本,相比V1,有更好的拓展性,不到1秒的时间内可以从数百个事务拓展到数十万个事务,同时基于ACU的拓展,方式更精细化,比传统的预置引擎的方式有更高成本的节省;同时提供所有的Aurora功能,满足业务关键型应用程序的需求。
⑥ Aurora Global Database
现代化应用的全球部署,需要通过构建数据库:
在现代化应用中,需要通过构建数据库实现跨区域的容灾,提升全球业务连续性及用户访问体验。Aurora Global Database是针对全球分布式应用程序而设计的高性能数据库,有以下特点:
虎牙直播数据库后台动态信息由Amozon DynamoDB存储,相对静态的信息则存储在Aurora上。
使用了Aurora之后明显有了提升,主要体现在以下几方面:
--
迁移对于企业来说是面临的一个较大挑战,怎么无缝实现从传统的数据库迁移到云上?下面来介绍另一个硬核创新,云原生数据库迁移利器。
① 挑战
以微软SQL Server迁移到Aurora PGSQL为例:
② Babelfish for Aurora PostgreSQL
它能够原生地支持对T-SQL语言的理解,同时支持SQL Server协议访问,这样使得迁移时间大大缩短。迁移后,既可以访问原有的SQLServer代码,又可以利用PostgreSQL编写新的功能,并且两者之间可以进行调用。
我们也已将Babelfish for PostagreSQL项目开源。
③ Babelfish部署模型
Bebelfish是SQL server迁移加速器,在Aurora Postgresql内置引擎中增加了三个拓展包来实现TDS协议和T-SQL的支持,同时在Aurora PG引擎中增加两个EndPoint监听,以达到提供正确的T-SQL执行的目的,底层通过实现1433端口的监听来支持传统的SQL server的T-SQL调用和TDS协议,5432端口的监听来支持传统的Postgresql的调用。
④ 迁移流程
--
Q:Aurora后续有开源的计划吗?
A:我们目前已经把一些Aurora相关的项目在开源,例如Babelfish for Aurora PostgreSQL , 希望能将亚马逊云科技更多技术赋能客户和开源社区,助力客户和开源社区持续的技术创新。
Q:Aurora底层的存储复制使用的技术?
A:Aurora存储层复制使用Quorum协议实现,把数据块划分为10GB为一个单元,每份数据6份副本,将6个副本存储在3个AZ,为了满足一致性,需要满足两个条件,首先Vr + Vw > V,V=6,Vw=4,Vr=3,Aurora可以实现开箱即用的金融级高可用性 (跨3个AZ,最多可容忍AZ+1故障):Aurora可以容忍任何一个AZ出现故障,不会影响写服务;任何一个AZ出现故障,以及另外一个AZ中的一个节点出现故障,不会影响读服务且不会丢失数据。
今天的分享就到这里,谢谢大家。
分享嘉宾:
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。