無(wú)例可循,雙十一倒逼出中國(guó)互聯(lián)網(wǎng)「三高架構(gòu)」
支付寶在沒(méi)有先例可循的情況下,自主研發(fā)構(gòu)建起一個(gè)互聯(lián)網(wǎng)三高(高并發(fā)、高性能、高可用)架構(gòu)的代表。
對(duì)大多數(shù)人而言,今年的雙十一可謂是無(wú)感而過(guò)。然而,這個(gè)「無(wú)感」正是今年支付寶技術(shù)團(tuán)隊(duì)的一個(gè)重要目標(biāo)。
隨著「雙十一」進(jìn)入第 14 個(gè)年頭,這一現(xiàn)象級(jí)的標(biāo)志性活動(dòng)在很大程度上已經(jīng)融入國(guó)人的日常生活,因而顯得不再那么特殊——打折促銷天天有,滿減秒殺是基操,消費(fèi)者已經(jīng)習(xí)慣了隨時(shí)隨地都能下單,同城快遞隔天就到。
但是,在這些看似尋常的體驗(yàn)背后,是整個(gè)零售電商和物流系統(tǒng)能力的規(guī)?;嵘?,而數(shù)字支付作為其中最關(guān)鍵的一環(huán),和往年一樣,也面臨著一系列新的復(fù)雜的技術(shù)優(yōu)化挑戰(zhàn)。
自誕生時(shí)起,「雙十一」便是一個(gè)極具挑戰(zhàn)和實(shí)際價(jià)值的技術(shù)命題。高質(zhì)高效地保障雙十一大促工作的進(jìn)行,涉及基礎(chǔ)設(shè)施、存儲(chǔ)、中間件、業(yè)務(wù)架構(gòu)、交互技術(shù)與安全等多個(gè)技術(shù)領(lǐng)域,需要多部門緊密配合,能夠集中體現(xiàn)一個(gè)團(tuán)隊(duì)的資源統(tǒng)籌、技術(shù)積累、工程實(shí)力和創(chuàng)新能力。
2022 年雙十一期間,在多類日常業(yè)務(wù)以外,支付寶要為淘寶/天貓、抖音、快手、拼多多等客戶提供線上交易服務(wù)(包括海外支付),支持合作的****、購(gòu)物中心等機(jī)構(gòu)的線上線下支付業(yè)務(wù),這些交易請(qǐng)求來(lái)自 POS 機(jī)、網(wǎng)銀、瀏覽器、小程序、各商戶 App 等不同平臺(tái),覆蓋了直播秒殺、跨店滿減、小額免密、先享后付等多個(gè)支付場(chǎng)景,較長(zhǎng)的促銷周期和多商戶線上線下疊加不僅意味著多個(gè)流量洪峰,也進(jìn)一步提升了峰值的不確定性。
面對(duì)今年「多平臺(tái)、多場(chǎng)景、多峰值」的壓力,如何保障系統(tǒng)穩(wěn)定,如何在控制成本的同時(shí)確保系統(tǒng)容量可伸縮?本文將從超大規(guī)模分布式系統(tǒng)穩(wěn)定性和高可用建設(shè)角度出發(fā),嘗試?yán)斫庵Ц秾毤夹g(shù)架構(gòu)演進(jìn)中的一些關(guān)鍵技術(shù)和思路。
由點(diǎn)到面,應(yīng)對(duì)多平臺(tái)、多場(chǎng)景、多峰值
為了應(yīng)對(duì)新形勢(shì)下的雙十一,今年 3 月份開(kāi)始,支付寶團(tuán)隊(duì)啟動(dòng)了「川流計(jì)劃」,取川流不息之意,喻支付體驗(yàn)順暢,將沉淀了多年的電商服務(wù)能力原子化,形成了一套面向全行業(yè)的產(chǎn)品解決方案,目標(biāo)是隨時(shí)隨地、快速支撐任何一家商戶的大促。
技術(shù)團(tuán)隊(duì)重點(diǎn)聚焦大促服務(wù)的常態(tài)化能力構(gòu)建,以業(yè)務(wù)和需求為導(dǎo)向,確保做到穩(wěn)定如常、體驗(yàn)如常、成本如常、效率如常。
今年以淘寶/天貓為首的各商家將大促時(shí)間提前到了 11 號(hào)的晚 8 點(diǎn),與線下購(gòu)物的高峰期重合,再加上其他常規(guī)業(yè)務(wù),需要確保不同業(yè)務(wù)之間有充分的隔離性,能夠同時(shí)達(dá)到穩(wěn)定的狀態(tài)。支付寶團(tuán)隊(duì)通過(guò)自適應(yīng)泄洪、多商戶動(dòng)態(tài)異步化技術(shù),在更加隨機(jī)化的大促場(chǎng)景下持續(xù)保持支付的可用性及高性能,同時(shí)通過(guò)分時(shí)復(fù)用,在線離線混合部署,無(wú)感化彈云等技術(shù),大幅提升效率和降低成本。
盡管用戶側(cè)感知不強(qiáng),往年雙十一為保證峰值平穩(wěn)會(huì)做部分不緊急任務(wù)降級(jí)、暫緩處理,例如無(wú)法查詢花唄賬單等,今年通過(guò)讀時(shí)提交等新的技術(shù),保障退款、提現(xiàn)等業(yè)務(wù)服務(wù)不受損,交易收單功能也做了升級(jí),讓消費(fèi)者在訂金、現(xiàn)貨、尾款等各階段都具備相同的支付能力。
其中,為了滿足如今商家在直播時(shí)代的秒殺訴求,團(tuán)隊(duì)重點(diǎn)構(gòu)建了秒級(jí)高可用技術(shù),動(dòng)態(tài)維持秒殺性能,將支持秒殺的能力提升了一個(gè)量級(jí),包括通過(guò)近端計(jì)數(shù)和異常感知,自動(dòng)降級(jí)弱依賴業(yè)務(wù),進(jìn)一步提高并發(fā),構(gòu)建無(wú)感化彈云等創(chuàng)新技術(shù),實(shí)現(xiàn)更快的容量伸縮,從而確保每個(gè)商家都能在自己的平臺(tái)發(fā)起秒殺活動(dòng)。
雙十一流量洪峰和隨之而來(lái)的峰值時(shí)刻高并發(fā)的處理效果,向來(lái)是雙十一技術(shù)保障工作的一大看點(diǎn)。但不同于過(guò)往雙十一的流量洪峰,秒殺服務(wù)本質(zhì)上是一種營(yíng)銷服務(wù),如果把這個(gè)秒級(jí)交易分?jǐn)偟饺粘?,?duì)服務(wù)器成本的要求其實(shí)并不高。但隨著直播秒殺成為一種常規(guī)化的營(yíng)銷手段,為了滿足眾多商家在較長(zhǎng)的促銷周期內(nèi)隨機(jī)性發(fā)起的千千萬(wàn)萬(wàn)的秒級(jí)峰值,需要有大量的機(jī)器成本的投入。
「這也是今年我們的底氣,能夠保障那么多商家在雙十一期間的秒殺?!怪Ц秾毊a(chǎn)品技術(shù)負(fù)責(zé)人善攻說(shuō),「從 0 點(diǎn)到 8 點(diǎn),用戶不用再熬夜了,對(duì)支付寶來(lái)說(shuō),面臨的情況就是各個(gè)平臺(tái)不同模式和玩法的峰值疊加,再碰到線下支付的高峰。我們并沒(méi)有把成本轉(zhuǎn)嫁到客戶身上,而是通過(guò)技術(shù)迭代、資源協(xié)調(diào)等來(lái)實(shí)現(xiàn)更智能、更綠色、更高效的服務(wù)。我們也認(rèn)為,只有具備普適性才可以對(duì)全社會(huì)提供可持續(xù)的服務(wù)。」
支付寶高并發(fā)、高性能、高可用架構(gòu)演進(jìn)
這些年來(lái),隨著業(yè)務(wù)特點(diǎn)和規(guī)模的發(fā)展變化,尤其在歷屆雙十一的極端需求倒逼之下,例如從應(yīng)對(duì) 0 點(diǎn)的單一流量洪峰到滿足多平臺(tái)支付需求和效率,支付寶完成了數(shù)次大的架構(gòu)演進(jìn),逐漸形成了一套包括金融級(jí)分布式交易、分布式大數(shù)據(jù)分析與決策、智能化風(fēng)險(xiǎn)防控等在內(nèi)的完整架構(gòu)與技術(shù)體系。
第一階段:轉(zhuǎn)型分布式 SOA 架構(gòu),成為互聯(lián)網(wǎng)電商支付工具
支付寶最初服務(wù)于淘寶網(wǎng),用擔(dān)保交易和支付這一項(xiàng)功能打開(kāi)了用戶網(wǎng)購(gòu)的習(xí)慣,從 2005 年起開(kāi)始服務(wù)整個(gè)互聯(lián)網(wǎng)的電商支付。在這個(gè)階段,其應(yīng)用架構(gòu)開(kāi)始向分布式 SOA 架構(gòu)轉(zhuǎn)型,對(duì)交易、支付、賬務(wù)、收銀臺(tái)等核心系統(tǒng)做服務(wù)化改造。
為解決引入分布式體系而帶來(lái)的業(yè)務(wù)和系統(tǒng)復(fù)雜性等問(wèn)題,團(tuán)隊(duì)重點(diǎn)聚焦實(shí)現(xiàn)集群的一致性,主要包括確保分布式數(shù)據(jù)一致性和在分布式環(huán)境下進(jìn)行系統(tǒng)監(jiān)控的問(wèn)題。對(duì)此,支付寶基于兩階段事務(wù)原理自研了相應(yīng)的分布式事務(wù)框架和微服務(wù)框架,同時(shí)構(gòu)建了第一代監(jiān)控系統(tǒng),擺脫了黑屏命令行監(jiān)控,從穩(wěn)定的分布式事務(wù)體系應(yīng)用架構(gòu)和系統(tǒng)化的監(jiān)控報(bào)警平臺(tái),奠定了后續(xù)高可用架構(gòu)的基礎(chǔ)。
第二階段:去 IOE,解決存儲(chǔ)單點(diǎn)擴(kuò)展和穩(wěn)定性問(wèn)題,流量從百萬(wàn)到千萬(wàn)
隨著支付寶從單一支付工具逐漸成為一個(gè)互聯(lián)網(wǎng)金融平臺(tái),系統(tǒng)支撐的流量激增,使用大量服務(wù)器支撐雙十一流量洪峰構(gòu)成了巨大的成本壓力,以及其他很多不確定性因素。2011 年開(kāi)啟去 IOE 戰(zhàn)略(不再使用 IBM 小型機(jī)、Oracle 數(shù)據(jù)庫(kù)、EMC 高端存儲(chǔ),轉(zhuǎn)向自主掌控的技術(shù))。在此背景下,團(tuán)隊(duì)從應(yīng)對(duì)大流量帶來(lái)的高并發(fā)和穩(wěn)定性風(fēng)險(xiǎn)角度出發(fā),解決核心系統(tǒng)級(jí)別的穩(wěn)定性和可擴(kuò)展性問(wèn)題,奠定了這一代高可用架構(gòu)的基石。
第三階段:異地多活架構(gòu),流量彈性伸縮
金融級(jí)產(chǎn)品對(duì)穩(wěn)定性有極高的要求,需要加速實(shí)現(xiàn)金融級(jí)異地多活的高可用架構(gòu)。作為螞蟻代表性技術(shù)的邏輯單元 LDC(Logical Data Center)在這一階段被提出,相對(duì)于傳統(tǒng)的 IDC(Internet Data Center-IDC),確保分布式系統(tǒng)在邏輯上的協(xié)調(diào)與統(tǒng)一。與 OceanBase 數(shù)據(jù)庫(kù)相結(jié)合,支付寶團(tuán)隊(duì)實(shí)現(xiàn)了兩地三中心和三地五中心的城市級(jí)異地多活高可用架構(gòu),主要解決機(jī)房擴(kuò)展性、數(shù)據(jù)容災(zāi),以及大促期間機(jī)房快速?gòu)椥詥?wèn)題。
也是從這一時(shí)期開(kāi)始,雙十一的峰值和日常業(yè)務(wù)峰值差別越來(lái)越大,因此基于 LDC 架構(gòu)靈活的流量調(diào)度能力,實(shí)現(xiàn)了機(jī)房級(jí)別彈性擴(kuò)展能力,在大促前將流量彈回到新的機(jī)房,在大促結(jié)束后快速回收該機(jī)房。2016 年的雙十一,支付寶全天完成交易筆數(shù)為 10.5 億筆,支付峰值 12 萬(wàn)筆/秒,大促中 50% 流量基于云計(jì)算資源彈性伸縮。
第四階段:原生混合云部署,提供全球性的互聯(lián)網(wǎng)金融服務(wù)
隨著螞蟻集團(tuán)對(duì)云原生理念的投入,堅(jiān)信未來(lái)的金融級(jí)應(yīng)用場(chǎng)景都會(huì)往極致的彈性和混合云方向發(fā)展,2017 年開(kāi)始云原生架構(gòu)啟動(dòng)實(shí)施,螞蟻全站應(yīng)用上云,支付寶開(kāi)始嘗試離在線混部和分時(shí)調(diào)度技術(shù),在大促時(shí)利用離線技術(shù)所使用的集群資源,大大提升了集群資源利用率。
向云原生轉(zhuǎn)型的過(guò)程中,不同場(chǎng)景的應(yīng)用很難一步到位,為了滿足不同的業(yè)務(wù)需求,在云原生的改造中,新老業(yè)務(wù)并存過(guò)渡,通過(guò)統(tǒng)一的研發(fā)平臺(tái),同時(shí)支持基于虛擬機(jī)和容器的雙模持續(xù)交付,助力于整個(gè)架構(gòu)的穩(wěn)妥的演進(jìn)和遷移??紤]到商家服務(wù)全面開(kāi)放、大促活動(dòng)常態(tài)化,生活服務(wù)、保險(xiǎn)、理財(cái)、公益等各項(xiàng)業(yè)務(wù)的發(fā)展和形態(tài)趨于多樣化,支付寶團(tuán)隊(duì)意識(shí)到需要把高可用做成一項(xiàng)常規(guī)能力,并且從風(fēng)險(xiǎn)視角構(gòu)建一套架構(gòu)體系從根源上確保穩(wěn)定性。
針對(duì)外部環(huán)境的劇烈變化(如活動(dòng)帶來(lái)的流量突增、機(jī)房故障等)、內(nèi)部節(jié)點(diǎn)異常(如數(shù)據(jù)庫(kù)宕機(jī),服務(wù)器宕機(jī)等)和人為變更的風(fēng)險(xiǎn)(如代碼發(fā)布,配置推送等)這三類主要風(fēng)險(xiǎn),支付寶建設(shè)了如變更防控體系、容量風(fēng)險(xiǎn)體系、應(yīng)急定位體系等風(fēng)險(xiǎn)防控體系,實(shí)現(xiàn)系統(tǒng)化的三板斧(可監(jiān)控、可灰度、可回滾)要求,并引入數(shù)據(jù)智能化手段進(jìn)行精細(xì)的風(fēng)險(xiǎn)識(shí)別,構(gòu)建仿真環(huán)境以模擬故障及驗(yàn)證問(wèn)題。
從業(yè)務(wù)中來(lái),到業(yè)務(wù)中去從容應(yīng)對(duì)多峰高并發(fā)
從最初淘寶平臺(tái)上的一種擔(dān)保交易和支付功能,到如今提供支付、生活服務(wù)、政務(wù)服務(wù)、理財(cái)、保險(xiǎn)等眾多能力的數(shù)字生活開(kāi)放平臺(tái),支付寶在沒(méi)有先例可循的情況下,構(gòu)建起一個(gè)中國(guó)乃至世界范圍內(nèi)互聯(lián)網(wǎng)三高(高并發(fā)、高性能、高可用)架構(gòu)的代表。
2017 年,支付寶處理支付峰值 25.6 萬(wàn)筆/秒,已經(jīng)成為全球最大的一家 OLTP 處理實(shí)體,但同時(shí)卻繼承了互聯(lián)網(wǎng)公司特有的超大規(guī)模用戶量(截止 2020 年,支付寶在全球擁有超過(guò) 12 億用戶),支付寶的技術(shù)架構(gòu)發(fā)展歷程,也可以說(shuō)一個(gè)持續(xù)不斷地在性能與成本、業(yè)務(wù)需求與用戶體驗(yàn)之間取舍平衡的三高架構(gòu)演進(jìn)史。
脫離實(shí)際業(yè)務(wù)需求的技術(shù)往往于業(yè)務(wù)產(chǎn)生不了最大實(shí)用性價(jià)值,只有在服務(wù)業(yè)務(wù)、保障業(yè)務(wù)持續(xù)可用過(guò)程中沉淀下來(lái)的技術(shù),才是最有價(jià)值的技術(shù)。正是因?yàn)橐淮未坞p十一的倒逼創(chuàng)新,支付寶的實(shí)踐證明在金融級(jí)中間件、數(shù)據(jù)庫(kù)和云計(jì)算平臺(tái)的支持下,分布式架構(gòu)完全能夠勝任復(fù)雜、高要求的金融級(jí)交易。
在如今這個(gè)時(shí)代,一家公司要走得更遠(yuǎn),只有提供更好的服務(wù),滿足用戶更加苛刻的需求。構(gòu)建常態(tài)化的雙十一技術(shù)服務(wù)能力只是開(kāi)始,隨著業(yè)務(wù)發(fā)展和服務(wù)類型變得更加復(fù)雜多樣,多峰高并發(fā)將不僅僅是支付寶的日常。在萬(wàn)物互聯(lián)的智能時(shí)代,什么樣的技術(shù)和架構(gòu)可以應(yīng)對(duì)無(wú)處不在的計(jì)算,將不僅僅是支付寶團(tuán)隊(duì)需要解決的重大命題。
*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。