溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

OceanBase遷移服務(wù):向分布式架構(gòu)升級(jí)的直接路徑

發(fā)布時(shí)間:2020-08-11 18:20:20 來(lái)源:ITPUB博客 閱讀:187 作者:螞蟻金服科技 欄目:大數(shù)據(jù)

2019年1月4日,OceanBase遷移服務(wù)解決方案在ATEC城市峰會(huì)中正式發(fā)布。螞蟻金服資深技術(shù)專家?guī)熚膮R和技術(shù)專家韓谷悅共同分享了OceanBase遷移服務(wù)的重要特性和業(yè)務(wù)實(shí)踐。

螞蟻數(shù)據(jù)庫(kù)架構(gòu)的三代升級(jí)史

在過(guò)去的十多年時(shí)間里,螞蟻在整個(gè)基礎(chǔ)數(shù)據(jù)庫(kù)架構(gòu)上一共經(jīng)歷了三代升級(jí)。第一代數(shù)據(jù)架構(gòu)是構(gòu)建在IOE的基礎(chǔ)之上——IBM的小型機(jī)、Oracle的商業(yè)數(shù)據(jù)庫(kù),還有EMC的共享存儲(chǔ)?;诘谝淮鶬OE架構(gòu)的運(yùn)維成本是非常高的,同時(shí)穩(wěn)定性的挑戰(zhàn)也是非常大的。隨著業(yè)務(wù)的快速發(fā)展,這套架構(gòu)已經(jīng)完全沒(méi)有辦法適應(yīng)業(yè)務(wù)發(fā)展的增速。

OceanBase遷移服務(wù):向分布式架構(gòu)升級(jí)的直接路徑

隨之誕生的是第二代架構(gòu),第二代架構(gòu)的主體是OE——也就是Oracle和EMC,加上螞蟻?zhàn)陨淼姆植际街虚g件,解決了業(yè)務(wù)的水平和垂直的彈性能力。這一代架構(gòu)其實(shí)伴隨著螞蟻?zhàn)吡撕芏嗄辍?

隨著4G、5G時(shí)代的到來(lái)和金融的普及化,人們的生活越來(lái)越離不開移動(dòng)支付,業(yè)務(wù)井噴式的發(fā)展給底層的數(shù)據(jù)庫(kù)提出了更高的要求。這些要求包括更高的穩(wěn)定性,快速恢復(fù)能力和極致的彈性能力等。

于是最終演進(jìn)到了我們?nèi)缃竦牡谌軜?gòu)。第三代架構(gòu)是由OceanBase為代表的金融級(jí)云數(shù)據(jù)庫(kù)和分布式中間件所構(gòu)成。

數(shù)據(jù)庫(kù)架構(gòu)升級(jí)的挑戰(zhàn)

伴隨著整個(gè)螞蟻的發(fā)展,整個(gè)數(shù)據(jù)庫(kù)的架構(gòu)也僅僅演進(jìn)了三代。這其中一個(gè)很重要的原因就是對(duì)于任何企業(yè)而言,整個(gè)數(shù)據(jù)庫(kù)的架構(gòu)升級(jí)都是一件非常有挑戰(zhàn)的事情。

螞蟻金服資深技術(shù)專家?guī)熚膮R說(shuō)道, 用一個(gè)我們內(nèi)部經(jīng)常說(shuō)的比喻,就是數(shù)據(jù)庫(kù)的架構(gòu)升級(jí)就好像是在給一個(gè)高速運(yùn)行的飛機(jī)更換引 擎?!?

更換引擎的目的是為了擁有更好的動(dòng)力,做更多技術(shù)上的創(chuàng)新。但是橫亙?cè)谘矍暗膯?wèn)題是,如何才能做到穩(wěn)妥創(chuàng)新,保證駕駛中的飛機(jī)平穩(wěn)順利的運(yùn)行,這其實(shí)是有非常大的挑戰(zhàn)。

OceanBase遷移服務(wù):向分布式架構(gòu)升級(jí)的直接路徑

在過(guò)去三代架構(gòu)的演進(jìn)中我們可以看到,本質(zhì)上每一代架構(gòu)的迭代基本上都是以兩到三年為周期,這其中會(huì)有非常高的 人力投入和成本開銷 。

第二個(gè)挑戰(zhàn)就是從傳統(tǒng)的商業(yè)數(shù)據(jù)庫(kù)遷移到OceanBase數(shù)據(jù)庫(kù)之上,我們?nèi)绾伪WC遷移過(guò)程中以及遷移以后的 穩(wěn)定性 。

另外一個(gè)非常大的挑戰(zhàn)就是 數(shù)據(jù)質(zhì)量 ,在金融企業(yè)里,數(shù)據(jù)承載的不僅只是錢,更承載了數(shù)以億計(jì)用戶的信任。 所以數(shù)據(jù)一條不能丟,一條不能錯(cuò),這是我們做數(shù)據(jù)庫(kù)的底線 。

當(dāng)然,包括兼容性問(wèn)題和性能風(fēng)險(xiǎn)也給數(shù)據(jù)庫(kù)的架構(gòu)升級(jí)帶來(lái)重重挑戰(zhàn)。

OceanBase遷移服務(wù):向分布式架構(gòu)升級(jí)的直接路徑

基于上述問(wèn)題和挑戰(zhàn),同時(shí)經(jīng)過(guò)螞蟻十年數(shù)據(jù)庫(kù)架構(gòu)升級(jí)的先進(jìn)經(jīng)驗(yàn),螞蟻金服為客戶打造了這款一站式數(shù)據(jù)遷移解決方案—— OceanBase遷移服務(wù)(OceanBaseMigration Service,簡(jiǎn)稱OMS)。

OMS的發(fā)展演進(jìn)

OceanBase遷移服務(wù):向分布式架構(gòu)升級(jí)的直接路徑

OMS的演進(jìn)是以業(yè)務(wù)為驅(qū)動(dòng),并且與OceanBase的架構(gòu)升級(jí)和不斷發(fā)展密不可分。

早在2014-2015年期間,螞蟻主站上的一些核心業(yè)務(wù),包括大家熟知的交易業(yè)務(wù),支付業(yè)務(wù)和會(huì)員業(yè)務(wù)等,需要從Oracle遷移到OceanBase上。當(dāng)時(shí)的OMS還是以一個(gè)工具類、模塊化的形態(tài)支撐著這些項(xiàng)目。

所以在2015年我們開始對(duì)OMS的方案進(jìn)行全面的調(diào)研,力求沉淀出通用的系統(tǒng)化的解決方案。

在2016年,OMS已經(jīng)有了平臺(tái)化的架構(gòu),引入了大規(guī)模編排的思想,將整個(gè)遷移特別是切換過(guò)程中繁瑣易錯(cuò)的環(huán)節(jié)全部集成到平臺(tái)。這一時(shí)期,OceanBase也完成了從0.5版本到1.0版本的架構(gòu)升級(jí),這一年OMS還支撐了網(wǎng)商銀行、印度PayTM以及主站的核心業(yè)務(wù)升級(jí)到OceanBase 1.0版本。

到了2018年的時(shí)候,無(wú)論在基礎(chǔ)功能層面還是任務(wù)編排層面,OMS都已經(jīng)被打磨得日趨完善。今年OMS已經(jīng)支持了螞蟻森林,螞蟻商戶平臺(tái)以及眾多大量核心及非核心的業(yè)務(wù)從MySQL遷移到OceanBase之上。與此同時(shí),在外部業(yè)務(wù)包括很多已經(jīng)上線OceanBase的商業(yè)銀行,也已經(jīng)驗(yàn)證了使用OMS一鍵遷移到OceanBase的能力。

OMS的方案優(yōu)勢(shì)

OceanBase遷移服務(wù):向分布式架構(gòu)升級(jí)的直接路徑

OceanBase遷移服務(wù)其實(shí)主要解決了五個(gè)重要的問(wèn)題。

