天天看點

盤點:2018年雙11背後的螞蟻核心技術

小螞蟻說: 你們都很關心的 “ OB雙11大促實戰分享

” 專題來啦!本系列将為你系統性的介紹OceanBase支撐螞蟻雙11背後的技術原理和實戰分享。

從平台到架構,再到實作,一起來探索螞蟻雙11這場神秘的技術之旅吧!

盤點:2018年雙11背後的螞蟻核心技術

2018年的雙11十周年,最終成交額以2135億元創紀錄收官,支付寶系統在這場“商業奧運會”中再次經受住了考驗。這也是OceanBase順利支撐螞蟻雙11的第五年。

從五年前,隻有10%流量切到OceanBase上,到如今OceanBase 2.0版本成功支撐2018年雙11的支付寶核心鍊路。每年不變的是一如既往的表現平穩,絲般順滑,變化的是技術能力的不斷更新和疊代。今年的雙11,OceanBase 2.0扛起了大梁,性能比去年提升了50%,真正實作了“零成本”支撐大促。

一、2018雙11大促使用了哪些核心技術?

今年的雙11,OceanBase緻力于通過底層架構及平台能力的提升,來實作雙11穩定性、成本優化、性能及效率方面的全方位的提升。相較以往始終如一“絲般順滑”的大促能力外,2018年的雙11,OceanBase更加注重長久技術能力的沉澱:

  • OceanBase2.0版本首次上線支付寶的核心鍊路 ,包括交易、支付系統,為“峰值百萬支付能力”的三年戰略沉澱了通用的“極緻彈性”的分布式資料庫能力,夯實了百萬支付的底層基座。
  • 在底層存儲媒體方面, OceanBase 2.0核心鍊路首次100%運作在容器上 ,同時存儲計算分離架構上線,大幅降低資源成本的同時夯實統一存儲基座。
  • 在智能化運維的實踐方面, OCP(OceanBase雲平台)着眼于SQL優化診斷、故障根因分析和智能容量規劃等資料庫關鍵場景 ,将資料庫專家的經驗與AI算法/機器學習相結合,提供智能化的資料庫服務。
  • 在平台能力的沉澱上, OCP引入Orchestration理念,通過編排/複用原子變更任務靈活,實作大促快速彈出/彈回的流程 ,同時平台内置變更免疫及變更三闆斧能力(可監控/可灰階/可復原),極大的提升了大促整體的穩定性和效率;在整個大促期間,OCP自動執行40000+變更,最終實作全程零故障。
  • 在商業産品化方面: 智能化運維及平台能力抽象出大促及對外商業化場景 ,建設通用能力來覆寫螞蟻内外場景。

二、OceanBase 2.0 & 百萬支付

每年雙11的壓力在不斷創造新高,支付系統需要具備百萬每秒的支付能力,那麼一個亟待解決的問題是:

如何解決最小資料分片的峰值能力超過單機性能的問題

OceanBase 2.0應運而生,其目标是在應用無感覺的情況下對資料分片進一步拆分,将資料sharding到無限多的機器上,實作極緻彈性能力優雅支撐百萬支付峰值。

1.百萬支付架構

如下圖的百萬支付架構所示,傳統資料庫的彈性架構,将資料進行實體拆分到不同機器,業務在資料通路、研發、後期維護及資料配套設施上都非常繁瑣;同時拆分後資源很難快速回收,且資料拆分及聚合無法實作業務無損。

盤點:2018年雙11背後的螞蟻核心技術

相比于傳統資料庫的彈性架構,OceanBase 2.0架構完全不侵入業務,内部通過分區實作資料分片的自組織及負載均衡,通過生成列及分區規則實作自動路由,通過分區聚合(partition_group)消除分布式事務性能開銷以提升性能,進而實作無損線性伸縮。另外,資料分片間share_nothing及多版本的架構,實作分片故障隔離及單點故障消除的高可用架構。

2.性能提升

為實作“零成本大促”,OceanBase 2.0花了非常多的精力緻力于性能的提升。相比OceanBase1.0,2.0在分布式架構上全面更新,如原生sharding/分布式事務優化/優化事務送出日志開銷。

OceanBase作為底層基礎軟體,任何微小的性能提升都會為業務節省大量資源,秉承持續優化的匠心,OceanBase 2.0在資料庫底層架構、系統實作層面及資料庫運作環境全方位進行優化。最終,OceanBase 2.0相比1.0提升了50%的性能,實作今年雙11大促的零機器增加。

三、OceanBase 容器化 & 存儲計算分離

雙11峰值需要大量的資源支撐,而峰值後資源處于低水位狀态,如何快速申請/釋放這部分資源?雙11當天非支付鍊路資源空閑,大促是否可以搶占這批資源?大促不同活動時間錯峰,不同鍊路的資源可否實作快速騰挪?類似的資源問題不一而足。

