数据库Serverless化,Amazon Aurora一直行走在通往未知的征途

时间:2022-12-23 18:07:18

还记得Amazon Aurora刚刚诞生时的场景吗?

2014年,也是在re:Invent大会上,Aurora充满了童话色彩,她像一个极光女神,开创了云原生数据库时代。弹性伸缩、弹性计费、自动容错,这种有别于传统数据库的新型技术体系,彻底打破了数据库性能的天花板。

数据库Serverless化,Amazon Aurora一直行走在通往未知的征途

走到今天,8年过去了,Aurora凭借高性能、高可用性不仅获得了成千上万用户的青睐,也让友商钦佩。只不过,在核心技术创新上,Aurora依然是 “谜”一样的存在。

秒级响应背后

“作为应用程序的基石,云原生数据库应该考虑几个方向,包括:性能、可用性、可扩展性、安全、易用性,以及与其他系统的集成。” 亚马逊云科技 数据库专家架构师 马丽丽,在接受IT168&ITPUB记者采访时表示,作为一款托管数据库,Aurora解决了用户自建需要大量运维的烦恼,实现秒级延迟响应。

Aurora在中国的用户覆盖各行各业,比如:互联网、金融、医药行业、以及中小型企业与创业公司等。从技术维度来看,用户选择Aurora的最主要原因是,它能够提供比普通MySQL、PostgreSQL更好的性能,读节点和写节点之间能实现毫秒级别的延迟,以及极致高可用性和良好的扩展性。以Amazon Aurora MySQL为例,基于首个计算和存储分离架构、日志即数据库这些功能,提供了相对于标准MySQL5倍的性能。

尽管, Aurora创造了极致性能,但没有停止技术创新步伐。比如:提升了开启binlog时的性能,在并行查询功能中显著提升分析能力。

在具体功能更新上,Aurora在2017年推出的快速数据库克隆功能,可以帮助用户在几分钟生成一个生产库的克隆,可用于开发和测试,在2018年推出的Backtrack回溯功能,能够帮助用户快速将数据库回退到之前的一个状态,解决误删误改后花费较长时间恢复数据库的问题。

在核心的计算层,Aurora支持了读节点的自动扩展,Aurora Serverless支持了对于单个写或者读的动态伸缩。

另外,数据集成能力也是亚马逊云科技一直创新的重点。由于数据库是支撑用户应用的一部分,和其他模块的有效集成决定了最终用户体验。Aurora和亚马逊云科技的其他产品进行了丰富的集成,包括通过在存储过程内调用Lambda的方法,可以在关系数据库中调用SageMaker进行模型推理。2022年,reInvent甚至推出了ZeroETL的工具可以使Aurora的数据在几秒钟实时传输到Redshift。

走到今天,Aurora在满足用户需求层面,进行了诸多创新和迭代:

第一,可用性方面,Aurora从初始的3个可用区6副本的区域内部的高可用开始,在2018年支持了全球数据库,可以实现跨区域的灾难恢复。

第二,扩展性方面,Aurora在存储层支持了更大的容量到128TB,同时在2.09版本和1.23版本里也支持了删除数据时存储层的动态收缩。

第三,易用性方面,Aurora Performance Insights提供了对数据库健康状况的监测以及慢查询、等待事件的展示,同时通过去年推出的DevOpsGuru for RDS的进一步增强,不仅可以识别出数据库的潜在问题,还能对优化思路进行推荐。

第四,安全性方面,Aurora从诞生以来,陆续增加了传输中加密、快照加密、用户登陆认证IAM、对用户使用数据库行为的审计功能DAS、以及今年新推出的GuardDuty for RDS,可以通过机器学习的方法来识别异常用户。

更快,更敏捷

在2022re:Invent 大会上,亚马逊云科技首席执行官 Adam Selipsky特别提到了Aurora。那么,2022年的Aurora有哪些功能亮点?以下更新,体现了Aurora一直以来的理念,那就是更快、更敏捷!

1、 ZeroETL。通过ZeroETL理念,用户可以在Aurora和Redshift中间搭建一个快速集成的桥梁,仅仅需要在控制台点几下,Aurora的数据就可以源源不断地传输到Redshift,而且延迟是秒级响应,该功能很好地实现了用户对实时数仓的需求。另外,ZeroETL可以支持从多个Shard集群到一个Redshift集群,同时可以支持各大规模数据的分析查询。

2、 对于Aurora PostgreSQL Trusted Language Extension(TLE)的支持。PostgreSQL的扩展插件Extension的机制能够给用户极大的灵活度。更重要的是,TLE在提供给用户Aurora PostgreSQL更好的灵活性的同时,也有很强的安全性、性能的支持。

3、 GuardDuty for RDS Protection。对于用户来讲,数据库的安全性无疑是至关重要的,如果数据被没有访问权限的人查询甚至篡改了,往往会对用户带来很大的损失。Amazon GuardDuty RDS能够给用户提供更好的安全性,比如异常的登陆地址检测、比如不停地重试密码这些行为GuardDuty都能很快地识别并检测出来。用户可以通过简单的配置,在无损数据库性能的前提下,监控数据库的用户登陆情况,并可以通过机器学习的方法,识别出潜在有风险的行为,同时提示给用户。

4、 蓝绿部署。用户可以利用蓝绿部署的功能,为现在的生产环境(蓝)创建一个拓扑一样的同步环境(绿),在绿环境上进行测试和验证,并且用户可以选择在合适的时机进行切换。蓝绿部署能够在1分钟内帮助用户完成蓝绿环境的切换,同时可以保证数据不丢失。蓝绿部署的工具能够帮助用户进行调试、升级等方面的工作。

此外,今年re:Invent也是再次强调了Aurora Serverless V2。Aurora Serverless V2是Aurora使用增速最快的功能,能够提供非常好的扩展性和便捷性。

Aurora从推出至今,一直在追求更好的性能,通过ZeroETL、TLE、GuardDuty、蓝绿部署等创新功能,不仅带来了云原生数据库的创新理念,更重要的是简化了每一个数据开发者工作的繁杂性,全面提升工作效率。

Serverless是必然趋势

拥抱云原生数据库,让用户像使用水和电一样使用数据库,Serverless做出了重要贡献。

随着应用层无服务器化的发展,数据库应用有可能瞬间就能达到压力顶端,而Serverless数据库能够撑住暴增的访问量,这是亚马逊云科技在十年前、也是业内最早部署Serverless数据库的最根本原因。

即便是普通的应用程序,访问数据库的行为也可能有波峰波谷,无服务器化的数据库可以针对用户访问量进行实时伸缩。在访问量大的时候,可以伸缩到比较高的容量;而在低访问期间,则可以回退到比较低的配置。这也是优化资源配置的一种方式,无服务器化能够帮助用户节约升本。

还有一点是,用户在应用程序部署时,可能并不知道自己要进行什么样的数据库选型,比如:多大规格,而选择无服务器数据库,用户不需要再为选择什么机型的数据库而烦恼,因为无服务器数据库可以自动伸缩。

虽然,Serverless数据库是大势所趋,但并不是没有技术门槛。要知道,企业自己管理传统数据库基础设施都费时费劲,更何况还涉及云端数据库问题,需要管理软硬件安装、系统性能、可用性、容量规划、合规等。

所以,选择云上托管数据库服务可以简化客户运维,无须考虑复杂的基础设施管理工作。基于云原生数据库,企业可以把更多时间用于创新,构建应用程序,而不是管理基础设施。云上数据库可以通过Serverless的形式提供服务,将客户运维工作尽可能降到最低。

无代码实践让Serverless走向普惠化

在亚马逊云科技原生数据库产品矩阵中,Serverless数据库与Amazon Lambda和 API Gateway等服务集成,可轻松构建现代化的无服务器架构应用,进一步增强系统的快速部署、弹性伸缩能力。

针对更具挑战性的全Serverless架构研发环节,亚马逊云科技再次攻破技术难点,站在行业的顶峰。在今年re:Invent 2022 上,Werner 博士在自己的Keynote上发布了一款接近无代码实践Serverless应用开发的服务。Composer本质上是一款无代码低代码构建Serverless 应用的工具,进一步推进了Serverless的普惠化,让无服务器化数据库能够人人可得。

目前,亚马逊云科技已经推出7款Serverless数据库,所有数据分析服务都已Serverless化,真正实现了“全面Serverless架构”。无论是普通业务用户,还是数据分析师、数据科学家等,均可直接基于Serverless产品,快速开展工作。

针对本文重点提到的Aurora ,亚马逊推出了V1、 V2两个无服务器版本。相比于上一代V1版本,最新推出的 Aurora Serverless V2版本资源调配能力更强,适用范围更广。

V2版本在资源容量层采用的是原地扩展方式,使资源容量扩展速度由V1分钟级提升到秒级;V2 版本能够在容量调整时做到更细粒度, 以0.5 ACU 作为扩展单元(V1翻倍扩展),并能够依据多个维度进行容量调整,通过持续的监控和尽可能大的利用缓冲池;Aurora Serverless v2 相比V1增加了完整的 Amazon Aurora 功能,包括多可用区支持、只读副本和全球数据库等,支持跨 AZ和跨区域的高可用部署和读取扩展。

值得一提的是,Amazon Aurora Serverless v2 适合各种应用程序。例如,面对业务快速增长场景与海量多租户场景时,比如:拥有数十万个应用程序的企业,或拥有具有成百上千个数据库的多租户环境的软件即服务 (SaaS) 供应商,可以使用 Amazon Aurora Serverless v2 来管理整个 SaaS 应用中众多数据库的容量。同时,Amazon Aurora Serverless v2还适用于业务吞吐量波动明显的场景,如游戏业务、电商业务、测试环境等,以及无法预估吞吐量的新业务系统。而对于大部分时间都处于低谷的业务系统,Amazon Aurora Serverless v2 则可以有效为客户节省成本。

时代在发展,Aurora一直在被追赶,但从未被超越。Amazon Aurora能够引领云原生数据库走向无服务器时代,凭借的是“以客户为中心”的理念,尽量将客户需求转化为产品能力,让更多用户从中获益。

至于,云原生数据库的下一步是什么?未来会如何发展?借用马丽丽的话来总结:更敏捷、更智能、更易用,让每一行代码都为应用而写,这是一个渐进而又终极的目标!