《裴明明-云原生架構下中間件聯邦高可用架構實踐.pdf》由會員分享,可在線閱讀,更多相關《裴明明-云原生架構下中間件聯邦高可用架構實踐.pdf(29頁珍藏版)》請在三個皮匠報告上搜索。
1、演講人:裴明明目 錄01云原生中間件02云原生中間件管理03中間件跨可用區高可用04未來展望云原生中間件基礎設施層基礎設施層應用層PaaS層應用層Redis、Kafka、ElasticSearch等開源中間件廣泛應用,運維復雜,需要較強的運維專業知識,使用運維門檻較高。01主流公有云廠商托管大多數主流中間件,Redis、Kafka、RocketMQ、ElasticSearch、Pulsar等,公共托管數據安全弱,特性場景需求滿足慢。02云原生技術K8s、Docker技術飛速發展,并在無狀態業務大規模落地,容器技術和云原生編排解決了服務諸多痛點。03 運維復雜 運維效率不高 穩定性保障難度高 缺
2、乏和基礎設施結合的彈性能力 專業要求高 多數基于虛擬機虛擬化,虛擬化較重 性能虛擬化損耗 資源共享不足,資源利用率不高 系統棧復雜,很難私有化部署 無法實現商業化快速交付 基于容器化技術實現輕量化資源隔離 資源損耗低,性能較好 天生具備彈性、自愈、易編排等特性 技術棧統一,社區活躍,發展快 可以實現商業化快速交付聲明式定義,基礎設施即代碼,標準統一,易于編排構建于標準 Kubernetes 之上,利用 K8s 的靈活調度、故障自愈、彈性伸縮等內置能力簡化中間件的運維自動化管控,資源統一調度,有效提升資源利用率,降低基礎設施成本更適合構建私有化部署的PaaS中間件服務CROperatorcrea
3、tewatch中間件資源對象中間件控制器云原生中間件管理云原生基礎平臺認證鑒權監控告警統計基礎設施層中間件服務層統一接入層KubernetesLoadBalancerNodeportOpenAPI中間件管控服務一鍵部署在線升級故障自愈水平擴容定期巡檢健康報告根因分析統一管控操作審計日志采集概覽中間件集群支持多種數據訪問方式,以及平臺能力對接基于多品類容器云平臺構建中間件能力支持多品類中間件完善的中間件運維能力多平臺兼容、多云管理企業級能力和通用平臺能力建設 LoadBalancer和NodePort模式實現云上服務外部訪問,負載均衡多主模式提升性能 基于LVM的本地磁盤管理服務實現本地磁盤生命
4、周期動態管理,顯著提升中間件性能 中間件集群容器化功能適配和優化 中間件相關系統內核調優 提供中間件配置參數模板能力,內置中間件參數的高性能模板,實現眾多配置參數的動態調整,顯著降低中間件使用門檻單中間件集群通過節點反親和、拓撲分區調度實現節點的互斥提供中間件實時備份和一鍵恢復能力云原生生態的集群熱備多活,實現故障自動檢測,自動轉移,快速切流基于Kubernetes集群聯邦的同城多機房高可用Prometheus技術體系建設的中間件監控告警系統云原生日志自動化采集組件Loggie(網易數智開源),對中間件集群進行無侵入日志采集基于云原生事件建立中間件事件管理能力,實現事件監控告警中間件運維中心,
5、提供風險巡檢、根因分析、自主診斷等能力,增強運維能力,提升集群穩定性中間件服務層數據面服務數據控制面多副本部署,自動化運維,支持備份到外部存儲通過Service靈活實現中間件集群副本變化帶來的訪問切換中間件管控服務Operator自動伸縮秒級擴容/縮容定時伸縮基于請求伸縮基于交易量伸縮基于實時負載伸縮 中間件服務層實現對多云多集群的統一管理 計算集群管控面實現對中間件集群生命周期和路由訪問的統一管控 基于CRD Operator的架構,實現中間件自動化運維和故障自愈 實現基于監控指標的自動彈性伸縮,基于業務高峰期的定時擴縮容 云原生架構,秒級擴縮容和業務流量接入 云原生可觀測體系,實現實時系統
6、負載、CPU、內存、服務畫像、應用運行時指標等彈性策略統一云原生基座,統一技術棧,開源生態助力中間件能力創新企業業務通用特性多租戶統一管控安全性高性能可觀測可運維統一運維概覽大盤風險巡檢根因分析自主診斷集群遷移異常歸檔統一云原生技術基座容器技術體系生態開放活躍云原生中間件平臺高階特性同城雙活集群熱備異地多活集群聯邦備份恢復消息路由中間件跨可用區高可用機房A機房B 中間件集群高可用方式:多集群數據同步和單集群跨可用區 多集群數據同步:熱備、雙活、多活等高可用能力 單集群跨可用區:聯邦多活,依賴中間件自身高可用 多數選主的分布式一致性協議:要求至少三個可用區來保證任意可用區故障中間件依然可用 對底
7、層基礎設施要求較高:不同可用區集群節點間的網絡連通性和網絡質量要求0102中間件都使用了分布式一致性協議進行集群管理,不同類型中間件有不同的節點調度算法,尤其是集群擴縮容算法03當一個集群中節點故障時,需要嘗試對節點進行自愈,對集群整體狀態進行校準,一些復雜中間件比如Redis,宕機恢復也需要額外流程多云管理組件對無狀態服務支持比較好,中間件有狀態服務和CR的分發對變更、滾動更新、訪問管控要求高 開源社區標準集群聯邦組件Karmada,實現對多云多集群聯合管理 基于Karmada針對中間件有狀態服務的特性進一步優化改進 可直接部署在管控K8s中,復用當前集群的資源作為模版,針對用戶自定義資源的
8、傳播優化 K8s原生API Compatible,無侵入式改動,低成本接入多集群 在管控集群進行聯邦資源分發和狀態匯聚管理,并提供面向用戶的查詢接口APIServerPythiaControllerClusterControllerPolicyControllerBindingControllerExecutionControllerPythiaWebhookPythiaSchedulerETCDAPIServerCRSTSCMAPIServerCRSTSCMAPIServerCRSTSCM:聯邦調度器實現調度算法,記錄調度結果,并將集群調度拓撲傳遞給聯邦控制器:基于聯邦資源生成中間件通用CR
9、、傳播規則、復寫規則,負責資源分布管理,維護跨集群創建、滾動更新、全局視圖維護、狀態管理和集群一致性:實現資源的差異化傳播與狀態收集:實現高可用、高性能跨集群域名解析,簡化有狀態服務多集群部署:實現集群聯邦組件、中間件聯邦組件的跨集群高可用聯邦管控面聯邦計算集群聯邦分發組件聯邦調度器聯邦控制器聯邦CR單集群CR單集群CR單集群CR中間件控制器主管控集群計算集群單集群CR中間件控制器計算集群單集群CR中間件控制器計算集群聯邦分發組件聯邦調度器聯邦控制器聯邦CR單集群CR單集群CR備管控集群跨集群流量治理資源傳播 狀態匯聚K8sK8sK8s中間件聯邦分發組件狀態聚合全局管控狀態聚合全局管控全局管控
10、狀態聚合中間件聯邦控制器配置變更信息采集 管控計算分級控制器共同管理中間件集群 管控控制器實現對全局視圖和狀態變更的管理,保證集群一致性 計算子控制器基于管控下發的中間件資源管理各自資源的生命周期,并實時將狀態反饋給管控 有狀態服務實現漸進式交付,狀態演進由管控和計算經過多輪資源下發、調諧、狀態聚合,最終達到流程管控的目標 管控控制器和計算子控制器共同監控集群狀態,并實現全局故障自愈所有實例信息匯聚調度下發全局視圖滾動操作按節點逐個滾動創建、更新重新調度,實現拓撲一致故障遷移部署中間件節點和K8s集群分布規則,約束任意K8s集群中節點數不超過半數,要求節點在K8s集群中盡可能均分中間件集群擴縮
11、容時,算法應該在滿足上述約束的情況下,確保調度算法一致性,存量節點不會重新調度集群故障時,中間件角色相對集中,會打破上述規則。故障恢復時,應重新滿足上述約束 重寫CoreDNS的ETCD Plugin,實現多集群域名實時注冊和共享訪問 域名注冊控制器監聽單個集群中Service、Ingress資源,向多個集群的External DNS自動注冊和更新域 External DNS組件支持按機房就近解析 在CoreDNS中配置forward域名服務器,將本地無法解析的域名轉到External DNS,實現跨集群域名解析APIServerPythiaControllerAPIServerPythiaC
12、ontrollerABA:200B:100CMA:200B:100CM 基于K8s實現分布式選主功能 基于權重配置的自我選主能力 通過配置檢測實現故障恢復時的分布式一致性 主從集群資源傳播和周期比對,實現主從數據一致 通用選主和切換邏輯,管控端有狀態應用集成使用APIServerCRSTSCMAPIServerCRSTSCMAPIServerCRSTSCM未來展望基于云原生底座,不斷迭代演進中間件能力,并且將能力交叉組合,實現復雜架構下的多類型業務場景持續迭代基于云原生可觀測能力提升,進一步發掘和完善穩定性管控,將事前巡檢、事中處理、事后復盤進行自動化管理,不斷復盤迭代,提升中間件集群穩定性穩定提升深度結合云原生中間件和智能調度,在保障集群穩定性的同時不斷優化資源利用效率,同時結合云原生成本運維,達到降本增效的目的降本增效故障發現根因分析故障恢復基于監控告警,智能分析,發現故障收集告警項相關的狀態信息,進行深度分析,找到根因根據根因分析結果找到運維方案進行故障恢復訓練模型交叉驗證網格搜索驗證曲線訓練算法回歸聚類機器學習神經網絡大模型RAGAgent智能體LangChainTHANKS