全網首發!2018年螞蟻雙11大促全面揭祕:百萬支付、容器化和平臺智能化

OB君大家都很關心的 「OB雙11大促實戰分享」 專題來啦!本系列將爲你係統性的介紹OceanBase支撐螞蟻雙11背後的技術原理和實戰分享。從平臺到架構,再到實現,一塊兒來探索螞蟻雙11這場神祕的技術之旅吧!前端

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

從五年前,只有10%流量切到OceanBase上,到現在OceanBase 2.0版本成功支撐2018年雙11的支付寶核心鏈路。每一年不變的是一如既往的表現平穩,絲般順滑,變化的是技術能力的不斷升級和迭代。今年的雙11,OceanBase 2.0扛起了大梁,性能比去年提高了50%,真正實現了「零成本」支撐大促。2018雙11大促使用了哪些核心技術?docker

今年的雙11,OceanBase致力於經過底層架構及平臺能力的提高,來實現雙11穩定性、成本優化、性能及效率方面的全方位的提高。相較以往始終如一「絲般順滑」的大促能力外,2018年的雙11,OceanBase更加註重長久技術能力的沉澱:數據庫

  • OceanBase 2.0版本首次上線支付寶的核心鏈路,包括交易、支付系統,爲「峯值百萬支付能力」的三年戰略沉澱了通用的「極致彈性」的分佈式數據庫能力,夯實了百萬支付的底層基座
  • 在底層存儲介質方面,OceanBase 2.0核心鏈路首次100%運行在容器上,同時存儲計算分離架構上線,大幅下降資源成本的同時夯實統一存儲基座
  • 在智能化運維的實踐方面,OCP(OceanBase雲平臺)着眼於SQL優化診斷、故障根因分析和智能容量規劃等數據庫關鍵場景,將數據庫專家的經驗與AI算法/機器學習相結合,提供智能化的數據庫服務
  • 在平臺能力的沉澱上,OCP引入Orchestration理念,經過編排/複用原子變動任務靈活,實現大促快速彈出/彈回的流程,同時平臺內置變動免疫及變動三板斧能力(可監控/可灰度/可回滾),極大的提高了大促總體的穩定性和效率;在整個大促期間,OCP自動執行40000+變動,最終實現全程零故障
  • 在商業產品化方面:智能化運維及平臺能力抽象出大促及對外商業化場景,建設通用能力來覆蓋螞蟻內外場景

OceanBase 2.0 & 百萬支付

每一年雙11的壓力在不斷創造新高,支付系統須要具有百萬每秒的支付能力,那麼一個亟待解決的問題是:如何解決最小數據分片的峯值能力超過單機性能的問題後端

OceanBase 2.0應運而生,其目標是在應用無感知的狀況下對數據分片進一步拆分,將數據sharding到無限多的機器上,實現極致彈性能力優雅支撐百萬支付峯值。安全

百萬支付架構

以下圖的百萬支付架構所示,傳統數據庫的彈性架構,將數據進行物理拆分到不一樣機器,業務在數據訪問、研發、後期維護及數據配套設施上都很是繁瑣;同時拆分後資源很難快速回收,且數據拆分及聚合沒法實現業務無損。性能優化

1-2.jpg | center | 747x366

相比於傳統數據庫的彈性架構,OceanBase 2.0架構徹底不侵入業務,內部經過分區實現數據分片的自組織及負載均衡,經過生成列及分區規則實現自動路由,經過分區聚合(partition_group)消除分佈式事務性能開銷以提高性能,從而實現無損線性伸縮。另外,數據分片間share_nothing及多版本的架構,實現分片故障隔離及單點故障消除的高可用架構。架構

性能提高

爲實現「零成本大促」,OceanBase 2.0花了很是多的精力致力於性能的提高。相比OceanBase 1.0,2.0在分佈式架構上全面升級,如原生sharding/分佈式事務優化/優化事務提交日誌開銷。負載均衡

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

OceanBase 容器化 & 存儲計算分離

雙11峯值須要大量的資源支撐,而峯值後資源處於低水位狀態,如何快速申請/釋放這部分資源?雙11當天非支付鏈路資源空閒,大促是否能夠搶佔這批資源?大促不一樣活動時間錯峯,不一樣鏈路的資源能否實現快速騰挪?相似的資源問題不一而足。

你們能夠發現以上問題的本質在於:如何最大化程度下降雙11當天的資源成本?這是大促技術要實現的一個核心價值。

