QCon北京「鸿蒙专场」火热来袭!即刻报名,与创新同行~ 了解详情
写点什么

独家揭秘东南亚电商平台 Prestomall 去 Oracle 的全过程

  • 2020-02-12
  • 本文字数:3180 字

    阅读完需:约 10 分钟

独家揭秘东南亚电商平台 Prestomall 去 Oracle 的全过程

很多人都说:“现在的东南亚就像是坐着时光机,回到了 90 年代的中国市场。” 的确,在互联网领域,我们经常能在东南亚看到中国互联网发展历程的影子。本文我们将详细介绍一下东南亚企业的去 Oracle 经历,揭秘中国经验是如何复制到东南亚市场的。


Prestomall 是一家成立于 2014 年的东南亚电商企业,此前这家企业一直使用的是 Oracle 数据库。所有业务全部由一套 Oracle 数据库支持,同时还有一套 Oracle 数据库用来支撑测试环境。


2018 年 8 月,距离 Oracle 数据库软件授权证到期还有 3 个月的时间,Prestomall 决定不再使用 Oracle 数据库,并开始寻找替代方案。为什么 Prestomall 决定在这个时候去 Oracle 呢?选定的替代方案是什么呢?整个迁移过程又是如何做的?…为了搞清楚这些问题,InfoQ 采访了参与 Prestomall 去 Oracle 全过程的阿里云技术团队。

为什么要去 Oracle?

过去几年,随着整个东南亚移动互联网的发展,Prestomall 也迎来了增长黄金期。以营收规模计算,过去 3 个财年,该公司实现了 256%的增长。Prestomall 业务的成功使得公司需要处理的数据量出现井喷式的增长,IT 费用也随之水涨船高,这也是 Prestomall 决定去 Oracle 的主要原因。


Oracle 的 License 费用太高了,随着 Prestomall 客户量和数据量的增加,这部分费用占据了大部分的 IT 预算,制约了其业务的发展,所以在授权还剩三个月的时候,Prestomall 开始寻找 Oracle 的替代方案。


另外,随着业务的快速发展,现有的 Oracle 数据库垂直架构限制了其弹性增长的需求,传统数据库不适应快速的互联网+发展,这也使得 Prestomall 下定决心替换 Oracle。

技术选型

减少 IT 费用是 Prestomall 去 Oracle 的主要原因,所以最初在选择替代方案时,IT 费用是一个重要的指标,同时由于授权即将到期,迁移时间也是需要考虑的重要因素。

最开始的选型方案:更倾向于开源数据库

据了解,Prestomall 最初想到的替代方案有三种,分别是:


第一种,采用 Oracle 外的另一种商用数据库,如 IBM DB2, 微软 SQL Server 等;


第二种,使用开源数据库,例如 MySQL、PostgreSQL;


第三种,保留 Oracle,继续续费 License;


Prestomall 想要彻底去 Oracle,摆脱传统传统商业数据库厂商的锁定,所以排除了第一种和第三种方案。其实保留 Oracle 或者使用其它商业数据库本就是权宜之举,除非没有可行的办法或者时间来不及,才会保留 Oracle,毕竟业务的正常运行是必须要保障的事情。不过,Prestomall 团队也意识到,如果继续拖延的话,未来去 Oracle 的困难和挑战将会更大。


经过一番评估之后,Prestomall 团队更倾向于选择开源数据。在备选的开源数据库产品中,PostgreSQL 比 MySQL 提供了更多的 SQL 功能,应用方面也与 Oracle 更加贴近,并且迁移成本也较低,自然成为了技术选型的第一选择。


在有了初步的技术选型之后,Prestomall 团队就迁移方案做了进一步细化的评估:


第一, 选取的数据库与已有的 Oracle 有多大的兼容性 ?


第二, 延用已有的本地部署解决方案,还是迁移上云?


第三, 迁移的工作量和时间究竟会多久?


第四, 采用新的技术方案,是否有足够的技术支持?

最终选型方案:PolarDB + ADAM + DTS + 专家服务

Prestomall 最终选定的替代方案是 PolarDB + ADAM + DTS + 专家服务。说实话,这个方案有点出人意料,毕竟最开始这个方案并没有出现在 Prestomall 的选择列表中,而且 Prestomall 原有的 Oracle 数据库是部署在本地的,选择了 PolarDB 就意味着数据库要迁移上云。


