天天看點

OceanBase遷移服務:向分布式架構更新的直接路徑螞蟻資料庫架構的三代更新史資料庫架構更新的挑戰OceanBase遷移服務:向分布式架構更新的直接路徑螞蟻商戶平台基于OMS的業務實踐

2019年1月4日,OceanBase遷移服務解決方案在ATEC城市峰會中正式釋出。螞蟻金服資深技術專家師文彙和技術專家韓谷悅共同分享了OceanBase遷移服務的重要特性和業務實踐。

螞蟻資料庫架構的三代更新史

在過去的十多年時間裡,螞蟻在整個基礎資料庫架構上一共經曆了三代更新。第一代資料架構是建構在IOE的基礎之上——IBM的小型機、Oracle的商業資料庫,還有EMC的共享存儲。基于第一代IOE架構的運維成本是非常高的,同時穩定性的挑戰也是非常大的。随着業務的快速發展,這套架構已經完全沒有辦法适應業務發展的增速。

OceanBase遷移服務:向分布式架構更新的直接路徑螞蟻資料庫架構的三代更新史資料庫架構更新的挑戰OceanBase遷移服務:向分布式架構更新的直接路徑螞蟻商戶平台基于OMS的業務實踐

随之誕生的是第二代架構,第二代架構的主體是OE——也就是Oracle和EMC,加上螞蟻自身的分布式中間件,解決了業務的水準和垂直的彈性能力。這一代架構其實伴随着螞蟻走了很多年。

随着4G、5G時代的到來和金融的普及化,人們的生活越來越離不開移動支付,業務井噴式的發展給底層的資料庫提出了更高的要求。這些要求包括更高的穩定性,快速恢複能力和極緻的彈性能力等。

于是最終演進到了我們如今的第三代架構。第三代架構是由OceanBase為代表的金融級雲資料庫和分布式中間件所構成。

資料庫架構更新的挑戰

伴随着整個螞蟻的發展,整個資料庫的架構也僅僅演進了三代。這其中一個很重要的原因就是對于任何企業而言,整個資料庫的架構更新都是一件非常有挑戰的事情。

螞蟻金服資深技術專家師文彙說道,“用一個我們内部經常說的比喻,就是資料庫的架構更新就好像是在給一個高速運作的飛機更換引擎。”

OceanBase遷移服務:向分布式架構更新的直接路徑螞蟻資料庫架構的三代更新史資料庫架構更新的挑戰OceanBase遷移服務:向分布式架構更新的直接路徑螞蟻商戶平台基于OMS的業務實踐

更換引擎的目的是為了擁有更好的動力,做更多技術上的創新。但是橫亘在眼前的問題是,如何才能做到穩妥創新,保證駕駛中的飛機平穩順利的運作,這其實是有非常大的挑戰。

OceanBase遷移服務:向分布式架構更新的直接路徑螞蟻資料庫架構的三代更新史資料庫架構更新的挑戰OceanBase遷移服務:向分布式架構更新的直接路徑螞蟻商戶平台基于OMS的業務實踐

在過去三代架構的演進中我們可以看到,本質上每一代架構的疊代基本上都是以兩到三年為周期,這其中會有非常高的人力投入和成本開銷。

第二個挑戰就是從傳統的商業資料庫遷移到OceanBase資料庫之上,我們如何保證遷移過程中以及遷移以後的穩定性。

另外一個非常大的挑戰就是資料品質,在金融企業裡,資料承載的不僅隻是錢,更承載了數以億計使用者的信任。是以資料一條不能丢,一條不能錯,這是我們做資料庫的底線。

當然,包括相容性問題和性能風險也給資料庫的架構更新帶來重重挑戰。

OceanBase遷移服務:向分布式架構更新的直接路徑

基于上述問題和挑戰,同時經過螞蟻十年資料庫架構更新的先進經驗,螞蟻金服為客戶打造了這款一站式資料遷移解決方案——OceanBase遷移服務(OceanBase Migration Service,簡稱OMS)。

OMS的發展演進

OceanBase遷移服務:向分布式架構更新的直接路徑螞蟻資料庫架構的三代更新史資料庫架構更新的挑戰OceanBase遷移服務:向分布式架構更新的直接路徑螞蟻商戶平台基于OMS的業務實踐

OMS的演進是以業務為驅動,并且與OceanBase的架構更新和不斷發展密不可分。

早在2014-2015年期間,螞蟻主站上的一些核心業務,包括大家熟知的交易業務,支付業務和會員業務等,需要從Oracle遷移到OceanBase上。當時的OMS還是以一個工具類、子產品化的形态支撐着這些項目。

是以在2015年我們開始對OMS的方案進行全面的調研,力求沉澱出通用的系統化的解決方案。