1.負(fù)載回放驗(yàn)證: 其中第一個(gè)核心的問(wèn)題就是負(fù)載回放驗(yàn)證,通過(guò)采集源端數(shù)據(jù)庫(kù)的SQL流量,在目標(biāo)庫(kù)OceanBase上回放,可以驗(yàn)證其在OceanBase上的功能是否兼容、性能是否出現(xiàn)問(wèn)題等。同時(shí)基于螞蟻DBA十多年的經(jīng)驗(yàn)沉淀,OMS會(huì)為客戶提供性能等方面的調(diào)優(yōu)建議。

2.秒級(jí)數(shù)據(jù)校驗(yàn): 第二點(diǎn)就是數(shù)據(jù)校驗(yàn),OMS有三層數(shù)據(jù)校驗(yàn),可以做到秒級(jí)的延遲。舉一個(gè)例子,比如說(shuō)我們想把傳統(tǒng)商業(yè)數(shù)據(jù)庫(kù)替換成OceanBase,如果在遷移過(guò)程中任何一條數(shù)據(jù)出現(xiàn)了錯(cuò)誤,在一秒鐘內(nèi)就可以快速發(fā)現(xiàn)。校驗(yàn)的延遲可以完全保證在一秒以內(nèi),根據(jù)螞蟻線上的經(jīng)驗(yàn),大概在100-200毫秒之間。

3.分鐘級(jí)即時(shí)回滾: 第三點(diǎn)也是最重要的一點(diǎn),就是OMS有隨時(shí)回滾的能力,而且回滾是無(wú)損的。這也是我們前面所強(qiáng)調(diào)的穩(wěn)妥創(chuàng)新的基石。

4.多種數(shù)據(jù)庫(kù)類型支持: 目前OMS支持源端數(shù)據(jù)庫(kù)類型有Oracle、MySQL、OceanBase等等,支持全量遷移和增量數(shù)據(jù)同步。

5.一鍵完成遷移: 整個(gè)數(shù)據(jù)遷移鏈路和回滾機(jī)制的搭建基本上都是通過(guò)一鍵操作完成,使用簡(jiǎn)便。

OMS的技術(shù)架構(gòu)

OMS的核心方案其實(shí)非常簡(jiǎn)單,我們把OceanBase變成Oracle/MySQL的一個(gè)備庫(kù)。

OceanBase遷移服務(wù):向分布式架構(gòu)升級(jí)的直接路徑

傳統(tǒng)的商業(yè)數(shù)據(jù)庫(kù)一般都是有主庫(kù)和備庫(kù)的:主庫(kù)承擔(dān)寫的流量,如果主庫(kù)出現(xiàn)問(wèn)題,我們會(huì)把數(shù)據(jù)切到備庫(kù),然后通過(guò)OMS提供的一整套虛擬主備庫(kù)的解決方案完成切換。比如原來(lái)Oracle有一個(gè)主庫(kù)一個(gè)備庫(kù),然后OceanBase其實(shí)變成了一個(gè)虛擬的備庫(kù)。

整個(gè)數(shù)據(jù)庫(kù)架構(gòu)的升級(jí)也會(huì)變得異常簡(jiǎn)單,簡(jiǎn)單到只是做了一個(gè)主備切換?;貪L也會(huì)變得非常簡(jiǎn)單,其實(shí)也是做了一次主備切換。

OceanBase遷移服務(wù):向分布式架構(gòu)升級(jí)的直接路徑

從OMS的整體架構(gòu)來(lái)看,其實(shí)一個(gè)非常關(guān)鍵的點(diǎn)就是,我們?cè)趥鹘y(tǒng)的商業(yè)數(shù)據(jù)庫(kù)和OceanBase之間建立了一套虛擬的主備鏈路,整個(gè)OMS里用到的所有組件,其實(shí)都是在螞蟻和阿里有很多年技術(shù)沉淀的,也都是基于真實(shí)場(chǎng)景所產(chǎn)生的。

OMS的遷移流程

OceanBase遷移服務(wù):向分布式架構(gòu)升級(jí)的直接路徑

