为什么 Amazon 要开展去 Oracle 工作呢?根据 Jeff Barr 在博客所言:多年前,Amazon 就意识到了,他们在管理和扩展陈旧的 Oracle 数据库方面花费了太多的时间,公司的 DBA 并没有把更多的精力放在更有价值的差异化工作,而是在事务速率不算攀升、存储数据总量不断增长的情况下,一直忙于保证系统的正常运转,一直在处理复杂且效率低下的硬件配置、许可证管理和其它本应由现代化托管数据库服务来处理的问题。
Amazon 开展去 Oracle 工作的难点在哪里呢?笔者之前采访过 AWS 的相关技术专家,他们 表示:从技术实施层面来讲,Amazon 只是 AWS 的一个数据规模比较大的客户,与纳斯达克等其它客户无异。在实施去 Oracle 操作之前,需要听取 CEO 和 CTO 的意见,并决定好 Oracle 上的哪些应用应该如何解决。整个迁移过程的复杂度不止在于需要做数据和数据库本身的迁移,同时还要做数据库上运行的应用迁移,并且这些应用既有企业内部开发的,也有 ISV 提供的,甚至有些应用的年代已经非常久远了。
据了解,本次 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 。
迁移效果
整个迁移工作完成之后,实际的使用效果如何呢?Jeff Barr 也在博客中给出了迁移前后在成本、性能、管理开销等方面的对比:
- 降低成本:基于应用规模和所享受的折扣率,Amazon 数据库成本降低了 60% 以上。AWS 客户定期报告从 Oracle 切换到 AWS 可以节省 90%的成本。
- 性能改进:面向消费者的应用程序延迟减少了 40%。
- 管理开销:切换到托管服务可将数据库管理开销减少 70%。
以上是迁移之后,Amazon 整体的效果对比情况,如果我们把范围缩小到具体的业务,那么迁移之后效果如何?Jeff Barr 列举了几个例子:
- 广告:迁移后,在 RDS 的支持下,该团队可以在数分钟内将数据库机队规模(及其吞吐量)增加一倍,以适应高峰流量。而在迁移之前,这种扩展工作需要耗时数月。
- 买方欺诈:在 Amazon Aurora 的支持下,该团队在短短一小时的停机时间内迁移了 40 TB 的数据,并以一半的成本实现了相同或更好的性能。
- 财务分类帐:在 DynamoDB 的支持下,该团队迁移了 120 TB 的数据,并将延迟减少了 40%,将成本降低了 70%,将开销减少了 70%。
- 钱包:该团队将超过 100 亿条记录迁移到 DynamoDB,并将延迟减少了 50%,运营成本减少了 90%。
虽然 Amazon 消费业务部门关闭了 Oracle 数据库,但是某些第三方应用程序已与 Oracle 数据库紧密绑定,尚未迁移。而且 Oracle 数据库拥有深厚的用户基础,AWS 的云数据库服务 RDS 中也仍然在提供 Oracle 数据库。