剛剛過去的雙十一全天交易額2684億,再創新高,支付寶自研分布式資料庫OceanBase每秒處理峰值達到6100萬次,再次展示世界級數字金融運算能力。
今年是支付寶參加雙十一的第十一年,也是一個新的起點,我們将支付寶曆年重要技術制作成一張大圖,但圖所包含的資訊畢竟有限,本文将這些技術分為三個階段,為你詳細解讀。

2009-2013:被大促拽着前進
2009年光棍節,第一次雙十一來的很突然,誰也沒有想到在網民自創的“節日”搞的促銷活動會成為中國最大的購物狂歡節,當天淘寶商城的成交額激增10倍。
支付寶第一年參加雙十一,第一代對賬系統完成大促全量資金核對,同時整體完成面向服務的架構SOA改造,雖然手忙腳亂,不過還是扛了下來。
在2008年以前,支付寶用的是阿裡的WebX架構,采用IOE商業系統+開源軟體的方式搭建背景,但這套架構是煙囪式架構,難以維護和擴充。2007年開始,支付寶自研SOFA架構,并于2008年1月上線。
SOFA分布式中間件早期架構
SOFA最開始的目标是對後端架構進行分布式服務化改造,而雙十一大促将這個程序大大加快,剛完成這項改造,團隊又馬不停蹄的投入下一項任務中。
2010年第二次雙十一,大家雖然有了準備,但實際的流量和成交額仍然遠超估計,據當年的參與者表示,雖然準備了比平時多3倍的容量,但最後的流量是平時的20倍,在最後關頭,運維人員将會計系統降級,避免核心系統崩潰。
在這一年裡,支付寶資料庫團隊完成資料庫的垂直拆分和水準擴充,将交易賬戶庫分為交易庫和賬戶庫,奠定了彈性擴容的基礎。但是,拆分帶來了資料一緻性問題,中間件團隊研發并上線了基于兩階段送出的分布式事務中間件XTS,解決了這個問題。XTS經過不斷完善,現在已經進化為阿裡巴巴和支付寶共建的Seata項目,并已經在GitHub上開源。
也正是在這一年,分布式關系資料庫OceanBase開始立項,開始了技術長跑。
2011年,支付寶運維監控系統xflush上線,實時秒級監控大促的峰值,業務健康度不再是黑盒,後來,更新為全功能監控平台AntMonitor。
2012年雙十一單日交易一億筆,在這背後,是支付寶緊急通過資料、網絡、機房的改造,将單日的支付能力從百萬級提升到了億級。
當時,支付寶系統伸縮的瓶頸在基礎設施和應用層面,首先是負責流量接入和調撥的負載均衡,支付寶自研了負載均衡中間件Spanner,2012年上線并成功支援大促,在不斷更新改造後,到今天也仍在支撐日漸高漲的巨大流量。
其次的瓶頸在交易系統和賬務系統,支付寶通過多IDC的改造,将交易系統和賬務系統進一步拆分,擴充了系統承載能力,并通過FailOver機制,避免單點故障。
多IDC架構
2013年,支付寶 All-In 無線,移動端首次在雙十一大促中承擔重要職責。
但實際上這一年最重要的變化是,支付寶開始實施單元化的LDC邏輯資料中心,并在此基礎上實作了交易支付系統的異地雙活,有效提升了核心系統的持續服務能力。
單元化改造示意圖
這裡的單元是指一個能完成所有業務操作的自包含集合,在這個集合中包含了所有業務所需的所有服務,以及配置設定給這個單元的資料。單元化架構就是把單元作為系統部署的基本機關,在全站所有機房中部署數個單元,每個機房裡的單元數目不定,任意一個單元都部署了系統所需的所有的應用,資料則是全量資料按照某種次元劃分後的一部分。
支付寶單元化改造并不是一蹴而就,過程十分艱辛,不過帶來的好處也非常多,包括理論上無限可伸縮微服務架構、異地多活部署、全站藍綠釋出和線上灰階仿真、異構機房上的彈性混合雲架構等。
從2009年到2013年的雙十一,支付峰值從數百筆增長到1.3萬筆每秒,每年的增長速度都是數倍甚至十幾倍的提升。為了支撐瘋漲的流量,這些年裡,支付寶技術的最重要目标是擴充系統的承載能力,可以說是被大促拽着前進。到2013年,LDC架構實作了理論上無限伸縮的能力,技術團隊終于可以稍作喘息,開始追求精細化,大促相關技術也開始走到新的階段。
2014-2018:從去IOE到大促技術标準化
2014年對于支付寶來說,是一個全新階段的開始:去IOE開始落地,大促神器全鍊路壓測正式啟用,最後大促中控平台上線,标志着支付寶雙十一大促相關技術走向标準化。
首先是去IOE,OceanBase在TPC-C資料庫基準測試取得第一名,這個螞蟻自研的分布式關系資料庫一下子為世人所知,這裡我們看一下這些年來它在幕後一路走過的裡程碑:
2014.11 OceanBase承擔支付寶交易10%流量;
2015.11 OceanBase承擔支付寶交易100%、支付50%流量;
2016.11 OceanBase承擔支付寶交易100%、支付100%、花呗賬務30%流量;
2017.11 OceanBase承擔支付寶交易100%、支付100%、賬務100%流量,“去O”大功告成!并第一次走出阿裡,應用到南京銀行網際網路核心系統;
2018.11 基于OceanBase2.0分區的百萬支付架構上線,正式相容Oracle;
2019.11 OceanBase取得TPC-C測試第一名,雙十一每秒處理峰值6100萬次;
……
在2014年時,支付寶決定将核心交易系統的10%流量放到OceanBase上,在今天看來是非常冒險的舉動,不過當時之是以這麼做,是因為之前所采用的Oracle資料庫已經無法支撐下一次大促了。OceanBase也經曆了非常多的優化,在2018年的雙十一中,OceanBase 2.0上線,并确立了以OceanBase 2.0分區為主的架構,徹底解決了資料庫層面的瓶頸,實作百萬支付架構。
OceanBase分區架構
2014年雙十一首次采用全鍊路壓測,這可以說是大促保障的核武器。全鍊路壓測解決了之前的大促規劃靠拍腦袋、成功看運氣的問題,通過模拟使用者在大促時的行為和流量,将涉及到的每個系統、每項技術都測試到位,大大減少了大促出事故的機率。
2016年,支付寶還在LDC邏輯資料中心的基礎上,在支付核心鍊路成功實作彈性架構,100%按照營運需求彈性擴充資源,極大節省了成本。彈性架構可以讓系統随流量自動化的伸縮,可以降低成本,提升運維效率。
從多IDC架構到彈性架構的演變
2017年,支付寶首次實作離線上混合部署,80%線上資源,20%離線資源。随着大資料和機器學習的落地,支付寶平時有一些離線計算叢集,通過調整工作時間,可以實作和大促高峰流量錯峰,再和彈性架構結合,就實作了分時排程,同一批資源在不同的時間運作不同的應用,最大程度提升資源使用率。
離線上混部示意圖
2018年雙十一,支付寶推出系列活動,“碼上雙十一”關聯手淘拉新促活使用者,相當于開啟了雙大促,如果按以前的做法,需要采購雙倍的伺服器,有了混部和分時排程之後,才得以在新增少量伺服器的情況下支撐,極大的節省了成本。
2017年其它的新技術還包括:
- 首次啟用智能客服系統,單日服務總量超過500萬人次。
- 智能風控AlphaRisk多模式切換落地,確定賬戶資損率低于千萬分之五,遙遙領先于全球平均水準。
- 首個在國内自主研發的圖資料庫GeaBase及自研圖查詢語言第一次參加雙十一,實作了對百億級關系網絡毫秒級的查詢和變更。
2018年雙十一的時候,關于大促保障的相關技術基本已經成熟,但都比較零散,如果想更好的利用這些技術,需要把它們整合到一起,大促中控平台也正是在這個背景下出現的,它标志着支付寶将之前的大促經驗沉澱,大促保障相關的技術實作标準化。
2018年雙十一的新技術還有:
- 首次在大促中進行紅藍攻防演練,在全鍊路壓測的基礎上進一步提升整個系統的可靠性。
- 大促巡檢平台上線,實作大促相關的配置的全面檢查,防止配置失誤。
- 區塊鍊技術第一次全面參戰,百餘個國家和地區、1.5億跨境上牌的原産地溯源不再是難題。
- 生物支付首次成為天貓雙十一主流支付方式,每10筆支付就有6筆采用生物支付,标志着中國的生物支付時代來臨。
2017年雙十一支付峰值25.6萬筆/秒,2018年支付寶内部實作可擴充的百萬支付架構,再加上大促中控平台上線,我們可以看到,支付寶大促相關的技術已經成熟,并在不斷打磨中追求可靠性、資源使用率、自動化、靈活性,把大促相關技術做到極緻。
2019+:面向未來的金融科技
從2018年起,支付寶開始嘗試和探索雲原生架構的落地,同時資料智能相關技術也在公司内廣泛使用。2019年,相關的技術開始亮相大促舞台,以支付寶自研産品SOFAMesh搭建的金融級雲原生基礎設施首次登上雙十一,打造了業界最大的Service Mesh叢集。
OceanBase 2.2上線大促核心支付鍊路,每秒處理峰值6100萬次,這是OceanBase資料庫同時相容MySQL以及Oracle兩種模式的一個裡程碑的版本,性能和穩定性上也相對2.0版本有大幅提升。
最重要的是,支付寶技術開始走向無人區,未來的道路隻能靠自己開拓,沒有别人可以參考。支付寶開始自己描述面向未來的金融技術架構,推出了金融級雲原生、開放計算架構等技術和理念,打造面向未來的金融科技。
金融級雲原生是指在CNCF所定義的雲原生基礎上,發展出适合金融機構使用的一套技術棧,其中包括全面對外開放的SOFAStack金融級雲原生分布式平台,以及通過安全容器、TEE、Service Mesh等建構的全棧雲原生安全架構。
SOFAStack不僅采用Kubernetes、容器等社群化的雲原生基礎技術,同時考慮金融行業的特殊性,支援之前的傳統架構,形成雙模技術,包括:
- 雙模PaaS:包括傳統PaaS和基于Kubernetes的PaaS,在PaaS中用容器來模拟 VM 的運作模式,同時支援容器和虛拟機;
- 雙模微服務:通過Mesh來統一基于Kubernetes的微服務和老的服務注冊中心式微服務;
- 雙模Serverless:同時支援基于雲原生的Nodejs Serverless模式、基于JVM的Serverless模式,以及基于雲原生的Java Serverless模式。
在開放計算架構方面,支付寶通過設計一套符合當下計算體系,同時又能應對未來計算趨勢的技術架構,來解決計算引擎更新、統一研發體系、資料共享互通、資料風險防控等幾方面問題。
首先在計算引擎方面,針對不同的計算作業狀态進行統一管理,達到相容任何一種計算引擎,并且實作插件化能力;在研發層面,推出了SmartSQL,在标準SQL規範之上擴充了部分功能及文法,希望用最簡單通用的語言,描述絕大部分的計算及機器學習作業;在存儲層面,支付寶自主研發了統一存儲系統,支援多種類型的資料存儲格式,同時支援一份資料不同格式之間的自動轉換及遷移,極大地簡化了引擎層對存儲的使用,同時節約了大量成本。
另外,開放計算架構之是以叫開放,就是它能包容不同的計算模式和引擎。在開放計算架構之中,包含了離/線上一體的圖計算引擎及存儲,從使用場景,可以覆寫線上、實時、離線各個場景,用于支援不同時效性的業務。從功能上,具備金融級圖資料庫,超大規模圖計算,流圖混合的動态圖計算以及超快記憶體圖等計算能力,覆寫了不同量級的資料計算能力。在機器學習方面,開放計算架構還包含了之前已經開源的SQLFlow以及前段推出的ElasticDL彈性深度學習架構。
這一整套體系将BigData和DataBase的理念揉合在一起,又稱為Big Data Base,是支付寶摸索出來的金融資料智能的最佳實踐,下一代大資料的基石。
2019年,開放計算架構在支付寶不同場景中落地。随着圖計算在花呗,螞蟻森林等場景中大規模上線,圖資料庫Geabase突破萬億邊,線上圖分析百億關系特征計算秒級響應。同時,通過融合計算引擎,協同流、圖、并行計算、機器學習等不同計算模式,在支付過程中提供秒級智能決策能力。
結語
網際網路技術的更新疊代永無止境。
對支付寶人來說,雖然已經經曆了這麼多的大促,但每一年的雙十一仍然是全新的挑戰。這個挑戰不僅來自于不斷推陳出新的業務和營運,也來自于技術人對自己的嚴格要求,就像那句話所說的,今天的最好表現,是明天的最低要求。
正是這樣的驅動力,驅使着支付寶的技術人不斷的超越自我,突破舒适區,尋找下一場技術革命。也許,這也正是雙十一的意義所在。
推薦閱讀
萬字長文丨1分36秒,100億,支付寶技術雙11答卷:沒有不可能
超燃!支付寶技術雙11紀錄片《一心一役》全球獨家首發