大家可以發現以上問題的本質在于:

如何最大化程度降低雙11當天的資源成本?這是大促技術要實作的一個核心價值

雙11大促資源成本與兩個因素相關,一個是

大促資源的總數目

,另一個是

持有時長

。我們可以通過系統優化提升單機性能,來降低大促資源的總數目(如前章節提到的OceanBase 2.0的性能優化)。

那麼如何降低持有時長呢?我們統一的思路是:用“

高峰期搶占/低峰值釋放資源

”的方式來大幅降低持有時長;其兩個關鍵前提技術就是容器化和存儲計算分離。

1.OceanBase容器化

OceanBase容器化的核心思想是“資源排程”,大促目标就是“OceanBase能夠被快速排程到各種資源載體上(如離線資源、雲資源、峰值無壓力的資料庫其他叢集)”;容器化屏蔽了底層資源載體的差異化,具備彈性部署高效的優點,是資源排程的前提條件。OceanBase打造自身排程能力,深入結合副本、租戶的概念,精細化資源畫像,使得OB容器化部署快速實作分時複用、資源搶占及混部。

2.存儲計算分離

存儲計算分離,顧名思義,将資料庫運作依賴的計算資源和存儲資源部署到不同的資源載體上,進而實作資料庫的弱狀态化,使得資料庫可分别對存儲和計算資源進行彈性伸縮。其好處是顯而易見的。

典型場景:

  • 大促态——CPU資源需求激增,而存儲資源增幅很小,那麼我們可以針對性對計算資源的機型進行擴容,進而降低資源成本且提升擴容效率;
  • 日常态——OB LSM架構将離散IO轉化成順序IO,是以存儲的IO能力不是瓶頸,更多的是存儲空間上的需求;存儲計算分離後,多叢集間可降低存儲碎片,共享整體存儲資源池,提升資源使用率。

四、平台智能化

随着業務規模的快速增長,系統穩定性SLA預發嚴峻和OceanBase部署的多樣化,傳統平台已無法滿足我們的需求,可以預見不久的将來,運維将成為業務擴充的瓶頸。是以,OceanBase平台正在逐漸走向智能化道路實作智能運維。

OCP着眼于SQL優化診斷、故障根因分析和智能容量

等大促關鍵場景,目标是将運維專家的技術經驗和AI算法/機器學習技術相結合,分解運維關鍵技術,開發成一系列的智能運維模型,應用于大規模運維系統中。

衆所周知,SQL plan的正确性對資料庫運作至關重要。OCP針對風險場景SQL,在千萬峰值壓力下,實時進行plan正确性比對,并對可能存在性能變壞隐患的SQL進行分鐘級修正。

容量水位是大促至關重要的一環,OCP通過資料模組化/智能水位預測對叢集/租戶/docker進行容量畫像,結合OceanBase内置Tenant Group能力,實作容器/叢集/租戶等多個次元的自動擴縮容,同時計算容量plan在叢集/租戶次元混部,實作最佳負載均衡部署【 深度部署資源使用率達到(n-1)/n 】,大幅節省了機器資源。

OCP作為OceanBase的“智能大腦”,實時監控資料庫運作狀态,小至單條SQL plan,大至數千台機器容量,真正做到了生産環境智能化全覆寫。未來,OCP還将不斷創新資料庫智能化的運維之路,打造更加完善的資料庫自治體系。

五、生态與連接配接

螞蟻金服與金融機構最早建立的連接配接是基于支付業務的合作,後來又逐漸擴充了很多其他普惠金融類的業務,比如網商銀行的同業合作,借呗/花呗等。如今随着在螞蟻金服内部多年積累的技術能力與産品能力,OceanBase也将全面走向外部,對所有行業開放,通過科技作為新的連接配接紐帶助力企業的數字化轉型。

過去金融業IT系統的基礎架建構設基本都來自國外,如IBM、甲骨文、EMC這些公司建構底層架構,其中門檻最高的就是資料庫的整體平滑替換。OceanBase團隊從成立之初就肩負着使命,即我們要做一款通用資料庫真正的去推動整個社會的進步,能夠讓整個社會的生産力發生變化。

從2016年底,OceanBase就開始準備走出去,用技術改變業務形态;用技術創造新的業務模式,與更多企業建立更為緊密的連接配接關系。近兩年對外服務的過程中,通過與ISV的深度合作與賦能,不僅提供OceanBase核心的能力,也不斷豐富周邊配套産品生态,涵蓋使用資料庫過程中的方方面面。

未來,我們将繼續緻力于提供高可用、高性能、低成本的資料庫服務,相信通過科技的連接配接助力更多企業,讓科技的産出變成可以量化的業務價值。