2019雙11,支付寶有哪些“秘密武器”?
經濟日報-中國經濟網北京11月20日訊 2019雙11,支付寶參戰的第十一年。與十一年前相比,雙11的許多東西都改變了。比如金額——2684億,差不多是十一年前的5000倍;比如流量——訂單峰值54.4萬筆/秒,曾經是想都不敢想的數字;再比如層出不窮的新技術,就是這些驚人數字背后的“秘密武器”,給迎戰雙11的戰士們作最完備的武裝。
也有始終不變的東西。大戰來臨前的緊張、不安、如履薄冰,對每一個細節反復check的“強迫癥”,以及勝利之后的欣喜、釋然、滿心充實,和下一步砥礪前行。
支付寶的技術工作,就是“半年搞建設,半年搞大促”。雖然是一句戲言,但足夠從側面證明大促作為實踐戰場的重要性。而每當雙11圓滿落下帷幕,技術人也就到了收獲的季節。那些歷經雙11大考的新技術,就像經歷過了“成人式”一樣,一一走到臺前開始獨當一面。
螞蟻金服副CTO胡喜
SOFAMesh:金融級云原生第一步
眾所周知,金融機構因為肩負的責任重大,面對新技術時,普遍都是比較保守的。支付寶也不例外,尤其是在雙11這種場景下,流量大,峰值高,平時不管多小的問題,在這時候都可能被放大成不得了的大問題。
于是,今年的大促迫在眉睫時,SOFAMesh團隊還在糾結。來自周圍的各種聲音,讓他們感到壓力很大。被問到的最多的問題,就是“這個靠不靠譜?”
一個“行”字,在雙11的面前,可能有千鈞之重。能不能扛過零點的流量峰值?能不能保障穩定?能不能保證不出差錯?
Mesh是一項很新的技術,社區開源項目本就不成熟,而SOFAMesh是支付寶從第一行代碼開始完全自主開發的項目,在金融級的嚴苛要求面前,在雙11的極端場景之下,究竟行不行?誰心里都沒有底。
然而此時不上,整整兩年的心血就白費了。反過來說,如果能打贏這一仗,就證明云原生之路在雙11這種體量的考驗之下都是可行的,這對于整個行業而言,會是一個很好的標桿。
“螞蟻金服要做金融行業技術的拓荒者和實踐者。”資深技術專家楊海悌說。
這已不是螞蟻金服第一次做“吃螃蟹的人”,在金融機構普遍依賴IOE時,他們率先開始探索分布式,現在分布式漸漸成為主流,他們又率先琢磨起云原生。
“以前都是業務推動技術,現在到了技術為業務提供紅利的時候了。”對于自己看著長大的SOFAMesh,楊海悌一面很有信心,一面也十分忐忑。
SOFAMesh是支付寶針對金融行業的特殊需求而開發的金融級中間件,屬于金融級云原生分布式框架SOFAStack的一部分,這個框架的開發始于2009年,幾乎和雙11同齡。
是騾子是馬,總得遛過了才知道。SOFAMesh的第一份答卷很快交了出來——以往分時復用的資源切換需要4小時,用上了SOFAMesh之后,不到4分鐘。性能提升將近百倍。
分時復用,顧名思義,就是在不同的時間段里讓同一個資源能夠“復用”于多個應用。這一技術能夠減少資源閑置,提高資源的利用效率。這一技術在2018年雙11就曾立過功——當時,支付寶面對這天貓雙11和自己的會員大促的“雙大促”挑戰,為了節約成本少采購一些資源,上線了分時調度1.0,使用同一批資源同時支持兩個大促,在支撐天貓雙 11 和經濟體用戶增長兩個大促的同時,IT成本一分錢也沒有漲。
但去年在彈性架構模式下做分時調度,切換資源需要重新配置和部署相關系統,4個小時的切換時間,雖然成功支持了“雙大促”,還是滿足不了對短時間內快速調用資源有需求的業務。
到了今年,由于SOFAMesh的上線,切換資源不再需要重新部署,切換時間縮短到了3分40秒。這意味著,像螞蟻森林那樣每天都會面臨流量小高峰的業務,無需事先留足資源余量,提前10分鐘開始切換資源,都綽綽有余。
“將來,切換時間還有望縮短到秒級。”楊海悌說。
2019年雙11,SOFAMesh扮演了非常重要角色——100%覆蓋螞蟻金服核心支付鏈路,幾十萬容器,峰值千萬QPS,平均RT(響應時間) 0.2ms,是業界最大的 Service Mesh 集群。它在洪峰面前的穩定性和平滑性,以及對效率的顯著提升,都是有目共睹的。
這張漂亮的成績單背后,其實就是一個字——行。
“云原生”已經成為業界公認的技術趨勢,它的目標是提升運維效率、降低資源使用成本、提升服務安全可靠性等。云原生帶來的基礎設施升級,為技術演進提供基礎能力支撐,并且提升未來架構空間的想象力。2019也是支付寶的金融級云原生落地元年,包括SOFAMesh在內的一系列云原生技術,經歷雙11的考驗之后,向整個業界證明——我們行,云原生這條路,也行。
雙11之后,螞蟻金服舉辦的發布會上,副CTO胡喜宣布,會將打磨十年之久的SoFAStack對外公開。
正如“元年”一詞所說,這只是螞蟻金服在新的開拓之路上邁出的第一步。
OceanBase 2.2:世界紀錄就是用來打破的
OceanBase被人質疑“行不行”的次數,更是多到數不過來。
數據庫是命脈,尤其是金融機構的數據庫,出一點問題都是真金白銀的問題,哪個業務都不敢冒風險,老老實實抱著老牌進口貨Oracle,圖個太平。
但Oracle也沒見過雙11這種陣仗,隨著雙11的流量連年翻番,它的性能眼見著碰到了天花板。2014年雙11前的壓測,Oracle出現了10%的流量缺口。
OceanBase感到機會來了。在那之前,他們已經“蟄伏”了四五年,沒有固定的業務,最落魄的時候,甚至面臨團隊解散和項目取消的境況。
當時的OcaenBase將滿5歲,版本號卻還是0.x,外表看來甚至還是個demo,一上來就要承接雙11的10%的流量,相當于支付寶平日流量的最高峰,而且要做的還是最核心的交易系統——一分錢都不能出錯的那種。
一時之間,“你們行不行”的質疑聲此起彼伏。
“別人說我們不行的時候,我們都非常堅定地認為,行。”螞蟻金服研究員楊傳輝說。他是OceanBase開發團隊的初期成員之一,親眼見過OceanBase寫下第一行代碼。
從拿下10%的任務,到雙11的正式大考,時間不足兩周。最后十來天,資深運維專家師文匯帶著全團隊幾乎不眠不休地做優化,硬是把長達10毫秒的響應時間降低到了1毫秒以下。
那一年的雙11,OceanBase沒出一個差錯,一戰成名。
今年的雙11,OceanBase的版本號是2.2。在為版本命名方面,他們的謹慎作風一如既往。
但是OceanBase的每一次版本迭代,發生的都是“脫胎換骨”的變化,自己創下的紀錄,也由自己不斷刷新——
2018年雙11,基于OceanBase 2.0分區方案的架構正式上線,這一架構解決了數據庫可擴展的瓶頸,將每秒交易的承載能力提升到百萬級,并讓性能提升了50%。
50%的提升不是個小數目,但更令人驚訝的是,僅僅一年之隔,在2019年的雙11中,全新上線的OceanBase 2.2版本,在2.0的基礎上,又讓性能提高了50%。
就在今年的10月3日,權威機構國際事務處理性能委員會TPC披露:螞蟻金服的分布式關系數據庫OceanBase,打破美國甲骨文公司保持了9年的世界紀錄,登頂TPC-C榜單,同時也成為首個登上該榜單的中國數據庫系統。
短短的一個月之后,在2019年雙11的考場之上,OceanBase2.2又再次刷新了數據庫處理峰值,達6100萬次/秒,創造了新的世界紀錄。
在金融級核心數據庫的嚴格要求之下,OceanBase為何還能有這樣跨越式的性能升級?
關鍵的秘密在于,OceanBase背后是原生的分布式數據庫設計以及PAXOS協議,通過水平擴展x86服務器就可以達到無限伸縮,支持大規模高并發的效果。
另一方面,今年為了進一步提升性能和降低延遲,OceanBase還通過中間件的優化,自動將多條SQL聚合成輕量級的存儲過程,這個過程讓原本需要數十次SQL網絡交互的任務降低為單次網絡交互,整體RT降低了20%。
現在,支付寶的業務已經100%跑在OceanBase上,作為我國第一個自研的金融級分布式數據庫,經過六年的雙11錘煉,它也已經具備了走出螞蟻金服、走向更廣闊天地的底氣。
今年雙11中,支付寶支付業務100%切換到OceanBase內置的Oracle兼容模式上,支持Oracle語法以及存儲過程優化的同時,又兼具OceanBase的分布式能力,如分布式分區表、全局事務等,響應時間也更加平穩。雙11之后,OceanBase2.2也將正式公開發布。
“不過,在別人覺得我們什么都行的時候,我們反而會冷靜下來,想想自己還有哪些不行的地方。”楊傳輝說,對技術上一切未知的敬畏,才能讓大家走得更遠。
圖智能:復雜金融關系的最優解
“過去很長一段時間圖數據庫和圖計算一直停留在學術研究階段,行業應用場景不多,是因為沒有強的場景驅動,所以市場沒有太多發展”, 螞蟻金服計算存儲首席架構師何昌華指出。但是反過來看,圖相關的產品近年來熱度不斷攀升,其核心原因是因為強場景的驅動,特別是金融場景,它非常善于處理大量的、復雜的、關聯的、多變的網狀數據,通過節點和關聯的數據模型去快速解決復雜的關系問題。
螞蟻的一站式圖平臺的誕生,也有著鮮明的螞蟻金服特色,同樣是“被業務倒逼出來的”。
螞蟻金服在2014年左右就開始跟進社區的圖計算的研究,當時的團隊在一些開源產品基礎上進行了小規模的嘗試,做了之后發現效果很好,圖數據庫能夠很好地和金融、社交業務結合起來。但是,螞蟻金服有著巨大的數據量,需要以分布式架構來支撐高并發的大數據量和大吞吐量,但當時無論是開源還是商業數據庫產品都只是單機版,都難以適應螞蟻金服如此大的數據量和復雜的環境。于是,艱難而又步步扎實的自研之路開始了。
最開始,要解決的是圖數據的存儲和在線查詢的問題。
從數據量來看,分布式架構是唯一的選擇。從滿足金融場景高并發低延時的需求來看,選擇原生圖結構而非基于關系型數據庫基礎上封裝圖數據,成為必然。但也因為以上兩點,導致整個開發難度大大增加。
從2015年初團隊開始組建,經過“冬練三九、夏練三伏”的苦修,以及在代碼、運維、穩定性等每一環節的極致追求,第一個圖數據庫版本GeaBase在2016年初發布。
而這時候,剛好遇到支付寶史上最大一次改版,模塊化功能被替換成信息流,大大強化了社交關系屬性,GeaBase開始接入支付寶鏈路。
百煉成鋼,經過幾個月的壓測,2016年6月,新版支付寶上線,GeaBase迎來了第一筆流量。接著幾年,從支付寶大改版到新春紅包再到雙11,GeaBase迎來了業務的綻放期,到2019年雙11,GeaBase雙11主鏈路上單集群規模突破萬億邊,點邊查詢突破800萬QPS,平均時延小于10ms;成為支付寶核心鏈路上非常重要的一環;
數據存儲和查詢的問題解決了,緊接著要解決的是分析計算的問題。
在一開始,我們思考的是如何在海量的圖數據里做數據挖掘的問題。在面對千億乃至萬億級規模,幾TB到幾百TB的數據,用超大內存物理機和高速網絡來實現離線全圖計算,對企業來說不太現實,資源也存在極大的浪費。因此,我們重點放在如何在滿足業務功能/性能需求的同時,利用碎片化的現有資源,實現 “按需計算”的能力。
因此,2017年,我們在海量數據基礎上,設計了一套離線計算的框架,提供自適應的分區策略,資源消耗能比同類產品降低一個數量級,同時性能還能遠遠優于GraphX等開源產品。
同時,為了方便業務算法人員根據其業務進行二次開發,還開放了C++和JAVA的接口,除了業界常見的圖編程框架的Pregel、GAS,我們還做了一定的“微創新”和能力擴展,提供了更高性能,更加豐富功能的接口。
全量分析計算的事情解決了,但隨著“310”策略的推進,風控業務的發展,對分析的時效性的要求越來越高,分析需要更快,更實時,2018年,我們開始考慮在線圖計算的能力。
有時候,并不是所有業務都需要進行復雜的圖分析,而是在滿足一定的條件后才開始進行子圖的迭代計算。最后,基于圖的迭代計算的結果,在進行數據鏈路的處理后再提供給在線使用。
因此,一個場景在完整的計算鏈路中,需要流計算和圖計算兩種模態的融合計算。我們打破了傳統計算模態的邊界,提供流圖融合的計算系統。通過將數據流和控制流相結合,并提供動態DAG的能力,從而實現按需計算,彈性擴縮容。
用戶可以通過一套統一的DSL(SQL+Gremlin/GQL)、一套計算系統來實現完成流圖融合的鏈路,實現基于數據驅動的在線圖計算能力,同時,減少了用戶的學習、運維成本。
在2019年雙11上,在線圖計算技術大放異彩,通過秒級決策,在花唄等場景幫助業務效果提升12倍。
從“海量”圖存儲,到離線全圖 “按需計算”,再到“實時”在線圖計算,螞蟻的圖智能技術跟隨業務一步步發展,壯大。
融合計算引擎:新計算威力初現
今年的雙11還落地應用了一套新的“神器”——融合計算引擎,它耗費了近百位工程師一整年的心血。
融合計算引擎的基礎,是螞蟻金服聯合 UC Berkeley 大學推進的新一代計算引擎Ray,它很年輕,2018年融合計算引擎項目啟動時,它只有幾萬行代碼,距離金融級線上環境的應用還差得很遠。
“我們用了一整年,把它增加到了幾十萬行代碼,并且涵蓋了C++、java、Python等所有語言。”螞蟻金服資深技術專家周家英說。
至少4個團隊在共同“養育”這個引擎,四個奶爸帶娃,磕磕絆絆,在所難免,難度遠遠大于一個團隊負責一個引擎。
但開發時的“難”,是為了應用時的“簡”。
在計算引擎執行層面,不同計算模式的數據是可以在引擎內共享的,很少借助第三方存儲,因此對外部存儲和網絡傳輸的開銷也都有極大的節省。
在應用方面,融合計算引擎不僅能夠解決金融場景中需要銜接多個不同計算模式的難題,還能支持各種不同時效性的業務,并在支付過程中提供秒級智能決策能力。
并且隨著融合引擎的落地,也改變著技術同學的研發習慣。我們希望通過融合計算引擎,達成研發態,運行態,運維態三位一體的統一:例如在動態圖計算場景,計算開發同學只需要編寫一個流+圖的計算作業,就可以實現秒級6度鄰居的圖迭代計算;同樣在機器學習領域,通過編寫一個包含流+模型訓練+服務的計算作業,就可以實現端到端秒級模型導出的在線學習能力。這樣從研發到運行態,計算整體效率都得到了極大提升。
2018年,融合計算就在花唄反套現的智能甄別之中表現卓越。到了2019年,融合計算引擎已經在支付寶不同場景中落地——圖計算在花唄,螞蟻森林等場景中大規模上線,圖數據庫Geabase突破萬億邊。
2019年支付寶新春紅包活動中,融合計算引擎用在線學習能力支持了新春紅包的智能文案,讓它的算法跑在了新的在線學習的體系上。這個體系融合了流計算和機器學習,讓機器學習的模型迭代速度從以前的小時級別,提升到了現在的秒級別。本次雙11時,它在“支日歷”的推薦算法方面發揮了重要作用。
通過融合流計算、服務和并發查詢,融合計算引擎減少了60%的機器資源使用,把端到端的延遲壓低到了毫秒級,同時還能支持金融網絡的業務查詢和監控。
今年雙11中,融合計算引擎在至少三個場景中成功落地并被驗證可行,“還跑在了螞蟻金融級關鍵決策鏈路上。”周家英不無興奮,“這證明了我們的計算引擎具備了金融級的能力。”
事實上,無論是在雙11這樣的極端大考場景中,還是在支付寶、阿里巴巴,以及各個互聯網科技公司的日常應用場景中,數據驅動的業務也越來越多。相應地,海量數據的實時處理、分析和應用,以及人工智能、深度學習等新技術的開發,都在要求著更強大的計算能力,以及能夠應對復雜場景的多種計算模式。
面對未來,更多的是未知——我們尚且不知未來會出現什么樣的場景,這些場景會要求什么樣的計算模式和計算能力。“融合計算是真正意義上的新計算的第一步。”螞蟻金服計算存儲首席架構師何昌華說。
- 標簽:
- 編輯:李娜
- 相關文章