雙11大促資源成本與兩個因素相關,一個是大促資源的總數目,另外一個是持有時長。咱們能夠經過系統優化提高單機性能,來下降大促資源的總數目(如前章節提到的OceanBase 2.0的性能優化)。

那麼如何下降持有時長呢?咱們統一的思路是:用「高峯期搶佔/低峯值釋放資源」的方式來大幅下降持有時長;其兩個關鍵前提技術就是容器化和存儲計算分離。

OceanBase容器化

OceanBase容器化的核心思想是「資源調度」,大促目標就是「OceanBase可以被快速調度到各類資源載體上(如離線資源、 雲資源、峯值無壓力的數據庫其餘集羣)」;容器化屏蔽了底層資源載體的差別化,具有彈性部署高效的優勢,是資源調度的前提條件。OceanBase打造自身調度能力,深刻結合副本、租戶的概念,精細化資源畫像,使得OB容器化部署快速實現分時複用、資源搶佔及混部。

存儲計算分離

存儲計算分離,顧名思義,將數據庫運行依賴的計算資源和存儲資源部署到不一樣的資源載體上,從而實現數據庫的弱狀態化,使得數據庫可分別對存儲和計算資源進行彈性伸縮。其好處是顯而易見的。

典型場景:

  • 大促態——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內核的能力,也不斷豐富周邊配套產品生態,涵蓋使用數據庫過程當中的方方面面。

將來,咱們將繼續致力於提供高可用、高性能、低成本的數據庫服務,相信經過科技的鏈接助力更多企業,讓科技的產出變成能夠量化的業務價值。同時,也期待更多有志之士加入咱們。

雙11技術交流羣

— 想了解更多雙11大促背後的技術祕密?

— 想與螞蟻金服OceanBase的一線技術專家深刻交流?

掃描下方二維碼聯繫小編,快速加入OceanBase技術交流羣!

新加羣二維碼.jpg | center | 747x1025

加入咱們

【數據庫智能化開發】

崗位描述:

一、負責螞蟻金服數據庫智能運維平臺應用架構設計和實施落地,使系統體系化並具備前瞻性,能快速發現異常和風險隱患,自動識別緣由並修復故障源/風險點,實現self-healing、self-scaling、self-tuning的自治數據庫目標;

二、負責構建數據庫統一技術風險、業務容量和穩定性的數據模型,以數據爲支撐驅動診斷、容量、高可用、業務最佳實踐等核心問題的數據庫智能運維發展;

三、獨立完成大型項目的系統分析設計,並負責核心模塊研發,完成系統Code Review的任務,提供相關性能以及安全的建議。

【數據庫平臺前端開發】

崗位描述:

負責螞蟻金服數據庫DevOps平臺產品的前端研發,經過專業的前端技術能力爲整套數據庫產品提供優秀的前端解決方案。

【數據庫平臺後端開發】

崗位描述:

一、負責螞蟻金服數據庫基礎平臺、容器化、高可用體系等領域的平臺研發;

二、經過平臺化思路,持續優化系統維護工做效率,把控技術風險,用工程的思路解決遇到的問題;

三、負責螞蟻金服數據庫智能平臺應用架構設計和系統實施,使系統體系化並具備前瞻性,能快速發現業務風險和及時管控;獨立完成大型項目的系統分析設計,並負責核心模塊研發;負責完成系統Code Review的任務,確保相關代碼的有效性和正確性,並可以經過Code Review提供相關性能以及安全的建議。

【數據庫SRE】

崗位描述:

一、負責數據庫高可用平臺體系、基礎設施的開發和建設,追求100%的服務持續可用、秒級故障恢復能力;

二、負責數據庫成本優化,經過新技術、新產品、新方案全方位地優化系統性能;

三、負責數據庫相關平臺和工具產品的建設,持續改進業務研發和系統維護效率,用工程的思路解決遇到的問題;

四、負責數據庫架構設計,基於高可用、高性能、防資損等視角,與業務團隊一塊兒進行數據架構設計;

五、負責公司重大業務活動(如雙11/雙12)數據庫保障,致力於讓用戶感受絲般順滑;

六、負責數據庫新技術的探索及落地,如存儲計算分離、數據庫容器化等。

可直接發送簡歷到 qijie.tianqj@alibaba-inc.com,咱們等的就是你!

相關文章
相關標籤/搜索