作者 | 冬梅
如果要对遗留的数据库进行升级,没有比上云更好的解决方案了。合适的云平台可以提供可用性强、伸缩性好、安全性高的商业数据库,而不需要高昂的价格。但这其中也存在着一定的风险——糟糕的迁移可能会使关键型工作负载和敏感客户数据处于危险之中,没有犯错的余地。
幸运的是,亚马逊云科技提供了大量的工具来帮助组织迁移和更新云上的数据库。
互联网、移动互联网应用开发浪潮的崛起,产生了大量的 NoSQL 数据,面对电商、视频、社交、出行类场景时,无论是从客户并发角度,还是从要处理数据级别角度,对数据库的要求之高,这并不是一个传统的关系型数据库就能处理的,这也驱动了云原生关系型数据库的出现。
在这样的背景下,越来越多的用户希望把应用架构在开源数据库引擎上,无论是 MySQL 还是 PostgreSQL,而不愿意再把自己的应用架构在一个有严苛 license 的、会被锁定的数据库引擎上。此外,现代化应用也在不断被提起,拥抱现代化应用的客户都希望自己的企业更加敏捷,希望让开发更专注于应用和数据,向着全托管式数据库迁移。
软件架构的迭代和转型也驱动着数据库选型的变化以及数据库技术和架构的迭代。过去大家做软件程序开发,从早年的 PC、互联网、移动互联网,到现在的万物互联,软件架构基本上都是从 Server 到 SOA 再到微服务这样一个软件架构的迭代和转型,当然它也在驱动着数据库选型的变化。
无疑,数据库的技术和生态势必要经历一场深刻的变革。面对这种趋势,亚马逊云科技早已做好了应对之策。
亚马逊云科技大中华区产品部总经理顾凡表示,亚马逊云科技在做云上数据库产品时有五大理念:第一是专库专用,极致性能;第二是无服务器,敏捷创新;第三是全球架构,一键部署;第四是平滑迁移,加速上云;第五是 AI 赋能,深度集成。
在数据爆炸式增长,微服务架构与 DevOps 愈发流行的今天,一个数据库打天下的时代早就过去了。市场上真正需要的是为开发者在不同的应用场景下针对不同的数据类型和不同的数据访问特点,提供专门构建的工具。亚马逊云科技目前提供十多种专门构建的数据库服务,支持关系、键值、文档、内存、图、时间序列、宽列和分类账八大数据类型。
目前,亚马逊云科技专门构建数据库的产品家族主要包括:托管的关系型数据库 Amazon RDS(它开启了托管数据库服务的新模式,从最初只支持 MySQL,到目前支持多种常用的数据库引擎,包括 MySQL、PostgreSQL、Oracle、SQL Server、MariaDB);开源的数据库 Amazon Aurora;非关系型数据库 Amazon DynamoDB 以及图数据库 Amazon Neptune 等。
无服务器、敏捷创新。其实无服务器被提及了很久,但是我们很多人不理解为什么需要无服务器。绝大多数企业在做数据库规划时,都是按照峰值留有余地的方式计算资源,这势必会带来成本的浪费,而无服务器最大的优势就是可以让数据库的管理和运维解放。
今天,我们已经可以做到手动或者自由地去调整数据库计算资源,但是这背后如果要真的实现在生产上面根据业务需求去扩展数据库规模,背后还需要非常多的技术上的努力,才能够真正将它实现。
如果从运维的层面来解读,无服务器模式背后所代表的和云计算的概念是非常相近的。也就是说,将云厂商这么多年的对于大规模数据库运维、伸缩扩展的经验,和团队整个的技术能力最大化开放给客户,使客户受益。希望通过亚马逊云科技自己的业务去利用到 Amazon DynamoDB 这样一种 Serverless,让客户真正受益。
Amazon DynamoDB 一直使用无服务器的模式对外提供服务;Amazon Aurora Serverless V2 可以在几分之一秒内将数据库工作负载从数百个事务扩展到数十万个事务,与按照峰值负载配置容量的成本相比,最多可节省 90% 的数据库成本。
在全球化的今天,无论是手机、视频娱乐还是现在非常流行的智能汽车,我们的客户群体往往分布到全球,疫情后的恢复工作对于我们现代化的、全球化的分布式应用架构来说也提出了新的挑战。因此,支持全球业务的这些应用,包括数据库,需要保证全球业务的连续性,为全球客户提供一致的、低延迟的用户体验。
亚马逊云科技提供了具备全球数据库能力的数据库服务,包括 Amazon Aurora Global Database、Amazon DynamoDB Global Tables、Amazon ElastiCache for Redis Global Datastore、Amazon DocumentDB Global Clusters。都能够利用亚马逊云科技的骨干网络提供比互联网更稳定的网络支撑,以一键部署的方式,帮助客户实现几千公里跨区域数据库灾备,故障恢复大概能在一分钟之内完成,同时跨区域的数据复制延迟通常小于一秒。
平滑迁移,加速上云
目前,全球已经有超过 45 万的数据库通过亚马逊云科技的数据库迁移服务实现了迁移到亚马逊云科技云平台。从工具角度上,亚马逊科技希望客户能够通过 Amazon DMS、Amazon Database Migration Service,进行自助式的云迁移。对于迁移过程中可能会需要的人才以及相应的规划,包括迁移之后的优化、相应的流程,亚马逊云科技会通过专业的服务团队和合作伙伴网络成员,为客户提供专家方面的支持。
服务包括 Amazon Schema Conversion Tool 可转换数据库架构,Amazon Database Migration Service 可迁移数据,新发布的 Babelfish for Amazon Aurora PostgreSQL 则可帮助客户迁移 SQL Server 应用程序。Babelfish for PostgreSQL 源代码现已在 Github 开源。客户还可以通过亚马逊云科技 Database Freedom 项目,了解如何从传统商业数据迁移至云数据库。
构建现代化应用尤其是用数据驱动去做创新时,已经无数次的证明,使用机器学习的方式要比传统方式更好。但将数据库与机器学习相结合也会面临一些挑战。亚马逊云科技的解决方案是——Amazon Neptune。
Neptune 是专门构建的针对于图的数据结构,能够存储物品、人物、各种事物之间的关系的数据库,在 Amazon Neptune 里面也有中国区域可用的 Neptune ML 的功能,允许数据工程师不需要掌握机器学习的技能,直接从图数据库里导出数据、转换格式、训练模型并发布。Amazon Neptune 是数据库与 AI 的深度集成,数据库开发者无需具备机器学习专业知识,只需使用熟悉的数据库语言,即可进行机器学习操作。
多年来,亚马逊云科技不断加速数据库相关服务落地,并针对不同应用场景需求推出了多种数据库服务产品,为客户提供兼具高性能、高可用性、可扩展及成本效益的专用数据库服务,支撑客户现代化应用的快速部署及创新。
既然亚马逊已经有了很多像 Amazon RDS 这样的服务产品了,为什么还要推出 Amazon Aurora?
对于这个问题,顾凡表示:
客户的声音非常简单,要的就是 MySQL、PostgreSQL 这样的开源数据库引擎,但是我们去看开源版本的 MySQL 和 PostgreSQL 是达不到企业级商业数据库所达到的性能,也达不到企业级商业数据库的可用性。所以客户要的是鱼和熊掌兼得,两者都要,既要开源的数据库引擎,又要跟商业数据库一样的可用性。而 Amazon Aurora 的目的就是既要像使用 MySQL、PostgreSQL 这样的开放数据库引擎一样节省成本,同时也要能够提供商业级数据库那样的性能、持久性和可用性。
Amazon Aurora 可以提供 5 倍于标准 MySQL 的性能,以及 3 倍于 PostgreSQL 的吞吐量。同时提供高可用,可以扩展到 15 个只读副本,同时成本只有商业数据库的 1/10。据顾凡介绍,Amazon Aurora 的架构有三大优势:
第一、Amazon Aurora 天生就是计算和存储分离的,它的底层数据库存储其实就是一个分布式的存储服务,我们可以认为系统有一个巨大的共享存储池在下面。
第二、Amazon Aurora 的设计哲学总结起来就是 Log is Database,所以数据库的计算实例和底层的存储之间得写 log,这样的目的是减少计算实例和存储之间的网络带宽需求,极大提升数据库的性能。
第三、Amazon Aurora 会把数据库一部分的核心功能,像故障恢复、备份还原到分布式的存储层去解决,这些任务可以在后台执行,不会影响前台用户的任务。
成本的节省在亚马逊自身得以体现,作为 Oracle 全球排名前几的大客户,亚马逊电商应该能够从甲骨文拿到非常好的折扣,但就算在折扣的基础上,实际上从 Oracle 数据库切换到亚马逊云科技的云数据库后,亚马逊电商也节省了 60% 的成本,同时面向消费者端的应用程序的延迟降低了 40%,数据库管理支出减少了 70%。
你也「在看」吗?👇