最终方案中的 PolarDB 是阿里云自主研发的关系型分布式云原生数据库,兼容三种数据库引擎:MySQL、PostgreSQL、高度兼容 Oracle 语法;ADAM 是数据库和应用迁移服务,可覆盖 Oracle 迁移的全生命周期;DTS 支持 RDBMS、NoSQL、OLAP 等数据源间的数据交互,集数据迁移/订阅/同步于一体。


那么,为什么最终会选择这个方案呢?阿里云数据库与应用迁移产品总监杨霖表示主要原因其实有三个:


一是上云适配业务发展。之前 Prestomall 使用的是本地 Oracle 数据库,而选择 PolarDB 就可以享受到云数据库弹性扩展的能力,按需申请资源,对于电商企业而言这种模式非常适配业务。


二是迁移成本最优。这里的成本不单单是指迁移后数据库资源的使用费用,同时也包括了迁移的工作量、代码的修改量以及迁移时间等其它成本。经过评估,PolarDBD 与 Oracle 数据库的兼容性非常高,整体迁移成本最优。


三是风险整体可控,技术支持有保障。2000 年,阿里开始使用 Oracle 数据库,2008 年,决定去 Oracle 数据库。当前 Prestomall 的遭遇,跟十年前的阿里一样,而在过去十几年中,阿里的技术人员趟出了从 Oracle-RAC 数据库到 PolarDB,从云下到云上的搬迁,积累了很多经验,并沉淀了类似 ADAM、DTS 这样的产品。这些成功经验对 Prestomall 来说有着很大的吸引力。


据透露,在最初的提案阶段,阿里云数据库团队通过 ADAM 给出了一个超详细的改造计划,包括 DB 层面如何去自动映射、自动解析、自动转换,以及应用层每一行代码如何改造。同时,还对不同数据库产品的兼容性做了比较定量的代码改造分析。


阿里云数据库国际站产品负责人德迈介绍:“使用 ADAM 分析之后,我们发现,如果不使用 ADAM,从 Oracle 迁移到 PostgreSQL,80%以上的代码是需要修改的,如果使用 ADAM 迁移到 PostgreSQL,10%左右的代码是需要修改的,而如果迁移到 PolarDB,只有 5%的代码是需要修改的。”而这也是 PolarDB 入选最终迁移方案的重要原因。

迁移过程

确定了迁移方案之后,接下来要做的就是具体的迁移工作了。据了解,Prestomall 整个去 Oracle 可以六个阶段:


第一步是去 Oracle 的技术选型,前面我们详细介绍了选型过程,这里不再赘述。


第二步是去 Oracle 的赋能,即在实现与 Oracle 数据库解耦的同时,实现业务 IT 架构升级,获得更大的业务自由度。


第三步是业务改造,对于所有想要去 Oracle 的客户来说,这是最难的部分。业务改造面临的两大问题是工作量评估和兼容性。


第四步是数据迁移,不仅要保证全量和增量数据的一致性,同时还要提供数据回流的能力,让数据上得来下得去。


第五步是测试与调优,虽然 PolarDB 与 Oracle 兼容,但是始终是两个产品,各自有各自的产品特性,因此迁移上去之后还需要做进一步的调试。


第六步是割接与护航,在完成上线割接之后,还会有两个星期的阿里技术专家的保驾护航。


值得一提的是,在迁移过程中,ADAM 有两个功能发挥了很大的作用,一个是自动转换的功能,可以帮助使用者将原有的 Oracle SQL 自动改造成 PolarDB 兼容的 SQL。另一个是自动学习功能,虽然 PolarDB 与 Oracle 是高度兼容的,但也会有语法差异,而 ADAM 的 SQL 语法染色功能会使用不同的颜色来标注语法差异,帮助使用者快速领悟到语法差异规则。


据了解,目前 Prestomall 的业务流量几乎全部迁移到了 PolarDB 上,只剩邮件系统中的两张表还在做反向同步。


另外提到数据库迁移,很多人都会关心安全性的问题,尤其 Prestomall 作为东南亚的一家电商平台,在流程方面会更关注业务保护。据阿里云高级 DBA 专家郑旦介绍,在数据保护和业务稳定方面,阿里云主要做了两个层面的工作:第一个层面,DTS 不仅完成了数据迁移的工作,同时还在这个过程中做了数据校验;第二个层面,ADAM 对 Prestomall 系统的兼容性和兼容性结果做了一致性的检查。

