1. 程式人生 > >從Oracle到MySQL,余額寶雲實踐分享

從Oracle到MySQL,余額寶雲實踐分享

並行化 即使 速度 邊緣 直銷 初步 溝通 中心 比較

原文鏈接:http://www.csdn.net/article/2013-11-/2817426-interview-financial-case-yuerbao-aliyun07

余額寶、百度百發、騰訊財付通謀劃的互聯網理財工具,吹響了互聯網對金融行業的進軍節奏。而後,網易、和訊、京東商城、蘇寧雲商等二線實力企業紛紛涉水。另一邊,一眾金融精英也在頻頻轉換思路,不僅銀行網絡中心從副行長牽頭的服務部門一躍成為行長主抓的業務部門,而且高調發布互聯網金融理財產品與攜手互聯網企業並行,力圖實現金融互聯網的新價值。一時之間,互聯網金融熱潮湧動,無數專家多視點多維度進行了深入剖析,數十篇業內深度文章從產品、渠道、市場與趨勢等全面解析互聯網金融本質。

技術分享

天弘基金創新支持部總經理樊振華(左),阿裏雲金融雲服務架構師白培新(中),深圳市金證科技股份有限公司副總裁徐岷波(右)

但洶湧的背後,是鮮為人知的技術實戰。從傳統封閉的IOE格局遷移到更加動態擴展、成本更經濟的雲平臺中,要跨越的障礙實在不少。即使在雲計算發源地——美國,囿於安全性、合規性和風險等方面的挑戰,金融業雖然與AWS接觸頻頻,但還沒有走出實質性的那一步。到了國內,習慣有標桿可以模仿的我們,是繼續等待?還是走出新路?

好在,5個月,開戶用戶超過1600萬,貨幣基金累計申購超過1300億的余額寶在市場上砸出了聲音。而我們一直極為關註的,余額寶一期二期技術遷移實踐經驗也終於浮出水面。余額寶的背後是四方力量:支付寶、天弘基金(基金合作方)、金證股份(軟件供應商)和阿裏雲

,在2013年阿裏雲開發者大會中,記者有機會直面其中三位核心人士:天弘基金創新支持部總經理樊振華,深圳市金證科技股份有限公司副總裁徐岷波,阿裏雲金融雲服務架構師白培新,卻發現:經驗,比我們想象的要復雜;過程,卻比大家想象的要簡單。

一期“IOE”,二期要“入”雲,原因何在?

外界看待余額寶是個整體,但沒想到在技術實踐上,余額寶是有一期和二期工程的。樊振華對CSDN雲計算說:“最初余額寶與互聯網的嘗試,在整個基金行業也是第一次。完全是摸著石頭過河。為了穩妥,我們在一期的時候是采用傳統IOE的架構,總投資400多萬。但是沒有想到數據量和交易量會增長幅度如此大,遠超平臺承受能力,以至於到了余額寶二期時,如果還采用IOE的模式,初步估算至少需要投入5000萬(主系統+同城災備+異地災備等)

。再加上後期人力和周期服務,要三個月完成目標,這將是不可承受之重。”

怎麽辦?要知道,由於安全、合規和風險等方面的考慮,金融對公有雲很抵制。但當余額寶6月13日上線,6月17日召開新聞發布會之後,天弘與支付寶一起來評估是否在11月的時候支持“雙十一”大促時,卻發現:如果支持,那麽按照2012年的數據,余額寶平臺所承受的壓力要驟增數十倍甚至數百倍,估算約為1億客戶數,3億筆交易,2.5小時完成清算。采用當時的IOE架構,投入將要增加數千萬,設備、軟件之外,甚至是余額寶一期所用的機房也完全無法滿足需求。

不僅如此,余額寶發布之後不到兩個月,就為天弘基金帶來百億級別的資金增量及百萬級活躍用戶,平均每月規模增長100億元左右,天弘增利寶已經成為國內用戶數最多的貨幣基金。如此增長之後,保證安全+降低成本+為未來業務提供彈性擴展架構已經成為必須。

