AWS 终于在 2020年前兑现了自己的承诺:彻底替换 Oracle 数据库。这几乎是每年 Oracle Openworld 大会上 Larry Ellision 固定的一个梗,他说 亚马逊 在号召用户迁移使用 AWS 的数据库,然而每年 AWS 自己都在向甲骨文购买大量授权,Oracle 强大且难以替代。
然而,这个故事终于终结了。
其实在 2019年3月底,AWS 就发布过一个里程碑,亚马逊首席技术官Werner Vogels向亚马逊的物流(Fulfillment)团队发送祝贺,他们完成了该服务的最后一个 Oracle 数据库的迁移,36秒的庆祝视频得到了广泛的关注。
Werner Vogels 在推文中说:
恭喜 Amazon Fulfillment 团队完成从 Oracle 数据库到 100% 的AWS数据库环境迁移,数据库自由了。
Amazon 执行倒计时任务的专家 John Darrow 执行了Shutdown Abort,强制终结了Amazon Fulfillment 的最后一个 Oracle 数据库。在 Oracle 数据库中,Abort 属于强制中断,类似断电引起的软件中断,切断所有会话、中断所有事务,下次启动时需要恢复,以这种方式关闭数据库,说明这个数据库已经不再承载业务了,这只是一个象征意义的时刻。
这个数据库迁移到了亚马逊的 Aurora for PostgreSQL 和 Dynamo 上。细致的网友还会发现 Amazon 的提示符是:SYS.FCDBA.PRIMARY ,说明这是一个主库(明确的提示符可以避免 DBA 出现误操作):
这一次,是 AWS首席布道者Jeff Barr 发布,Amazon消费者业务正式完成了对Oracle数据库的迁移工作,关闭了最后的Oracle数据库。
Amazon 消费业务的去 Oracle 工作共有 100 多个团队参与,包括 Alexa、Amazon Prime、Amazon Prime Video、Amazon Fresh、Kindle、Amazon Music、Audible、Shopbop、Twitch 和 Zappos 等着知名品牌和网站,以及 AdTech、Amazon Fulfillment 等内部团队技术,涉及到的系统包括消费者付款、客户退货、目录系统、提供体验、数字设备、外部付款、财务、InfoSec、市场、订购和零售系统。
整个迁移工作将存储在近 7500 个 Oracle 数据库中的 75 PB 内部数据迁移到多个 AWS 数据库服务。其中,低延迟服务已迁移到 DynamoDB 和其他高度可扩展的非关系数据库,例如 Amazon ElastiCache;具有高数据一致性要求的事务性关系工作负载已移至 Aurora 和 RDS;分析工作负载已迁移到云数据仓库 Redshift 。
和 AWS 处境类似的阿里巴巴,同样拥有云时代的前瞻和战略领先优势,而阿里巴巴更是早在2009年就正式开始了“去IOE”。
2013年5月17日,阿里集团最后一台IBM小型机在支付宝下线。这是自2009年“去IOE”以来重要的一个节点。当年7月10日,淘宝重中之重的广告系统使用的Oracle数据库下线,也是淘宝的最后一个。
下面这张图成为了一个标志,王坚博士带领的团队在中国创造了『去IOE』这个盛极一时的标志性词汇,而据说在 Oracle 内部去IOE的译文是:De-IOE,然后专门制定了 Anti-De-IOE 策略。
在 AWS 16日的新闻稿中,我特别留意了以下一段描述:
Over the years we realized that we were spending too much time managing and scaling thousands of legacy Oracle databases. Instead of focusing on high-value differentiated work, our database administrators (DBAs) spent a lot of time simply keeping the lights on while transaction rates climbed and the overall amount of stored data mounted. This included time spent dealing with complex & inefficient hardware provisioning, license management, and many other issues that are now best handled by modern, managed database services.
这段话翻译过来是说:
多年来,我们意识到我们花了太多时间来管理和扩展数千个旧的Oracle数据库。我们的DBA不再专注于高价值的差异化工作,而是花费大量时间应对事务率上升和存储数据总量不断增加的挑战。这包括花费在处理复杂且效率低下的硬件配置,许可证管理和许多其他问题上的时间,而这些问题现在最好由现代的托管数据库服务来处理。
这里表达了一层核心的意思:DBA无法专注于高价值的工作。常规的事务性技术工作 - 扩容、优化 甚至数据库的授权管理,消耗了太多的时间。而这些工作在技术进步的今天,可以通过现代技术解决掉,让 DBA 们能够投身更有价值创造的工作上。
再回到第一段话:
Over my 17 years at Amazon, I have seen that my colleagues on the engineering team are never content to leave good-enough alone. They routinely re-evaluate every internal system to make sure that it is as scalable, efficient, performant, and secure as possible. When they find an avenue for improvement, they will use what they have learned to thoroughly modernize our architectures and implementations, often going so far as to rip apart existing systems and rebuild them from the ground up if necessary.
这段话是说:
工程团队的同事们永远不满足于独自一人保持良好状态。他们定期重新评估每个内部系统,以确保其尽可能地可扩展,高效,高性能和安全。当他们找到改进的途径时,他们将使用他们所学到的知识对我们的体系结构和实现进行彻底的现代化,通常甚至将现有系统拆散并在必要时从头开始进行重建。
在去IOE的道路上,很多企业对于重构系统顾虑重重,然而 Jeff 的这段描述给出了一个解释:重构是不满足现状,期望进一步解决问题以实现进化的不懈努力,是不断循环上升的技术使命。这正是一个优秀团队的核心品质所在。
而在阿里巴巴,自研的 OceanBase 替换金融交易中的 Oracle 数据库,则更是引人瞩目的巨大成就。
2014年,OceanBase替换了支付宝交易系统中的Oracle数据库。
2015年,OceanBase 替换了支付宝支付系统中的Oracle数据库。
2016年,OceanBase替换了支付宝最核心的账务系统中的Oracle数据库。
2017年,蚂蚁金服全面去IOE。
王坚这样概括“去IOE”的本质:“去IOE”的本质是分布化,让随处可以买到的通用PC架构成为可能,是云计算能够落地的首要条件。这个过程彻底改变了阿里集团IT架构的基础,是阿里拥抱云计算,产出计算服务的基础。
这就非常清晰的描述了阿里云和AWS摆脱 Oracle 的根本驱动力,只有摆脱了传统IOE的束缚(事实上是摆脱了传统IT的商业模式),才能够扩大云的服务边界,快速、敏捷、批量、经济。而在这个过程中,即磨练了团队,又积累了服务云客户的经验,实现了一举多得。
在 AWS的本次迁移中,也涉及了一个财务分类账数据库:
Financial Ledger – This team moved 120 TB of data, reduced latency by 40%, cut costs by 70%, and cut overhead by the same 70%, all powered by DynamoDB.
财务分类账:在 DynamoDB 的支持下,该团队迁移了 120 TB 的数据,并将延迟减少了 40%,将成本降低了 70%,将开销减少了 70%。
根据新浪微博一位参与过此项目的技术专家描述,服务应用重写了,所以数据层就替换掉了。应用重构正是数据库变革的最佳时机。
浙江移动王晓征曾经分析和总结阿里巴巴去IOE的动因,四点驱动非常准确:
-
业务 - 阿里业务爆发式增长,对系统的扩展性具有极大的需求;
-
成本 - 商业产品的采购以及服务成本;
-
能力 - 掌握IT系统核心能力;
-
市场 - 阿里云是公有云,需要采用开源产品,降低成本展示实力。其实业务合规提供服务的必然需求。
在以上四个要素中,掌握系统核心的能力最为重要,掌握能力,才能为他人和行业赋能,才能获得抉择的自由。时至今日,阿里在这条道路上获得了巨大成功,阿里云已经是国内云领域的领导者,全球云市场的重要竞争者。
除了互联网的积极践行,传统行业客户也在不断探索数据库应用的出路和方向。例如,从公开的信息可见,中国电信基于 MySQL 的增强 TeleDB 已经替换了传统 BOSS、CRM 核心上的 Oracle 数据库,MySQL 能够为电信行业提供核心的数据库支持。
在 2019 数据技术嘉年华 大会,在双11购物狂欢之后,我们邀请了阿里云数据库掌门人 李飞飞 博士 分享阿里云数据库上的双11,蚂蚁金服 去O变革亲历者, 杨传辉(日照)将分享 OceanBase 的技术创新和广受瞩目的 TPCC 实践,来自阿里云的数据库架构师 樊文凯(唐修)将会分享 Oracle 迁移上云的经验,阿里云的专家 周振兴 将分享 PolarDB 对 Oracle 的兼容和用户实践,阿里巴巴的高级运维专家 李圣陶 分享智能运维实践,而来自四川电信的客户专家 张明 将分享典型行业在 PostgreSQL 中的应用探索,来自 AWS 的技术专家将分享 AWS 的云数据库实践。
2019 数据技术嘉年华,现在加入,尽享超低票价优惠:
2019 数据技术嘉年华,看中国数据库力量,就等你来!