写在最后

业界一直有“天下苦 Oracle 久矣”的说法,但是在实际去 Oracle 的过程中,总会犯难。那么,业界在去 Oracle 实践时,通常都有哪些选择呢?


阿里云智能数据库事业部产品总监叶正盛(斗佛)表示:“其实去 Oracle 的选择不是很多,业内常使用的基本上只有三种,一种是迁移到其它商业数据库,但这种方式用的较少;第二种是选择一种兼容度较高的数据库,这种方式的优势是业务基本不用做大的改造;第三种是切换到分布式数据库,这种方式的劣势是需要在业务上做重新设计,但优点是完成之后,可以享受分布式带来的红利。”


2020-02-12 09:352170
用户头像

发布了 497 篇内容, 共 330.9 次阅读, 收获喜欢 1925 次。

关注

评论

发布
暂无评论
发现更多内容

深入了解RocketMQ之过滤器

邱学喆

bloomfilter TAG过滤 SQL92

Google官方bazel构建工具的安装

Changing Lin

8月日更

程序员应该专注技术还是转管理?

石云升

职业规划 职场经验 8月日更

AlphaFold2“登陆”北鲲云平台,云计算助力科研大放异彩

北鲲云

项目中全局变量的灵活用法 12/100 发布文章

CodeNongXiaoW

FL Studio中钢琴卷帘窗的工具的使用

懒得勤快

微信开源C/C++ RPC框架PhxRPC

OpenIM

区块链盲盒游戏app软件开发|盲盒游戏软件介绍

量化系统19942438797

区块链 智能合约 盲盒

跨越AI天堑时:行动代号“盘古大模型”

脑极体

细思极恐!Alibaba新产SpringBoot深度历险(嵩山版)开源

Java 编程 架构 面试 架构师

NFT盲盒玩法详解|盲盒系统开发

Geek_23f0c3

DAPP智能合约交易系统开发 NFT 盲盒

ipfs矿机是什么?ipfs矿机挖出的币能交易吗?

区块链 分布式存储 ipfs挖矿 ipfs矿机 filecoin挖矿

游戏开发者的通关之旅,华为AGC for Games带来了什么?

叶落便知秋

webrtc 即时带宽评估器(BitrateEstimator)

webrtc developer

WebRTC

分享 10 个高星的创意项目!

程序员鱼皮

Java Python 数据库 大前端 Go 语言

Tapdata Cloud 版本上新!率先支持数据校验、类型映射等6大新功能

tapdata

MySQL nosql schema

致远互联2021年中报:扎根协同的广阔天地,撸起袖子加油干

海比研究院

新时代大视频产业的底座,视频云创变了什么?

阿里云CloudImagine

阿里云 直播技术 视频制作 视频流 视频云

疫情下的人生百态

6979阿强

图计算 GraphScope 新冠

架构设计-模块一

逝水流

架构

百分点感知智能实验室:语音识别技术发展阶段探究

百分点科技技术团队

语音识别 百分点科技 感知智能

GitHub获120w+star的JDK源码剖析手册,竟出自Alibaba高管之手?

Java 架构 面试 程序人生 Alibaba

AI加持数据管理服务DAS,让数据库运维更“聪明”,DBA更轻松

华为云数据库小助手

GaussDB dba 华为云DAS 华为云数据库

架构实战营模块1作业

^_^

架构实战营

算法毕业总结

Geek_Gu

我遇到的那些工长

escray

生活记录 8月日更

The Data Way Vol.3|做到最后只能删库跑路?DBA 能做的还有很多

SphereEx

数据库 开源

融云 X-Live 系列直播启动,遇见通信的无限可能

融云 RongCloud

开发者 音视频 通信 融云 即时通信

百分点大数据技术团队:BI嵌入式分析实践

百分点科技技术团队

BI 百分点科技 嵌入式分析

netty系列之:自建客户端和HTTP服务器交互

程序那些事

Java Netty 程序那些事

不用手机,如何让猫给你打视频电话丨日常小技

声网

物联网 目标检测 目标跟踪

独家揭秘东南亚电商平台 Prestomall 去 Oracle 的全过程_数据库_田晓旭_InfoQ精选文章