阿里巴巴|技術揭秘:實時數倉Hologres如何支持超大規模部署與運維( 二 )


Hologres在設計架構之初就提前做了優化 , 采用云原生容器化部署的方式 , 基于Kubernetes作為資源調度系統 , 滿足了實時數倉場景上的超大規模節點和調度能力 。 Hologres依賴的云原生集群可以支持超過1萬臺服務器 , 單實例可以達到8192個節點甚至更大的規模 。
1 Kubernetes萬臺調度
Kubernetes官方公布集群最大規模為5000臺 , 而在阿里云場景下 , 為了滿足業務規模需求、資源利用率提升等要求 , 云原生集群規模要達萬臺 。 眾所周知Kubernetes是中心節點式服務 , 強依賴ETCD與kube-apiserver , 該塊是性能瓶頸的所在 , 突破萬臺規模需要對相關組件做深度優化 。 同時要解決單點Failover速度問題 , 提升云原生集群的可用率 。
通過壓測 , 模擬在萬臺node和百萬pod下的壓力 , 發現了比較嚴重的響應延遲問題 , 包括:









【阿里巴巴|技術揭秘:實時數倉Hologres如何支持超大規模部署與運維】



























etcd大量的讀寫延遲 , 并且產生了拒絕服務的情形 , 同時因其空間的限制也無法承載 Kubernetes 存儲大量的對象; API Server 查詢延遲非常高 , 并發查詢請求可能導致后端 etcd oom; Controller 處理延時高 , 異?;謴蜁r間久 , 當發生異常重啟時 , 服務的恢復時間需要幾分鐘; Scheduler 延遲高、吞吐低 , 無法適應業務日常運維的需求 , 更無法支持大促態的極端場景 為了突破k8s集群規模的瓶頸 , 相關團隊做了詳細調研 , 找到了造成處理瓶頸的原因: 發現性能瓶頸在kubelet , 每10s上報一次自身全量信息作為心跳同步給k8s , 該數據量小則幾KB大則10KB+ , 當節點到達5000時 , 會對kube-apiserver和ETCD造成寫壓力 。etcd 推薦的存儲能力只有2G , 而萬臺規模下k8s集群的對象存儲要求遠遠超過這個要求 , 同時要求性能不能下降; 用于支持集群高可用能力的多API Server部署中 , 會出現負載不均衡的情況 , 影響整體吞吐能力; 原生的scheduler 性能較差 , 能力弱 , 無法滿足針對混部、大促等場景下的能力 。針對該情況 , 做了如下優化 , 從而達到萬臺規模調度: etcd設計新的內存空閑頁管理算法 , 大幅優化etcd性能; 通過落地 Kubernetes 輕量級心跳、改進 HA 集群下多個 API Server 節點的負載均衡 , 解決了APIServer的性能瓶頸; 通過熱備的方式大幅縮短了 controller/scheduler 在主備切換時的服務中斷時間 , 提高了整個集群的可用性; 通過支持等價類處理以及隨機松弛算法的引入 , 提升了Scheduler的調度性能 三 Hologres運維體系建設 1 Hologres運維體系總覽 針對OLAP體系碰到的問題和痛點 , 以及在超大規模部署壓力下的運維挑戰 , 同時依托阿里云大數據運維中臺 , 我們設計了Hologres的運維體系 , 解決資源和集群交付等自動化問題、集群和實例級別的實時可觀測性問題和智能化的自愈體系 , 提升Hologres的SLA到生產可用級別 。2 集群自動化交付 Hologres 是完全基于云原生的方式設計和實現的 , 通過存儲計算分離的方式 , 解耦了計算資源和存儲資源;其中計算節點的部署通過K8s集群進行部署和拉起 。 通過自研的運維管理系統ABM , 在集群交付上 , 我們對集群進行抽象設計 , 分離出資源集群和業務集群的概念;資源集群的交付 , ABM和底層平臺進行打通 , 進行資源集群的創建和容量維持;在業務集群上 , ABM提供基于K8s 概念的部署模板 , 將管控等節點在資源集群上快速拉起 , 完成交付 。3 可觀測性體系 系統的可觀測性能幫助業務更好的管理集群水位和問題排查等 , 從而提升企業級管控能力 。 在可觀測性上 , 不僅需要透出更加簡單易懂的監控指標 , 還需要有成熟的日志采集系統 , 從而實現更簡單的運維 , 只需要為業務問題負責 。 基于阿里云的監控產品和Hologres的可觀測性需求 , 我們設計了Hologres的實時監控能力 。Metric監控體系 為了支持詳細的系統能力觀察、性能監控、快速的問題定位和debug , Hologres 支持了非常豐富的Metric監控體系 , 這也對整個Metric鏈路的采集、存儲和查詢提出了非常高的要求 。 在監控鏈路上 , Hologres 選擇了阿里巴巴自研的Emon平臺 , 除了支持億級Metric每秒的寫入 , Emon還支持自動downsample、聚合優化等能力;同時在后端我們通過實時鏈路 , 可以把核心Metric吐到云監控 , 方便用戶自助的對實例進行監控觀察和問題定位 。日志采集和監控 在日志采集上 , Hologres采用了成熟的云產品SLS , 可以支持中心式的日志排查和過濾 ;同時考慮到Hologres的日志量也非常龐大 , 在采集上采用了分模塊和分級的機制 , 在控制成本的同時 , 能很好的解決問題排查和審計的需要 。 同時 , SLS也提供了基于關鍵字等方式的監控方案 , 可以對關鍵錯誤進行告警 , 以方便及時處理問題 ?;谠獋}的可用性監控 在Metric和日志的采集及告警上 , 更多的是體現某一個模塊上的問題 , 上面的手段還無法完整的回答某一個實例的可用性 。 基于此 , 我們構建了一個Hologres運維數倉 , 通過多維度的事件、狀態進行綜合判斷實例是否工作正常 。 在元倉中會收集和維護多維度數據 , 包括實例的meta數據、Hologres中各模塊的可用性判斷標準、實例各模塊的狀態、事件中心 , 包括運維事件、客戶事件、系統事件等;在進行實例可用性判斷的同時 , 元倉還提供了用于實例診斷、實例巡檢等各種數據 。 當前元倉的能力已經產品化發布為慢Query日志 , 用戶可以通過慢query日志 , 進行自助化問題診斷和調優 。4 智能運維提升產品SLA 在可觀測性完善的基礎上 , 為了提升問題定位的速度和縮短實例恢復時間 , 即提升Hologres的MTTR , 基于阿里云大數據運維中臺提供的基礎能力和智能運維方案 , 我們構建了完整的Hologres SLA管理體系和故障診斷及自愈體系 。SLA體系 基于Hologres運維元倉的數據和實例可用性定義 , 我們建立了Hologres實例級別可用性的管理系統 , 實例可用性數據會進入ABM的SLI數據庫 , SLI根據數據和條件觸發實例可用性監控 , 在監控發出的同時 , 會觸發實例的診斷 , 系統根據診斷結果 , 判斷是否進行自愈 , 如果是已知可以自動恢復情況 , 會觸發自愈 , 進行故障的自動恢復;如果是未知情況 , 會觸發生成人工工單 , 工單系統會由人跟進完成 , 并逐步形成自愈的action 。智能巡檢 智能巡檢解決的是集群或者實例的一些隱性和不緊急的問題 , 避免一些小問題的日積月累引發質變影響線上的穩定性;除了一些比較清晰定義的巡檢項 , 智能巡檢還引入了聚類算法等 , 對系統指標進行分析 , 這也會幫助我們發現一些集群中的離散節點 , 進行及時處理 , 避免問題節點導致影響整個實例的可用性 。智能診斷和自愈 智能診斷既依賴運維元倉的數據 , 同時還會依賴診斷相關的算法支持 , 包括日志聚類、根因分析等 , 進行錯誤日志的聚類 , 對聚類結果進行打標 。 在ABM提供的算法和工程能力支持下 , 實例診斷已經在幫助業務進行問題的快速定位 , 提升問題解決的效率 , 縮短了實例的MTTR 。四 Hologres產品級運維能力 除了上面介紹的Hologres服務本身的運維穩定性保障 。 在Hologres 產品側 , 通過多種方式提升系統的穩定性: 1、高可用架構 采用高可用架構設計 , 穩定支撐阿里集團歷年雙11等大促流量峰值 , 經歷大規模生產考驗 , 包括 存儲計算分離架構提升系統擴展靈活性 多形態replication解決數據讀寫分離 , 主要包括多副本提高吞吐、單實例資源組隔離、多實例共享存儲高可用 調度系統提升節點failover快速恢復能力 2、多元化的系統可觀性指標 除了Hologres本身架構的設計 , 同時也為用戶提供多元化的觀測指標 , 實時監控集群狀態和事后復盤 , 無需復雜操作 , 只需為業務負責: 多維度監控指標:CPU、內存、連接數、IO等監控指標實時查詢 , 實時預警; 慢query日志:發生的慢Query或失敗Query通過時間、plan、cpu消耗等各項指標進行診斷、分析和采取優化措施 , 提高自助診斷能力; 執行計劃可視化:通過多種可視化展現的方式 , 對Query進行運行分析、執行分析 , 詳細算子解讀 , 并進行優化建議引導 , 避免盲目調優 , 降低性能調優門檻 , 快速達到性能調優的目的 。五 總結 通過對大規模調度下面臨的調度性能瓶頸的分析和針對性的優化 , Hologres 可以完成8192節點甚至更大規模的實例交付和擴縮容 。 同時基于云原生的Hologres智能運維體系建設 , 解決了大規模集群和實例下面臨的運維效率和穩定性提升問題 , 使得Hologres在阿里巴巴內部核心場景歷經多年雙11生產考驗 , 在高負載高吞吐的同時實現高性能 , 實現生產級別的高可用 , 更好的支撐業務 , 為企業的數字化轉型提供了良好的支持 。阿里云實時數倉Hologres: https://www.aliyun.com/product/bigdata/hologram?spm=a2cbu.13822726.0.0.56711a9cIKkCzv 作者 | 歐文 原文鏈接:https://developer.aliyun.com/article/866361?utm_content=g_1000323169 本文為阿里云原創內容 , 未經允許不得轉載 。

相關經驗推薦