在2016年,OMS已經有了平台化的架構,引入了大規模編排的思想,将整個遷移特别是切換過程中繁瑣易錯的環節全部內建到平台。這一時期,OceanBase也完成了從0.5版本到1.0版本的架構更新,這一年OMS還支撐了網商銀行、印度PayTM以及主站的核心業務更新到OceanBase 1.0版本。

到了2018年的時候,無論在基礎功能層面還是任務編排層面,OMS都已經被打磨得日趨完善。今年OMS已經支援了螞蟻森林,螞蟻商戶平台以及衆多大量核心及非核心的業務從MySQL遷移到OceanBase之上。與此同時,在外部業務包括很多已經上線OceanBase的商業銀行,也已經驗證了使用OMS一鍵遷移到OceanBase的能力。

OMS的方案優勢

OceanBase遷移服務:向分布式架構更新的直接路徑螞蟻資料庫架構的三代更新史資料庫架構更新的挑戰OceanBase遷移服務:向分布式架構更新的直接路徑螞蟻商戶平台基于OMS的業務實踐

OceanBase遷移服務其實主要解決了五個重要的問題。

負載回放驗證:其中第一個核心的問題就是負載回放驗證,通過采集源端資料庫的SQL流量,在目标庫OceanBase上回放,可以驗證其在OceanBase上的功能是否相容、性能是否出現問題等。同時基于螞蟻DBA十多年的經驗沉澱,OMS會為客戶提供性能等方面的調優建議。

秒級資料校驗:第二點就是資料校驗,OMS有三層資料校驗,可以做到秒級的延遲。舉一個例子,比如說我們想把傳統商業資料庫替換成OceanBase,如果在遷移過程中任何一條資料出現了錯誤,在一秒鐘内就可以快速發現。校驗的延遲可以完全保證在一秒以内,根據螞蟻線上的經驗,大概在100-200毫秒之間。

分鐘級即時復原:第三點也是最重要的一點,就是OMS有随時復原的能力,而且復原是無損的。這也是我們前面所強調的穩妥創新的基石。

多種資料庫類型支援:目前OMS支援源端資料庫類型有Oracle、MySQL、OceanBase等等,支援全量遷移和增量資料同步。

一鍵完成遷移:整個資料遷移鍊路和復原機制的搭建基本上都是通過一鍵操作完成,使用簡便。

OMS的技術架構

OMS的核心方案其實非常簡單,我們把OceanBase變成Oracle/MySQL的一個備庫。

OceanBase遷移服務:向分布式架構更新的直接路徑螞蟻資料庫架構的三代更新史資料庫架構更新的挑戰OceanBase遷移服務:向分布式架構更新的直接路徑螞蟻商戶平台基于OMS的業務實踐

傳統的商業資料庫一般都是有主庫和備庫的:主庫承擔寫的流量,如果主庫出現問題,我們會把資料切到備庫,然後通過OMS提供的一整套虛拟主備庫的解決方案完成切換。比如原來Oracle有一個主庫一個備庫,然後OceanBase其實變成了一個虛拟的備庫。

整個資料庫架構的更新也會變得異常簡單,簡單到隻是做了一個主備切換。復原也會變得非常簡單,其實也是做了一次主備切換。

OceanBase遷移服務:向分布式架構更新的直接路徑螞蟻資料庫架構的三代更新史資料庫架構更新的挑戰OceanBase遷移服務:向分布式架構更新的直接路徑螞蟻商戶平台基于OMS的業務實踐

從OMS的整體架構來看,其實一個非常關鍵的點就是,我們在傳統的商業資料庫和OceanBase之間建立了一套虛拟的主備鍊路,整個OMS裡用到的所有元件,其實都是在螞蟻和阿裡有很多年技術沉澱的,也都是基于真實場景所産生的。

OMS的遷移流程

OceanBase遷移服務:向分布式架構更新的直接路徑螞蟻資料庫架構的三代更新史資料庫架構更新的挑戰OceanBase遷移服務:向分布式架構更新的直接路徑螞蟻商戶平台基于OMS的業務實踐

OceanBase遷移服務的整體遷移流程其實隻有七步。

評估:首先第一步是通過負載回放工具做相容性分析;

PoC:接下來OceanBase雲平台可以幫助客戶部署一套PoC叢集;

預遷移:然後OMS把線上的Oracle的資料預遷移到一個測試庫裡;

驗證:在這個測試庫裡用負載回放工具去回放這些SQL,然後找到SQL裡不相容,性能或者資料品質不滿足預期的部分,并提供優化建議;

正式遷移:前四步做完了以後,業務需要調整或者需要優化的SQL已經完成優化,然後就可以正式遷移了。首先把原有的全量資料遷過來,然後再把增量變化的那部分資料實時同步過來;

校驗:等到所有的資料準備好以後,然後我們繼續完成三級校驗;

切換和復原:等到所有的校驗都完成以後,可以一鍵完成切換和復原功能。

通過這七步就可以輕松完成從傳統商業資料庫到分布式資料庫的完整遷移。

螞蟻商戶平台基于OMS的業務實踐

螞蟻商戶平台承載着商戶檔案資料資訊,訂購關系、簽約資訊的資料和相應的服務能力。其中一部分業務使用的是MySQL資料庫,還有一部分核心業務使用的是Oracle資料庫。

随着商戶的快速增長以及業務場景的不斷豐富,商戶平台資料增長迅速,資料規模相當龐大。尤其是MySQL的單表瓶頸日益明顯,DDL變更、DML更新的性能與風險已經無法承擔。

螞蟻金服技術專家韓谷悅介紹道,“OceanBase能夠支援資料的無限擴充,滿足商戶業務的容量與性能需求。那麼如果我們換一種資料庫底盤,其實所要面對的性能、穩定性和資料品質的風險同樣不可避免。”

OceanBase遷移服務:向分布式架構更新的直接路徑螞蟻資料庫架構的三代更新史資料庫架構更新的挑戰OceanBase遷移服務:向分布式架構更新的直接路徑螞蟻商戶平台基于OMS的業務實踐

從螞蟻商戶平台的業務實踐來看,使用OMS遷移與傳統遷移進行對比,我們可以看到:

  • 業務評估和改造

過去通常一個業務少則花費1-2個月的時間去做改造和适配;那麼基于OMS自動化的SQL相容性評估和負載回放的能力,螞蟻商務平台業務的改造大概隻用了一個星期的時間。

  • 資料遷移和校驗

客觀來講,遷移的總時長主要取決于業務資料模型,資料量和網絡環境。在提高遷移效率方面,OMS目前增量遷移的延遲僅為毫秒級,跨城情況下最長隻需要3秒。并且針對校驗出的資料差異提供補齊的SQL和訂正方案,使得遷移和校驗的整體效率有了大幅度的提升。

  • 業務切換

其實在切換之前,往往需要制定嚴密的切流方案和Failover方案,整個切換過程中需要檢查與校驗的細節非常繁瑣,任何一步疏忽都有可能造成資料不一緻的問題。那麼OMS通過引入大規模編排的思想,把所有繁瑣複雜的環節通通落到平台當中。是以從原來業務切換需要用時1-2周時間, 使用OMS後螞蟻商戶平台業務無論是切讀還是切寫的過程中都隻用了幾分鐘的時間。

  • 業務復原

在過去,遷移之後的業務復原要擔負重大的決策風險,OMS使得業務復原就像一次主備切換,可以瞬間完成并且不丢資料,是以讓業務復原不再成為難題。商戶業務整體遷移的過程中也發生過業務抖動,使用OMS復原的時候從登陸系統到完成復原也隻用了幾分鐘的時間。

是以全程下來螞蟻商戶平台這個業務的遷移時間大概在三個多星期的時間完成,那麼無論從人力成本還是時間成本上,OMS都極大地提升了資料庫的整體遷移效率。

最後,韓谷悅為大家展示了OMS一鍵遷移的demo示範。

OceanBase遷移服務:向分布式架構更新的直接路徑螞蟻資料庫架構的三代更新史資料庫架構更新的挑戰OceanBase遷移服務:向分布式架構更新的直接路徑螞蟻商戶平台基于OMS的業務實踐

目前, 越來越多的企業已經認識到分布式架構在實作業務靈活擴充以及靈活開發等方面的巨大價值。OceanBase不斷通過産品端的革新,為傳統企業輸送“網際網路基因”,幫助更多客戶向分布式架構轉型。

同時OceanBase也在不斷提高服務客戶的深度和廣度。深度意味着在同樣的業務場景下,随着業務的發展和體量的壯大,幫助更多企業承擔起業務所帶來的極緻壓力。廣度則針對的是随着新型技術形态和業務場景的出現,幫助更多企業快速響應,通過技術創新而适應變化所帶來的新的市場契機。

OceanBase緻力于将螞蟻自身業務多年沉澱下來的最濃縮,最經典和最普世的方法論輸出給廣大的企業客戶,同時做到深度和廣度并存,真正幫助客戶實作穩妥創新。

OMS 技術交流群

— 想了解更多OMS的産品特性和功能?

— 想與螞蟻金服OceanBase的一線技術專家深入交流?

掃描下方二維碼聯系小編,快速加入OMS技術交流群!

OceanBase遷移服務:向分布式架構更新的直接路徑螞蟻資料庫架構的三代更新史資料庫架構更新的挑戰OceanBase遷移服務:向分布式架構更新的直接路徑螞蟻商戶平台基于OMS的業務實踐