“云计算不断扩大运营规模的过程,是一个不断踩坑、发现bug的过程”。
这句话,对每一个云计算从业者,甚至所有开源软件从业者来说,都是一句至理名言。正因为此,有了开源Linux的商业化供应商红帽公司(Red Hat),从几年前的10亿美元营收到如今翻倍增长,直至这个周日被IBM宣布以340亿美元现金收购。
也正因为此,在今天的以数据为新资源的云时代,商业数据库的云化,甚至是原生的商业云数据库,正在变得越来越重要。
一个典型的例子,就是全球云计算巨头亚马逊AWS正在通过新一代的商用关系型数据库Amazon Aurora(原意北极光、曙光、朝霞)——不仅用于替代Oracle的数据库,同时也用于替代自身初阶的RDS。
替换RDS:突破性能瓶颈
众所周知,Autodesk是3D设计、工程和娱乐软件领域的领导企业之一。比如你家装修,橱柜的设计通常都是用Autodesk解决问题的,又快又方便。当然,你开的汽车、仰望过的摩天大楼、使用过的智能手机,基本上都出自Autodesk之手——一句话,Autodesk 为创造事物的人提供软件。
而今在云时代,Autodesk也搬到了云上——比如Autodesk Access Control Management (ACM)就是在云中诞生的,出于当时的条件,Autodesk自然而然地选择了Amazon RDS for MySQL。
“ACM数据库的大小约为1TB,只有少数的表超过十亿行。高峰时期我们每分钟会收到高达25000至30000条请求。”Autodesk公司高级工程经理Krishna Kumar说:“由于ACM的初始架构为了确保高可用性,应用程序层由跨多个可用区的 EC2 实例组成。尽管这种架构允许 Autodesk 扩展和平衡应用程序的负载,但瓶颈很快就转移到了数据库。”
正是因为 ACM 的采用受到所实施限制的严重制约,因此Autodesk决定评估AWS最新的高性能关系型数据库Amazon Aurora——Aurora的吞吐量最高可达标准 MySQL 数据库的五倍。这种性能的提升意味着Autodesk可以在不修改应用程序的前提下取消MySQL带来的节流限制,同时仍然拥有很大的裕度以满足未来增长之需。
“ACM的迁移非常成功。”Krishna Kumar表示,“Aurora采用分布式、容错型、自我修复式的存储系统,可自动最高扩展至 64 TB,无需手动扩展数据库的存储容量。它最高可配置15 个低延迟的Aurora 副本,提高了可用性并支持读取扩展,典型的复制延迟在100 毫秒以下。”
由于ACM的成功,Autodesk考虑将多个其他应用程序也迁移到Aurora,比如EC2上托管的BIM 360 Field Classic的MySQL 数据库。
“Aurora集群包含一个写实例和最高四个 Aurora 副本。Aurora Auto Scaling将会启用以根据 CPU 利用率自动调整 Aurora 副本的数量。”Krishna Kumar表示,“迁移的亮点在于CPU 利用率下降了10倍,从使用MySQL时高达100%的峰值水平降至使用 Amazon Aurora 后不到 10% 的水平,为数据库跟随 ACM 的扩展增长留下了空间。”
据介绍,BIM迁移到Aurora后,数据库的性能超过了预期——应用程序的扩展性提高了20倍,应用程序的响应时间缩短了 2 倍,并且Aurora支持的数据库连接数量增加了7倍。
应该说,借助 Amazon Aurora,ACM 和 BIM 360 Field Classic 应用程序都成功提高了可扩展性,提升了应用程序性能,降低了管理开销,优化了成本。
替换Oracle:低成本和高稳定
与Autodesk ACM不同,日本的在线音乐发行服务商RecoChoku成立于2001年,此前一直运行的数据库系统是结合使用Oracle Database和Oracle Real Application Clusters (RAC)。
对于RecoChoku这样的在线音乐发行服务商来说,尽管它是一家互联网公司,但管理客户信息的会员数据库系统几乎就是RecoChoku的生命线,因此客户信息管理是RecoChoku业务的关键部分,需要具有高可靠性和可用性的系统来支撑,这就是为什么RecoChoku此前一直选择Oracle Database和Oracle RAC的原因。
时间到了2013年前后,RecoChoku开始使用云解决方案,旨在实现灵活而又具有高扩展性的基础架构,一方面节省成本——与使用Oracle RAC的多个节点相比,Amazon Aurora可以大幅降低数据库软件的许可费用;另一方面,Amazon Aurora的可扩展性和高弹性,也让RecoChoku的服务更容易适应互联网客户不断的需求变化。
此外,随着服务数量的增加,每项服务的成本管理同样是个问题。以前是各个系统分别管理的,很难确定哪些基础架构成本是由哪个服务产生的RecoChoku 需要灵活而可靠的服务基础架构解决这些业务挑战。
“AWS的一大优势在于,它能够阐明每个服务使用的基础架构。过去我们需要通过本地解决方案保留一定数量的资源,但在迁移到 AWS 后就不再需要这样。”RecoChoku业务系统推广部系统架构师小组公司Sakai认为,”由于歌曲数目的增加以及视频和高分辨率音频的数据量越来越大,准确预测我们需要管理的数据总量变得很困难。而采用了Aurora之后,我们能够将机器资源的使用减少到本地系统的30%左右。”
Sakai介绍说,RecoChoku公司在经过一番调研后认为,AWS 在服务数量和开发新服务的速度方面远远超出其他服务。于是乎,RecoChoku首先将自己开发和构建的服务基础架构系统迁移到AWS。不过接下来当RecoChoku迁移会员数据库系统的时候,遇到了足够多的挑战。
为了将该系统转换为 AWS,RecoChoku最初考虑的方法有在Amazon EC2上安装Oracle Database或使用 Amazon RDS for Oracle。“我们必须确保高可用性,因此我们希望有一个系统能让AWS处理以前架构所需要的运营和管理。”Sakai解释说,“会员系统管理着大约1000万组用户信息,运行了八年,因此我们需要确保Amazon Aurora上不仅有足够的性能,而且还需要足够稳定。”
据介绍,RecoChoku花了大约一个月时间来调整系统消化 SQL 差异性问题,为的就是平滑过渡、迁移。值得一提的是,RecoChoku在并行运行的测试期后仅花了不到三个月时间,就完成了从Oracle RAC到Amazon Aurora 的迁移。
Aurora是增长最快服务
事实上,Amazon Aurora到目前为止仍然是AWS历史上增长最快的服务——成千上万的客户使用Amazon Aurora作为他们的关系数据库,这一数字在去年增加了约2.5倍;截至2018年8月22日,使用AWS数据库迁移服务已经迁移了87000多个数据库。
截至2018年4月,Amazon Aurora的新客户包括ADP、Autodesk、Choice Hotels、TIBCO、Trend、Cloudability、ZipRecruiter、BMLL技术、Beachbody、亚利桑那州立大学、Choku、FirstFuel、Mitel和Wappa等。
当然,Aurora的用户也包括亚马逊自己。实际上,为了去Oracle,亚马逊把内部的业务也搬迁到了自研的云端数据库Aurora上。
毕竟,亚马逊是一家超大规模的电商,每天处理的交易量是金融级的。于是乎,这一搬迁导致了在PrimeDay促销日的时候,亚马逊业务出现了问题。在亚马逊自己的调查报告中,声称这次故障导致了15000件包裹延迟发货,并浪费了90000美元劳动力成本。
90000美元对于亚马逊这般体量的电商来说,显然是小意思。因为,“云计算不断扩大运营规模的过程,是一个不断踩坑、发现bug的过程”。据悉,亚马逊的长期规划是到2020年之前,完全摆脱Oracle的数据库。在笔者的印象中,这和阿里巴巴的迁移时间表类似。毕竟,将超大规模的金融级业务从有着40年丰富的技术和经验积累的Oracle数据库搬迁出来,不是一件简单的事情。
对于任何一个大的后台系统来说,在架构不犯错的前提下,最重要的就是不断通过业务去打磨,不断踩坑、发现bug,才有可能把系统做得稳定下来。这就是为什么to C的业务迁移成本这么低,而to B的业务迁移成本如此之高的原因——to C的业务是面对一个个端,而to B是面对的整个系统、整个后台。
显然,亚马逊决定用自己的Aurora在自己的核心应用上替换Oracle,可以看出亚马逊、亚马逊AWS对于Aurora的信心有多强,也可以看出Aurora本身有多强。
如今,随着AWS在中国的北京区和宁夏区数据中心真正落地,也随着Aurora在中国的落地,AWS的技术优势、生态优势和全球覆盖优势会逐渐凸显出来。
无论是阿里云、腾讯云、微软Azure,还是AWS、华为云这众多云计算领域的巨头在中国逐鹿中原,对于中国的客户来说,都是再好不过的事情,不是吗?