您好,登錄后才能下訂單哦!
017年支付寶五福紅包紅包開獎人數是167966715人(約1.68億);除夕當天的參與人數是2.2億;在業務峰值上,活頁主頁面峰值達到81W/s;掃福的峰值為22W/s;除夕當天的登錄峰值為29W/s;除夕開獎峰值是90W/s。在本文中,螞蟻金服技術專家天鏡飛深入技術背后,為大家講解了整體活動的穩定性保障、資損防控、運維部署、投產保障、監控管理、安全防護等方面的實戰經驗。
今年支付寶新春紅包主要采用了AR紅包和五福紅包兩種模式。AR紅包是創新業務的體現,主要分為藏、找、開三個步驟。其中藏是在當前位置掃描指定的物體,輸入金額、人數,支付完成之后,該紅包就出現在地圖上;用戶可以在地圖上發現該紅包或者是通過掃描指定的物體找到該紅包,找到紅包之后用戶可以使用線索圖打開紅包。AR紅包另一個玩法是商戶紅包,主要用于商戶的推廣,商戶可以把自己的Logo藏在所有門店的地理位置上,通過引導用戶去指定的門店掃Logo、開紅包,進而起到商戶宣傳的作用。
五福紅包也就是所謂的敬業福,今年的玩法和去年的類似:搜集福卡、交換福卡,集齊五福之后等待開獎;二者區別在于在收集福卡上,今年的形式更加多樣化:掃福字,螞蟻森林澆水以及鉆石會員可以得到萬能福;同時金額分配采用隨機的方式,做到人人有份。
上圖顯示的是今年支付寶紅包業務核心指標:五福紅包開獎人數是1.68億;除夕當天的參與人數是2.2億;在業務峰值上,活動主頁面峰值達到81w/s;掃福的峰值為22w/s;除夕當天的登錄峰值為29w/s;除夕開獎峰值是90w/s。
那么支付寶是如何支持如此高并發的業務和如此龐大的人群呢?背后的支撐的技術體系是怎么樣的呢?下面來一探究竟。
支撐支付寶紅包產品實現的技術架構可以總結為六個要素:其中穩定性保障、資損防控是核心;運維部署、投產保障是基石;監控管理、安全防護是重要組成部分。這六大要素支撐產品實現技術架構整體的運行以及最后完美地結束。
支付寶紅包產品實現的技術架構如上圖所示。基于業務可變性和用戶體驗的要求,在終端上主要采用H5和Native的實現方式:其中H5主要用于螞蟻森林、福卡任務、福卡排行榜等易變的業務;福卡主頁、AR地圖、AR掃一掃、AR引擎、AR開紅包等業務是采用本地Native的方式,因為其用戶體驗非常好。當然,整體客戶端架構都是基于支付寶客戶端&H5容器的通用能力,如框架、通訊、網絡、登錄、安全等。
在服務器端,福卡業務平臺和AR業務平臺都是基于支付寶現有的資金能力,其中福卡業務平臺是基于現有的營銷發獎資金處理能力,在處理過程中,使用了推薦、憑證中心、螞蟻森林中的產品能力,福卡業務中最為關鍵的是配置后臺(這是因為它是配置型的產品),所以我們搭建了新春配置后臺和營銷配置后臺;AR業務平臺是基于個人紅包和商戶紅包現有的資金能力,其中圖像識別服務和地理位置服務是該業務中最為重要的兩點。總結來看,服務器端依賴于支付寶新金融引擎的共享能力,如監控、社交、會員、賬務、支付、安全、SYNC、中間件等。
在存儲方面,除了采用通用的MySQL存儲,還大量引入了關系型數據庫Geabase,對于分布式緩存采用了tair,圖片存儲使用的是OSS。
下面來逐一講解支撐產品實現的六個要素。
運維部署
運維部署要解決的問題是資源缺口。正常情況下,華東1和華南機房的機器數量是無法滿足新春活動資源的需求,因此需要周轉騰挪。在解決資源缺口的過程中,利用了彈性資源來節省成本,將關鍵鏈路“彈”到云上;活動結束之后再將這些流量從云上遷回線下機房中。正常情況下,華東1機房和華南機房分別承擔40%和60%的流量,并且它們都是非云的機器;在新春紅包業務上,支付寶將60%的流量切到華東2機房中,并且將其上云,借助了阿里云強大的服務器能力,此外,在華南機房會部署15%的云機器,也就是說,新春紅包業務中,75%的機器是在云上運行的,在活動結束后,流量會切出,將機器空閑出來極大的節省了成本。
投產保障
投產保障是技術架構的另外一塊基石。今年業務上線過程中,代碼開發、產品上線只占了全部精力的20%;其中75%的精力用于演練和壓測。針對演練和壓測,支付寶設計了三套環境,分別是壓測環境、演練環境和正式環境。終端、服務器端和存儲都支持這三套環境來回切換,三套環境是基于白名單的隔離控制機制,以防止三套環境相互串擾帶來線上穩定性的風險。
在演練中優化產品流程,在壓測中打磨代碼性能。今年產品上線時的業務流程和最終正式環境下的產品業務流程變化非常大,并且代碼的層次也發生了很大的變化,利用這三套環境,通過壓測來調優代碼,通過線上的演練,不斷地完善代碼、產品,最終達到基本穩定線上產品狀態。這里值得一提的是灰度拉練,在開獎環節,今年設計了灰度開獎的功能,也就是提前一天,某些用戶可以提前開獎,在提前開獎過程中修復了一個嚴重的配置問題,避免了正式上線時產生故障,因此灰度拉練可以說是投產保障中最關鍵的一環。
監控管理
監控管理和安全防護是兩個重要的組成部分。
監控是產品的“眼睛”,它為技術和產品人員提供了發現線上問題、做出業務決策的依據。今年,依照不同的監控場景和需求,支付寶共部署了四套監控模式:第一套監控模式是利用Xflush分析系統的穩定性日志,最終產出系統監控、業務鏈路大盤、SLA限流大盤,這部分主要是為各技術負責人提供線上運行狀態的監控;第二套監控模式是利用Kepler實時計算平臺,對業務日志進行分析,產生一些業務指標,最后產出電視大屏、移動直播間、營銷大盤,對外輸出有絢麗效果的展示;第三套監控模式是利用海納實時計算平臺,對客戶端日志進行分析,產生資源下載大盤、性能穩定性大盤、基礎網絡大盤,可以對客戶端的運行狀態進行有效的監控和預警;最后一套監控模式是針對客服的安保日志分析,產生安保大屏,對用戶投訴情況進行監控。
安全防護
只有在產品設計之初就考慮安全防護,才能做到產品運營時的防患于未然。今年,支付寶在AR紅包和五福紅包上采用了三道安全防護策略。前兩道防護主要是針對AR紅包的線索圖和LBS,其中第一道防護是針對AR紅包的線索圖,通過線索圖遮擋算法,在線索可識別和線索不泄露之間尋求平衡;第二道安全防護是針對LBS篡改的監測,采用的策略是終端采集用戶LBS、位移等數據,然后報送給服務器端,服務器端在用戶領取AR紅包時分析LBS、位移等數據是否出現漂移等現象,對異常的情況進行領取攔截;第三道防護是基于大數據的安全策略防護,支付寶安全團隊對用戶的數據進行大數據分析,基于大數據分析會產生相應的安全策略,這些安全策略會在產品的關鍵流程上進行防護,主要是得福卡、交換福卡、福卡開獎、領AR紅包和發AR紅包,針對不同的環節,采用不同的安全防護手段,保障用戶操作的有效性。
穩定性保障
在穩定性保障中,第一個較為突出的點是將圖片識別散于終端,這是由于圖片識別算法是非常耗性能的。圖片識別時面臨著兩個選擇:一是在各終端上完成圖片識別,直接和用戶交流,具有較好的體驗,此外還緩解了服務器端的壓力,并且由于圖片不用上傳到服務器端,可節省了流量的開銷,但是它面臨的最大問題是不安全,因為在終端進行圖片識別,用戶可以篡改圖片識別結果,從而欺騙服務器端,具有較高的風險;另一個選擇是在服務器端進行圖片識別,也就是圖片上傳到服務器端,通過服務器端的算法進行識別,保證了識別結果的安全性,它的缺點是用戶體驗差、服務器資源損耗高、消耗用戶大量的流量。
因此,需要在這兩種方式中尋求平衡,支付寶采用的策略是針對不同的圖片識別場景采用不同的圖片識別方式,如地圖上領取紅包,采用的是客戶端嚴格匹配,服務端按策略再次校驗的方式,以安全為上;掃一掃領取紅包場景,采用服務端Top n匹配,領取時服務端驗簽的方式,也是為了安全考慮。這兩種場景的實際峰值并不高,將其放在服務器端是在可接受范圍內;另外三個場景,包括可口可樂紅包(出紅包\福卡)、口碑活動(出紅包)、任意福活動(出福卡)主要是識別福字和商戶Logo,其中不牽扯隱私問題,因此對于商戶Logo采用的是純客戶端匹配,服務器端不再識別,避免了服務器的資源損耗;對于任意福活動,是采用客戶端嚴格匹配福字,當客戶端識別不出福字時,再由服務器端進行識別,這種方式可以節省服務器端70%以上的資源損耗。
在穩定性保障中,針對掃一掃環節實現了關鍵鏈路多檔位切換。掃一掃環節的關鍵點主要包括終端福字識別、附近可領取紅包線索匹配、服務端福字識別和福卡領取。支付寶針對掃一掃環節設計了三個檔位:檔位一,完全模式,即識別福字又識別紅包,該模式可承受峰值為12W/s,在該模式下可以通過調整附近匹配紅包個數調整系統性能;檔位二是將紅包Top n匹配環節去掉,服務器端只保留福字識別和福卡領取這兩項功能,該檔位可承受峰值為50W/s,該模式下可以通過調整服務端福字識別算法復雜度對系統性能進行調整;檔位三是在服務器端僅保留福卡領取功能,該檔位預計可承受峰值為60W/s,節省圖片下載等資源損耗。
在實際使用過程中,檔位二已滿足要求,但多檔的思想為穩定性保障提供了很好的支撐。
穩定性保障方面細節特別多,每個細節又非常重要。除了上述兩點外,支付寶還在全局上考慮了一些風險點的梳理、規避以及制定了活動前、活動中、活動后的操作手冊,制定了相應的應急處理機制,并對關鍵業務流程進行多次模擬演練。
在終端上采用了限流無感知、資源預下載、用戶操作數據緩存、開獎時間離散、數據項與開關動態配置等穩定性操作;在服務端,進行了全鏈路梳理、全鏈路壓測、限流保護、應急熔斷機制等。
資損防控
資損防控是今年紅包活動中的另一個核心點,這是因為AR紅包和五福紅包涉及的金額巨大;另外由于今年的獎池分配策略采用隨機分配的方式,進一步增加了困難:
針對計算困難,引入多檔位類隨機機制,設計多個開獎檔位,使得看起來像隨機的結果,而不是純隨機的方式;另外采用提前算獎的方式,在用戶五福合一時提前計算出部分用戶的獎金,實際開獎時只是查看原來計算好的金額。基于這兩種策略,支付寶設計了今年資損防控的新模型,該模型包括算獎、抽獎、發獎三個環節,通過監控、預警、核對機制來保證這三個環節的正確性;其中算獎環節設計了可重復算獎,當發現異常時,可重新計算獎金,抽獎環節支持快速訂正,發獎環節支持快速調賬。
核對機制是資損防控中最為關鍵的環節,今年采用的是基于實時計算平臺的核對機制。該核對機制主要包括兩種核對策略:一是實時核對,對關鍵的資金流變動、資金鏈的切換采用實時核對;另一種是異步核對,也就是所謂的15分鐘核對、小時核對和T+1核對,對于所有和資金相關的環節都采用異步核對以保證最終的一致性。
實時核對采用了三種基本策略:第一種策略采用了乾坤鏡技術,對接口的入參出參實時地檢查;第二種策略采用定時調度任務,盡量保證準實時性,將數據庫中的相關數據撈出來進行核對;第三種策略是將核對的代碼片段糅雜在業務代碼中,通過這種方式保證實時核對的一致性。異步核對,包括15分鐘核對、小時核對、T+1核對,采用的技術架構主要是DRC(異地多活數據同步)與TT結合的方式,將DB的數據和日志的數據按15分鐘、小時、日匯總存儲到ODPS上,再通過相應的核對機制來保證整體的一致性。
在算獎—抽獎、抽獎—發獎的過程中,下一個環節開始前,必須通過核對的策略保證上一個環節的準確性,包括總金額和明細;這樣一來,可以平穩地過渡到下一個階段而不必擔心上一階段出現問題。
支付寶新春紅包產品以運維部署和投產保障為基石,以穩定性保障和資損防控為核心,輔以監控管理和安全防護這兩個重要組成部分,完美地解決了五福紅包和AR紅包的高并發業務和龐大的人員參與兩大難題,實現了81w/s的活動主頁面峰值、22w/s的掃福的峰值、29w/s的除夕當天的登錄峰值以及90w/s的除夕開獎峰值等一系列指標。
原文來自:云棲社區;原文鏈接:https://yq.aliyun.com/articles/71053
點擊閱讀更多,查看更多詳情
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。