01.04 提高 10 倍性能,揭祕淘寶、天貓背後的圖片存儲如何扛住雙十一巨流?

2019天貓“雙11”,零點鐘聲剛過去1分36秒,成交額已突破100億元人民幣,最終成交額為2684億,又一次刷新了世界記錄。

對象存儲OSS作為淘寶、天貓、支付寶等核心阿里App背後的圖片存儲底座,又一次平穩的頂住了雙11凌晨洪峰,並且提供了10倍的圖片瀏覽性能優化,在本文中,來自阿里雲資深技術專家羅慶超將為大家揭秘OSS背後的穩定性設計。

提高 10 倍性能,揭秘淘宝、天猫背后的图片存储如何扛住双十一巨流?| 问底中国 IT 技术演进

作者 | 羅慶超,阿里雲資深技術專家

提高 10 倍性能,揭秘淘宝、天猫背后的图片存储如何扛住双十一巨流?| 问底中国 IT 技术演进

前言

阿里雲對象存儲OSS是阿里集團非結構化數據的統一存儲系統,支撐了集團內的大量業務,存儲了海量的圖片、視頻、音頻、文檔等文件。OSS的同城冗餘存儲特性為螞蟻主站實現世界領先的容災能力提供了RPO為零的技術支撐,完全自主研發的FPGA圖片處理功能以5倍的單機性能、1/10的處理延遲,為雙11提供了更穩定、更高效的服務能力。

提高 10 倍性能,揭秘淘宝、天猫背后的图片存储如何扛住双十一巨流?| 问底中国 IT 技术演进

OSS雙11穩定性工作思路

OSS很早就參與了雙11支撐,在業務洪峰的不斷打磨下,持續淬鍊產品的架構、特性、穩定性,通過多年的摸索,總結了如下支撐雙11穩定性的思路,作為大促支撐的工作指南。

提高 10 倍性能,揭秘淘宝、天猫背后的图片存储如何扛住双十一巨流?| 问底中国 IT 技术演进

2.1 業務規劃

今年雙11的主題是一心一役,為了打好這場戰役,團隊詳細梳理了業務情況。整體來看,集團上雲到OSS的核心業務主要支撐淘寶天貓的圖片、視頻瀏覽,為了保證無損的切換、以及體驗優化,制定了2階段的遷移目標:

  • 第一階段目標為OSS適配業務,保障平滑切換。

  • 第二階段目標為享受公共雲彈性收益、並優化圖片處理性能。

通過對業務來龍去脈的掌握,團隊針對最終目標分解出清晰的步驟和路標,從而支撐業務和技術的快速迭代、敏捷交付。

2.2 架構設計

梳理清需求和路標,就可以針對技術架構、業務架構進行詳細設計,確保需求和架構設計一致,從而支撐客戶需求的正確落地。

2.2.1 OSS 技術架構

今年杭州雲棲大會,OSS基於貔貅3新硬件和盤古2.0底層演進到了新時代,基於如下的架構發佈了 9 大新特性。

提高 10 倍性能,揭秘淘宝、天猫背后的图片存储如何扛住双十一巨流?| 问底中国 IT 技术演进

OSS通過大規模的生產實踐,提供了5個業界領先的關鍵競爭力:

  • 可靠性,指在硬盤、服務器、網絡等故障情況下,以及火災、地震、洪水等災害時,可以有效防止數據丟失,通過跨機機櫃、機房、區域的數據冗餘,實現了12個9的高可靠性。

  • 可用性,指在服務器故障時、光線挖斷時,可自動切換實現業務連續性,通過容錯設計,實現了99.995%的可用性。

  • 安全合規,指數據訪問的認證、授權、加密、以及行業法規遵從,支持多項合規認證,比如KMS加密、WORM認證等。

  • 彈性擴容,能夠自適應業務數據快速增長,避免出現存儲空間被打爆,通過業界領先的資源供應鏈管理、軟件分佈式彈性設計,實現百EB級空間、百萬億級對象規模能力。

  • 自動生命管理管理,支持冷熱數據的管理,優化TCO,提供標準、低頻、歸檔存儲,並自動化遷移,優化存儲使用成本。

2.2.2 業務異地多活架構

為保障業務連續性,採用了異地多活架構,核心技術為一寫多讀。開通了OSS主區域到兩個備區域的跨區域複製功能,如下圖所示。

  • 寫入時只寫主區域,開發便捷。利用OSS跨區域複製能力,將數據複製到備區域,從而備區域有全量的數據。

  • 讀取時可根據地域就近讀取,降低延遲。由於寫入時只寫數據到主區域,數據是異步複製到備區域,所以用戶讀備區域數據時,可能數據還未複製完成,此時通過OSS鏡像回源功能從主區域讀取數據。

提高 10 倍性能,揭秘淘宝、天猫背后的图片存储如何扛住双十一巨流?| 问底中国 IT 技术演进

從而,可在不同的區域級故障場景時,實現快速切換,提供容災秒級RPO(Recovery Point Objective),保證業務應用連續性。

  • 備區域不可用,上層業務快速切換到另外2個區域,並將流量均分,業務能立即恢復,切換也非常方便。

  • 主區域不可用,則選擇新的主區域(如選擇區域2),並開通區域2到區域3的跨域複製,從而業務可以將寫請求切換到新的主區域,讀請求也切換到剩下的區域;同時,基於OSS的版本控制和業務無更新寫,實現了主區域故障切換的數據一致性。

2.3 特性功能

2.3.1 數據高可靠容災特性

圍繞著數據高可靠需求,團隊在今年雙11重點開發&部署瞭如下關鍵特性:

  • 同城冗餘存儲(3AZ, Access Zone),實現RPO為0的容災能力。要實現3AZ冗餘,需要OSS的關鍵組件女媧(分佈式一致性)、盤古(分佈式文件系統)、有巢(分佈式KV索引)等都需要實現跨數據中心冗餘,基於遵守PAXOS的一致性協議、精妙設計的AZ間帶寬和時延、以及數據分片的策略,保證了AZ故障後的快速切換,零數據丟失。經過螞蟻主站(支付寶賬單、刷臉類業務)、網商銀行、淘寶短視頻、天貓大屏等的業務打磨,檢驗了3AZ的能力,得到了廣泛認可。

  • 跨區域複製,它實現跨不同OSS區域的存儲空間(Bucket)異步對象複製,將對象的創建、更新和刪除等操作從源存儲空間複製到不同區域的目標存儲空間,提供RPO為秒級~分鐘級的容災能力。在集團圖片雲異地多活架構中,它發揮了關鍵作用。

提高 10 倍性能,揭秘淘宝、天猫背后的图片存储如何扛住双十一巨流?| 问底中国 IT 技术演进

2.3.2 高性能特性

為了滿足業務的高性能要求,開發瞭如下的性能優化特性,如下圖所示。

  • 圖片處理加速引擎,縮放性能十倍提升。雙11凌晨流量洪峰時,有大量的圖片處理請求,其中圖片縮放請求佔據了相當大的比例。OSS基於FPGA異構計算卸載,結合自研的 Resize 算法,集中在緩存優化、內存訪問優化、FPGA資源優化挖掘技術深度,實現時延是CPU處理時延的1/10。

  • 區域級桶分佈策略,支持淘寶、天貓圖片雲業務高 QPS 能力。通過該分佈策略,可以將桶中的對象數據分佈到區域範圍內的所有機器上,不僅可以實現數據存放的均衡性,還可以極大提升單個 Bucket 的 QPS 能力。根據今年雙11淘寶圖片雲需求,OSS能夠為該業務的桶提供近百萬 QPS 能力。

  • OSS傳輸加速。隨著業務向新區域擴展,業務數據的存儲位置發生了變化,導致時延也發生了變化。傳輸加速利用底層的全球網絡,採用CNAME自定義加速區域,實現就近傳輸,最高可達到4倍加速效果。

提高 10 倍性能,揭秘淘宝、天猫背后的图片存储如何扛住双十一巨流?| 问底中国 IT 技术演进

2.4 開發運維效率

OSS作為阿里雲基礎設施服務,開發運維效率至關重要。基於OSS孵化的赤驥管控已經演化為阿里雲存儲的管控平臺,服務於對象存儲、文件存儲、表格存儲、日誌存儲、智能存儲、女媧等。OSS-Brain是基於海量的線上運維數據,設計的智能運維組件,除了保障OSS的健康穩定運行外,還可以支撐架構設計。如下是詳細介紹:

  • 赤驥自動化監控運維。針對“監控+預案”做好事前準備,在雙11壓測和準備期間積累了大量預案,形成了穩定性保障的強力後盾。採用“動態工作流”支撐事中靈活應對,面向快速“告警、定位、恢復”的目標設計動態表單引擎和批量執行引擎,性能上支持百萬級任務調度和萬級別的任務併發,快速響應應急處理。

  • OSS-Brain 數據智能運維平臺。它的使命是用“數據+算法”來保障 OSS 的穩定運行,賦能線上運維及運營。結合機器學習中常用的分類算法(邏輯迴歸、隨機森林、GBDT),聚類算法(DBSCAN、層次聚類)、迴歸算法(線性迴歸、GBRT等),以及深度學習算法(CNN、RNN、LSTM),實現智能運維。

2.5 穩定性看護

2.5.1 主動防護

針對雙11特點,梳理瞭如下穩定性主動防護點:

  • 基於需求預測算法的庫存管理。雲服務基於需求的智能預測可以保障服務的穩定性,同時也要降低算法預測誤差,保障投資回報比。

  • 多租戶下的差異化流控。雙11集團用戶上雲,要做好租戶的流控隔離。OSS為此提供了桶級流控、租戶級流控能力,以及針對業務請求的差異化流控。

  • 防SYN-FLOOD攻擊。針對雲服務的安全攻擊很普遍,SYN-FLOOD 是常見的類型,OSS作為雲基礎設施服務,通過此功能支撐高併發訪問、突發請求,保證租戶不被影響。

2.5.2 拉網式風險排查,謹防漏網之魚

在雙11的方案討論、日常巡檢、按期壓測等過程中,都會發現風險點,為此專門組織了拉網式排查,對每個隱患都要找出根因,不放過任何潛在問題。

2.6 流程和文化

為了讓雙11的經驗得到傳承,總結了相關管理流程和文化:

  • 需求管理、任務分解。

  • 值班手冊、人人必遵。

  • 預案演練、結對配合。

提高 10 倍性能,揭秘淘宝、天猫背后的图片存储如何扛住双十一巨流?| 问底中国 IT 技术演进

成果和展望

在穩定性思路的指導下,團隊認真仔細的開展任務,結合高效的執行力,順利支撐了今年雙11。希望未來繼續堅持“穩定性工作思路”,並應用到每天每秒的日常運維中,讓所有的用戶都能享受到服務穩如磐石、體驗絲般順滑的對象存儲OSS。


分享到:


相關文章: