天天看點

跟Oracle說拜拜!獨家揭秘東南亞電商平台 Prestomall 去 O 全過程

原文轉載自架構頭條,作者:田曉旭

很多人都說:“現在的東南亞就像是坐着時光機,回到了 90 年代的中國市場。”

的确,在網際網路領域,我們經常能在東南亞看到中國網際網路發展曆程的影子。本文我們将詳細介紹一下東南亞企業的去 Oracle 經曆,揭秘中國經驗是如何複制到東南亞市場的。

跟Oracle說拜拜!獨家揭秘東南亞電商平台 Prestomall 去 O 全過程

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 來說有着很大的吸引力。

跟Oracle說拜拜!獨家揭秘東南亞電商平台 Prestomall 去 O 全過程

據透露,在最初的提案階段,阿裡雲資料庫團隊通過 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 的選擇不是很多,業内常使用的基本上隻有三種:

第一種是遷移到其它商業資料庫,但這種方式用的較少;

第二種是選擇一種相容度較高的資料庫,這種方式的優勢是業務基本不用做大的改造;

第三種是切換到分布式資料庫,這種方式的劣勢是需要在業務上做重新設計,但優點是完成之後,可以享受分布式帶來的紅利。”