如果說6月13日是一期的截止時間點的話,那麽“二期,是從7月初開始開發的”。沒有先例,是否就需要繼續等待下去?沒有先例,是否要繼續投入上千萬去擴容和升級?沒有先例,是不是可以等等看,期待國外會有案例給以啟迪和復制?可市場會給予大家等待的時間麽?

“余額寶遷移到雲平臺上,已經成為我們自發的需求。當然,也別無其他選擇。”樊振華說。

下定決心,決策過程反而沒有想象中那麽復雜了。“評估系統上線,只有三項標準:成本評估、安全評估、架構擴展評估。盡管國際上,金融行業還也沒有采用公有雲平臺的先例。這不僅是單純的技術障礙,還是意識、理解、勇氣和監管要求等復雜交織的結果。但市場逼著我們向前,所以決策並沒有大家想象的那麽復雜。”

事實證明,“沒有選擇的選擇,到後來卻發現是最好的選擇。”樊振華笑著對CSDN雲計算的記者說。

去IOE,最難的是去Oracle數據庫

要將曾經根植在IOE的軟件遷移到阿裏雲上,開發、調整、優化必不可少。但時間如此緊張(最多就3個月),那麽,一開始,打造合作多方的信任關系自然至關重要。

“余額寶本身擁有極強的互聯網屬性,數據量大、業務量大、響應速度要求高。時間這麽緊,天弘、金證和阿裏雲、支付寶,簡單溝通後立即投入了啟動工作。也因為時間太緊,所以我們也沒有調研的時間,更沒有可調研的成功案例。可以說,基於多方的信任,資源共享和無所畏懼,是我們走到一起的根本原因。”樊振華如此表示。

去IOE,硬件相對容易些,最難的是與應用密切相關的數據庫

Oracle數據庫向MySQL轉換的時候,連最簡單的批量插入,由於對於底層理解的不同,都有很多問題。在Oracle中,開發者是不需要關心底層問題的,但在MySQL則不同,要關註很多。批量提交,事務開啟還是關閉,都需要人為幹預。

數據庫解決的問題是插入、刪除修改。所以遷移的時候,這些問題需要一個一個去研究去解決,然後復制過來一個一個測試,開發階段的測試工作量可想而知。業內認為MySQL無法支撐大數據清算,這是有根據的。但在徹底了解MySQL之後,天弘感覺遷移就如同修路一樣,原來基於IOE是條路,而基於雲架構,一條不行,可以修50條路,100條路,總歸是可以化整為零,用水平化、分庫分表等方式,並行化思路來解決,用小單位來解決問題的。雖然在遷移中,對中間層的要求更高,但是可行的。

白培新詳細介紹了一些技術難點。在數據庫切換過程中遇到一些比較困難的點,比如說Oracle集中管理強,MySQL單機的能力顯然要弱很多。余額寶遷移到阿裏雲上之後,要考慮雙十一對於天弘基金系統吞吐量的壓力。在評審架構後,通過對性能進行預估,采用了50個MySQL實例的方式。但需要天弘將業務邏輯、應用層所用的數據庫通過一個維度來進行水平拆分,然後將這些業務平均分配在這50個MySQL實例上,以保證每一個MySQL的性能負載比較平均,從而實現用50個MySQL來支撐的大業務量。阿裏在去IOE方面實踐的時間長,有經驗,阿裏雲底層專業的DBA團隊和數據庫專家都參與到項目中,共同和天弘來做拆分方案。而後,在從Oracle平臺到MySQL的過程中,金證承擔了主要的遷移工作。

