自上世纪 70 年代以来,关系型数据库进入历史舞台,成为数据库行业的主角。此后,这个行业步入一个黄金时代,某数据库专家曾撰文写道,“很长一段时间,关系型数据库几乎是包打天下的选择。你很可能用一套数据库玩转所有业务,你也不需要一个连的工程师来维护它”。
“老而弥坚”的关系型数据库
对数据库行业来说,互联网的出现却带来巨大变化:数据量急剧增大、数据类型愈加复杂、数据处理速度需求不断提高,大数据时代全面到来。
因此,面向非结构化数据的 NoSQL 数据库兴起,出现了文档数据库、时序数据库、图数据库、搜索数据库等。
一时间,NoSQL 数据库风光无限,得到不少企业青睐。大家恨不得把一切系统都用 NoSQL 改造。
NoSQL 之所以受欢迎,主要是解决了关系型数据库中的各种问题。第一大问题是数据的 Schema 非常多,用关系型数据库来表示不同的 Schema 非常笨拙,所以需要有不同的数据库,比如文档型、时序型、搜索型等。另一大问题是关系型数据库的 ACID 极大影响了数据库的性能和扩展性,因此 NoSQL 做出妥协来解决大规模伸缩的问题。
随着移动互联网的发展,大数据技术的广泛应用,涌现出越来越多的新型数据库,然而关系型数据库依然占据主导地位。为什么它能经久不衰?主要原因之一是关系型数据库采用了 SQL 标准,这种高级的非过程化编程接口语言,将计算机科学和易于人类理解认知的数据管理方式完美的衔接在一起,目前还难以超越。
云时代:关系型数据库的“进化”
云计算的出现和发展,让越来越多的企业开始将数据库部署在云上。通过云服务形式提供数据库功能的云数据库应运而生。据悉,云数据库不仅减少了数据库参数的重复配置,而且具有快速部署、高扩展性、高可用性、可迁移性和易运维性以及资源隔离等特点。
尤其是基于容器化、微服务、Serverless 等理念设计的具备弹性伸缩与全球部署能力的云原生数据库,能随时随地从多前端访问,提供云服务的计算节点,并且可以灵活及时调动资源进行扩缩容,助力企业降本增效,成为行业发展新趋势。
可以说,数据库在云时代迎来变革。一方面,此时的数据库向内存和分布式方向演进和发展,甚至 RDBMS 本身都受到 NoSQL 的挑战;另一方面,在云托管环境下,关系型数据库逐渐暴露出一些问题。
此时,为适应变化,关系型数据库需要革新和自我进化。而开路者就是连续 11 年被 Gartner 评为“全球云计算领导者”的亚马逊云科技(Amazon Web Services)。
亚马逊云科技在 2014 年推出关系型数据库 Amazon Aurora。它兼容 MySQL 和 PostgreSQL,采用共享存储和读写分离的方式,不仅提升了数据库性能,而且解决了可扩展性问题,让传统互联网公司可以无缝迁移到云上,这让它成为云计算时代的一个代表。
凭借既有传统商业数据库的高性能和可用性,以及具有开源数据库的简单性和成本效益,Amazon Aurora 成为亚马逊云科技历史上用户数量增速最快的云服务,且跻身最受初创公司青睐的八项亚马逊云科技全球服务。
为什么它能受到诸多企业青睐?这离不开 Amazon Aurora 强大的性能和先进的架构设计。
性能上,Amazon Aurora 与开源引擎完全兼容,可获得 5 倍于标准 MySQL 以及 3 倍于标准 PostgreSQL 的吞吐量,支持并行查询可加速 OLAP 业务。其次,高可用方面,它能实现可用区(AZ)+1 的高可用,Global Database 可以完成跨区容灾备份。第三,在扩展性方面,它支持 15 个只读副本自动扩展,每个数据库实例可自动扩展到 128 TB。最后,成本上,它提供商用级数据库性能的同时,成本仅为其十分之一,存储无需预置按用量付费。
架构上,Amazon Aurora 架构支持 Serverless 无服务器架构。它采用计算与存储分离的架构,可以做到存储层的快速扩展,提升数据分析能力。同时,它还采用了独特的日志即数据库理念,省去节点跟存储层数据传输的量,以达到性能提升。
如果说云时代的到来推动了数据库的变革,那么,与 Serverless 的结合,则再次为数据库的发展添了把火。
亚马逊云科技在 2018 年推出 Amazon Aurora Serverless v1。据悉,它是 Amazon Aurora 的一种按需自动扩展配置版本,它会根据应用程序的需求自动启动、关闭以及扩展或缩减容量,让开发者无需管理任何数据库实例,即可在云中运行数据库。
用 Amazon Aurora 替换 Oracle
从线上书店业务起家,经过二十多年的发展,Amazon 不仅成为一家跨国电子商务企业,而且是全球最大的互联网线上零售商之一。
据了解,Amazon.com 于 1995 年 7 月上线,网站一开始销售图书。之后,销售的商品从图书向多元化发展,涵盖音像制品、软件、消费电子产品、家用电器、厨具、食品、玩具、母婴用品、化妆品、日化用品、运动用具等类目。
早在 2008 年,Amazon 网站主域名 Amazon.com 的访客数量至少达到 6.15 亿,已经是当时沃尔玛超市门店顾客数量的两倍。除主域名外,Amazon 还在全球多个国家建立了本地化网站,包括中国、加拿大、英国、法国、德国、墨西哥和澳大利亚等。
用户的不断增加和全球市场的扩张,让 Amazon 的电商业务蒸蒸日上。
但是,挑战也随之而来。一方面,Amazon 需要应对极高的访问流量,尤其是圣诞季等购物节假日下的极端情况;另一方面,业务的快速发展,让数据以指数速度增长,数据量不断增加。据悉,在 2017 年,Amazon 电商有近 7500 个 OLTP 数据库,累计存储了 75PB 数据,涉及公司超 100 个团队的 1000 多个应用程序。
一直以来,Amazon 都在使用 Oracle 数据库,但是它发现,Oracle 数据库不仅成本高,而且可扩展性差,无法适应不断增长的业务需求。
除了可扩展性差、成本不断增加,Amazon 电商还面临着数据量和交易率增加带来的延迟风险、遗留代码 / 架构导致的可用性风险,以及硬件配置和管理时间 / 资源带来的运营风险。
如何解决自己面临的挑战?这成为摆在 Amazon 电商面前的难题。
为了解决这些问题,Amazon 电商决定替换 Oracle 数据库,把近 7500 个 OLTP 数据库迁移到 Amazon RDS 和 Amazon Aurora 中。Amazon Aurora 一大特性是其 85–90% 的 PostgreSQL 查询与现有 Oracle 查询相匹配,这意味着将查询转换为 Amazon Aurora PostgreSQL 几乎全都是自动完成的。
迁移完成后,不仅节省了 40%-90% 的运营成本,而且大大改善了性能,同时 Amazon 电商通过使用亚马逊云科技托管数据库服务将峰值扩展工作量和管理开销减少 10 倍。由此可见,收益显而易见。
如果说 Amazon 电商领略到 Amazon Aurora 强大的性能和可扩展性以及低成本优势,那么九州通则体会到其轻松实现低延时读写分离和应对业务负载波峰波谷的优势。
九州通是一家以西药、中药、器械为主要经营产品,以医疗机构、批发企业、零售药店为主要客户对象,并为客户提供信息、物流等各项增值服务的大型企业集团。其中,线上 B2B 业务每年以 30% 以上的速度增长。
其 B2B 系统的业务特点是读多写少,读写比例在 8:2 到 7:3 之间,经常会出现波峰波谷落差较大的情况。并且,自建 MySQL 方式下,主库与从库之间的数据复制延时会超过 1 秒,读写分离效果不好,主库压力居高不下。
为此,九州通采用 Amazon Aurora,轻松实现数据库的读写分离及按需扩展。使用 Amazon Aurora 数据库服务,单个 Amazon Aurora 集群可以支持多达 15 个只读节点,支持在线自动扩展与收缩。整体数据库性能提升 5 倍,TCO 降低了 50%,实现了跨可用区部署、负载均衡 / 自动故障转移,精细监控 / 按需自动伸缩等。同时,还有效降低主库工作负载压力。此外,在性能和成本上取得高效平衡。借助 Amazon Aurora Auto Scaling 功能,实现只读副本按需伸缩,满足业务需求的同时,节省服务器成本。
而虎牙直播在全球化过程中,也选择了 Amazon Aurora。2018 年初,虎牙直播上线海外产品 Nimo TV,年底,月活用户达千万级。产品成功登陆东南亚及拉美地区,2019 年进入西班牙市场。
据悉,在数据库后台,虎牙直播使用 DynamoDB 存储用户的动态信息,包括支付、状态、好友关注等信息。相对静态的信息存储在 Amazon Aurora 上,如用户的基础信息。Amazon Aurora 能自动扩容,且因为计算和存储分离,当数据量较大时,能单独升级计算实例,确保性能。同时,异常情况下,通常只需 10 秒左右就能自动实现故障转移,对终端用户没有任何影响。并且,利用其全球数据库功能,可以提升本地用户体验。虎牙直播在亚马逊云科技亚太(新加坡)区域部署数据库,在其他区域建立副本,提高当地用户的使用体验。
除了适用业务快速增长、低延时读写分离、业务负载波峰波谷、全球化部署、存储扩容、全球化部署以及备份与恢复、容灾,Amazon Aurora 还适用最小化系统停机时间、误删误改、图形化监控及性能调优场景。
去年,亚马逊云科技在 Gartner 报告《2021 Gartner Magic Quadrant for Cloud Database Management System》中被评为云数据库领导者,这已是亚马逊云科技连续七年获此殊荣。之所以能获得此评价,源于亚马逊云科技的不断创新。
图片来源:Gartner
比如,开创 Serverless 数据库,实现数据库的弹性伸缩,进一步简化客户创建、维护和扩展数据库,实现高度扩展性及自动伸缩容量。又比如,推出 Babelfish for Amazon Aurora PostgreSQL,它使 Amazon Aurora 能兼容 基于 Microsoft SQL Server 编写的应用程序。再如 Amazon DevOps Guru,它是由机器学习提供支持的功能,可以帮助开发人员和开发运维工程师快速检测、诊断和修正 Amazon RDS 中与数据库相关的各种问题。
近日,Gartner 又发布了 2021 年 DBMS 市场收入数据。我们看到云的用量在以惊人的速度逐年增加。一方面,DBMS 市场持续加速增长,规模接近 800 亿美元,比 2020 年增加 145 亿美元;另一方面,市场格局变动,云平台供应商处于领先地位。其中,亚马逊云科技在 DBMS 市场的收入增长 42.3%,几乎是市场增速的两倍,在排名上与首位仅差 0.1%。首次超越传统数据库巨头 Oracle,这也侧面印证了“云计算+数据库”的强大力量。
对亚马逊云科技而言,数据库方面的创新远不止于此。截至目前,亚马逊云科技目前提供十多种专门构建的数据库服务,支持关系、键值、文档、内存、图、时间序列、宽列和分类账八大数据类型。
为什么亚马逊云科技要提供这么多的数据库产品?在笔者看来,正如亚马逊首席技术官兼副总裁 Dr. Werner Vogels 所言,“开发者希望他们的应用程序能够很好地被构建和有效扩展,为此,他们需要能够在同一应用程序中使用多个数据库和数据模型。很少有一个数据库能够满足多个不同应用场景的需要,一刀切的数据库时代已经过去,开发人员正在使用大量的专用数据库来构建高度分布式的应用程序。开发人员正在做他们最擅长的事情:将复杂的应用程序分解成更小的部分,然后选择解决每个问题的最佳工具。”
一直走在数据库创新的路上:Amazon Aurora Serverless v2
在数据库方向,亚马逊云科技的创新脚步从未停下,一直在前行。
最近,Amazon Aurora Serverless v2 上线。据悉,它可以立即扩展以支持最苛刻的应用程序,与峰值容量预置相比,可节省高达 90% 的成本。同时,在几分之一秒内将数据库工作负载扩展到数十万个事务。可以说,它在可扩展性上和节省成本方面再上一层楼。并且,Amazon Aurora Serverless v2 提供了完整的 Amazon Aurora 功能,包括多可用区支持、全球数据库和只读副本。它能在容量调整时做到更细粒度,并依据多个维度进行容量调整,为应用程序的需求提供适量的数据库资源。而企业无需管理数据库容量,只需为应用程序消耗的资源付费。
更值得一提的是,Amazon Aurora Serverless v2 支持跨 AZ 的高可用部署和读取扩展,通过持续的监控和尽可能大的利用缓冲池,v2 原地扩展可以做到秒级别。
此外,它非常适合各种应用程序。例如,面对业务快速增长场景与海量多租户场景时,当拥有数十万个应用程序的企业,或拥有具有成百上千个数据库的多租户环境的软件即服务 (SaaS) 供应商,可以使用 Amazon Aurora Serverless v2 来管理整个队列中的数据库容量。还适用于业务吞吐量波动明显的场景,如游戏业务、电商业务、测试环境等,以及无法预估吞吐量的新业务系统。对于大部分时间都处于低谷的业务系统,Amazon Aurora Serverless v2 可以有效地为客户节省成本
当下,正值新一轮科技革命迅猛发展阶段:数据规模爆炸性增长、数据类型愈发丰富、数据应用快速深化,数据驱动将带来新一轮创新浪潮。而在数据库领域,无服务器架构也将成为云原生数据库未来发展的必然趋势之一。
与亚马逊云科技一起,见证数据库行业的未来!