OceanBase遷移服務(wù)的整體遷移流程其實(shí)只有七步。

1.評(píng)估: 首先第一步是通過(guò)負(fù)載回放工具做兼容性分析;

2.PoC: 接下來(lái)OceanBase云平臺(tái)可以幫助客戶部署一套PoC集群;

3.預(yù)遷移: 然后OMS把線上的Oracle的數(shù)據(jù)預(yù)遷移到一個(gè)測(cè)試庫(kù)里;

4.驗(yàn)證: 在這個(gè)測(cè)試庫(kù)里用負(fù)載回放工具去回放這些SQL,然后找到SQL里不兼容,性能或者數(shù)據(jù)質(zhì)量不滿足預(yù)期的部分,并提供優(yōu)化建議;

5.正式遷移: 前四步做完了以后,業(yè)務(wù)需要調(diào)整或者需要優(yōu)化的SQL已經(jīng)完成優(yōu)化,然后就可以正式遷移了。首先把原有的全量數(shù)據(jù)遷過(guò)來(lái),然后再把增量變化的那部分?jǐn)?shù)據(jù)實(shí)時(shí)同步過(guò)來(lái);

6.校驗(yàn): 等到所有的數(shù)據(jù)準(zhǔn)備好以后,然后我們繼續(xù)完成三級(jí)校驗(yàn);

7.切換和回滾: 等到所有的校驗(yàn)都完成以后,可以一鍵完成切換和回滾功能。

通過(guò)這七步就可以輕松完成從傳統(tǒng)商業(yè)數(shù)據(jù)庫(kù)到分布式數(shù)據(jù)庫(kù)的完整遷移。

螞蟻商戶平臺(tái)基于OMS的業(yè)務(wù)實(shí)踐

螞蟻商戶平臺(tái)承載著商戶檔案數(shù)據(jù)信息,訂購(gòu)關(guān)系、簽約信息的數(shù)據(jù)和相應(yīng)的服務(wù)能力。其中一部分業(yè)務(wù)使用的是MySQL數(shù)據(jù)庫(kù),還有一部分核心業(yè)務(wù)使用的是Oracle數(shù)據(jù)庫(kù)。

隨著商戶的快速增長(zhǎng)以及業(yè)務(wù)場(chǎng)景的不斷豐富,商戶平臺(tái)數(shù)據(jù)增長(zhǎng)迅速,數(shù)據(jù)規(guī)模相當(dāng)龐大。尤其是MySQL的單表瓶頸日益明顯,DDL變更、DML更新的性能與風(fēng)險(xiǎn)已經(jīng)無(wú)法承擔(dān)。

OceanBase遷移服務(wù):向分布式架構(gòu)升級(jí)的直接路徑

螞蟻金服技術(shù)專家韓谷悅介紹道, “OceanBase能夠支持?jǐn)?shù)據(jù)的無(wú)限擴(kuò)展,滿足商戶業(yè)務(wù)的容量與性能需求。那么如果我們換一種數(shù)據(jù)庫(kù)底盤,其實(shí)所要面對(duì)的性能、穩(wěn)定性和數(shù)據(jù)質(zhì)量的風(fēng)險(xiǎn)同樣不可避免?!?

OceanBase遷移服務(wù):向分布式架構(gòu)升級(jí)的直接路徑

從螞蟻商戶平臺(tái)的業(yè)務(wù)實(shí)踐來(lái)看,使用OMS遷移與傳統(tǒng)遷移進(jìn)行對(duì)比,我們可以看到:

· 業(yè)務(wù)評(píng)估和改造

過(guò)去通常一個(gè)業(yè)務(wù)少則花費(fèi)1-2個(gè)月的時(shí)間去做改造和適配;那么基于OMS自動(dòng)化的SQL兼容性評(píng)估和負(fù)載回放的能力,螞蟻商務(wù)平臺(tái)業(yè)務(wù)的改造大概只用了一個(gè)星期的時(shí)間。

· 數(shù)據(jù)遷移和校驗(yàn)