徐岷波也對CSDN雲計算表示:“金證在金融行業有20年的歷史了,客戶廣泛。由於業務需要,金證對DB2、Sybase、Oracle、SQLServer這樣在金融行業應用較多的數據庫都有應用。這也使得金證在開發新系統的時候,一直非常關註‘跨平臺特性’,盡可能不要用到哪一種單一數據庫的很特殊的功能。所以金證開發的系統,完全沒有采用存儲過程的模式,所有的應用和業務邏輯都是在中間件這一層,於是所有的業務( 數據管理、業務服務等,如現在用到的PA和直銷,未來用到的交易、管理、甚至數據倉庫這樣的業務系統等)都可以放在應用服務器上,數據庫就是存儲的功能。這也使得從余額寶的Oracle到MySQL的切換數據庫比較容易實現。除此以外,余額寶使用的中間件也是金證開發的,原有軟件架構非常好,雖然第一次接觸MySQL,但跨平臺很容易實現遷移。但如果系統利用了大量存儲,且大量業務是跑在數據庫上,中間件也是用的Oracle的,那麽應用移植其實就非常難,因為每一種數據庫的存儲過程的差別是非常大的,現在來看其實有很多有利的因素是我們各方的配合達到現在這樣的效果。”

事實上,單純從技術上看,余額寶是個性且不易復制的。一方面,金證的直銷系統和中間件都是自主開發的,比較可控;另一方面,業務系統對底層的業務依賴主要是在應用層,整體的改造難度較小。不過即使如此,有了多方匯聚的極強技術實力,阿裏雲還是和金證一起,用兩天時間來將金證系統中所有SQL語句都過了一遍,大概是有幾十萬條SQL語句,才徹底解決一些性能優化的問題

好在,遷移到雲上之後,白培新表示:“在預測環節,實時並發數,要求為3000TPS(每秒可以開3000戶),但測試結果是可以開到5000,極限容量可以到12000TPS。”徐岷波進一步補充說:“50個MySQL的實例完全可以支撐余額寶的雙十一峰值業務,並且在沒有做過任何優化的情況下,還留出了很大余量。如果經過系統調優,以過去的工作經驗來看,在現有的設備和硬件網絡環境下,性能翻一倍應該是正常的。”

除此以外,樊振華對安全也很滿意:“在測試中,阿裏雲提供的數據庫服務主備切換時,速度非常快。再加上我們化整為零的策略,全部熱插播硬盤,使得數據的安全性得到了很大的滿足。一直到現在,都沒有出現過任何問題。坦白說,在基礎平臺安全方面,阿裏雲已經比較成熟了,尤其是在應對高流量、大數據量沖擊的時候,要比很多中小基金自己的系統穩定和安全很多。”

據悉,每一次系統遷移的演練是需要36個小時,反復演練多次,確保萬無一失,才在9月份正式做了切換。

下一步,大數據挖掘與分析

從IOE向雲中遷移,余額寶的項目團隊作出了非凡的努力。

樊振華說:“天弘投入了10個人,金證投入20多人,阿裏雲(主要是專業金融集群)投入了50多人,支付寶投入了數十人,就這樣,組建了我們的百人技術團隊。項目組從7月閉關到9月底,每天從早上8點開始一直到晚上12點,根本沒有周六周日,很辛苦,非常辛苦。而由於項目開發中出現了很多問題,非常多的問題,爭吵、低落、抱怨都是常態,甚至一度整個團隊都覺得項目失敗的概率很高,幾乎處於崩潰邊緣。但好在幾位項目帶頭人非常有信心,知道最高的風險點在哪裏,我們和金證、阿裏雲從架構設計到技術遷移、業務實現,一點點來摳,一點點地解決問題。四方合作,忘我的奉獻和投入讓我們終於拿下這個如今成為行業典範的項目。現在余額寶的系統架設在300余臺雲主機上,使用了阿裏雲的ECS+RDS+SLB+雲監控等多項服務。 ”

“真正去了IOE,發現沒有想象中復雜。”幾乎是每位組員的感受

一直很低調的余額寶,在技術上更加低調,老老實實做事。據悉,二期整個團隊都是封閉的,“我們做什麽外面基本都不知道”。在切身體驗了互聯網金融“用戶多,數據量大;分時段爆發增長;用戶體驗要求很高”的特性之後,下一步,天弘希望能夠聯合更多夥伴,建設數據中心、數據倉庫,並繼續完善安全監控,爭取在數據挖掘和分析方面,提供更多“非高大上”的產品以及創新的服務。

從Oracle到MySQL,余額寶雲實踐分享