客觀來(lái)講,遷移的總時(shí)長(zhǎng)主要取決于業(yè)務(wù)數(shù)據(jù)模型,數(shù)據(jù)量和網(wǎng)絡(luò)環(huán)境。在提高遷移效率方面,OMS目前增量遷移的延遲僅為毫秒級(jí),跨城情況下最長(zhǎng)只需要3秒。并且針對(duì)校驗(yàn)出的數(shù)據(jù)差異提供補(bǔ)齊的SQL和訂正方案,使得遷移和校驗(yàn)的整體效率有了大幅度的提升。

· 業(yè)務(wù)切換

其實(shí)在切換之前,往往需要制定嚴(yán)密的切流方案和Failover方案,整個(gè)切換過(guò)程中需要檢查與校驗(yàn)的細(xì)節(jié)非常繁瑣,任何一步疏忽都有可能造成數(shù)據(jù)不一致的問(wèn)題。那么OMS通過(guò)引入大規(guī)模編排的思想,把所有繁瑣復(fù)雜的環(huán)節(jié)通通落到平臺(tái)當(dāng)中。所以從原來(lái)業(yè)務(wù)切換需要用時(shí)1-2周時(shí)間, 使用OMS后螞蟻商戶平臺(tái)業(yè)務(wù)無(wú)論是切讀還是切寫的過(guò)程中都只用了幾分鐘的時(shí)間。

· 業(yè)務(wù)回滾

在過(guò)去,遷移之后的業(yè)務(wù)回滾要擔(dān)負(fù)重大的決策風(fēng)險(xiǎn),OMS使得業(yè)務(wù)回滾就像一次主備切換,可以瞬間完成并且不丟數(shù)據(jù),所以讓業(yè)務(wù)回滾不再成為難題。商戶業(yè)務(wù)整體遷移的過(guò)程中也發(fā)生過(guò)業(yè)務(wù)抖動(dòng),使用OMS回滾的時(shí)候從登陸系統(tǒng)到完成回滾也只用了幾分鐘的時(shí)間。

所以全程下來(lái)螞蟻商戶平臺(tái)這個(gè)業(yè)務(wù)的遷移時(shí)間大概在三個(gè)多星期的時(shí)間完成,那么無(wú)論從人力成本還是時(shí)間成本上,OMS都極大地提升了數(shù)據(jù)庫(kù)的整體遷移效率。

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

OceanBase遷移服務(wù):向分布式架構(gòu)升級(jí)的直接路徑

當(dāng)前, 越來(lái)越多的企業(yè)已經(jīng)認(rèn)識(shí)到分布式架構(gòu)在實(shí)現(xiàn)業(yè)務(wù)靈活擴(kuò)展以及敏捷開發(fā)等方面的巨大價(jià)值。OceanBase不斷通過(guò)產(chǎn)品端的革新,為傳統(tǒng)企業(yè)輸送“互聯(lián)網(wǎng)基因”,幫助更多客戶向分布式架構(gòu)轉(zhuǎn)型。

同時(shí)OceanBase也在不斷提高服務(wù)客戶的深度和廣度。深度意味著在同樣的業(yè)務(wù)場(chǎng)景下,隨著業(yè)務(wù)的發(fā)展和體量的壯大,幫助更多企業(yè)承擔(dān)起業(yè)務(wù)所帶來(lái)的極致壓力。廣度則針對(duì)的是隨著新型技術(shù)形態(tài)和業(yè)務(wù)場(chǎng)景的出現(xiàn),幫助更多企業(yè)快速響應(yīng),通過(guò)技術(shù)創(chuàng)新而適應(yīng)變化所帶來(lái)的新的市場(chǎng)契機(jī)。

OceanBase致力于將螞蟻?zhàn)陨順I(yè)務(wù)多年沉淀下來(lái)的最濃縮,最經(jīng)典和最普世的方法論輸出給廣大的企業(yè)客戶,同時(shí)做到深度和廣度并存, 真正幫助客戶實(shí)現(xiàn)穩(wěn)妥創(chuàng)新

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI