雲原生應用平台的核心模組有哪些
在雲原生應用平台中,構建一些核心,比如資源管理、應用管理服務管理、監控管理、安全管理等。可以結合自身的特點及雲原生技術,來綜合考慮是自建還是採用成熟的技術或者產品。雲原生應用平台重點模組都有哪些?
1)應用資源管理
應用資源管理需要做好應用的版本、實例部署,以及相關的運維等基於資源的管理。雲原生應用的核心是應用,我們需要以應用為中心,對相關的應用版本、產品、集群、實例、模板等進行統一管理。比如在邏輯概念中,關注應用的劃分、應用版本、應用對應的模板;在對應的物理概念中,對應的是 K8s 集群、實例及相應的運維;在 Pod 中,需要做好生命周期的管理及相應的擴展等;應用資源管理核心概念如下圖所示:
統一服務管理是用來管理應用所依賴的中間件等服務,從而簡化業務應用的研發和運維流程,比如分散式存儲( MySQL、Redis)、分散式文件( NFS)、分散式消息( MQ )、分散式對象( OSS)等。統一服務管理需要管理服務聲明、申請、綁定、服務使用,並做好相應的應用倉庫和服務市場的管理,以及相應標準和雲廠商的綁定管理,整個過程與服務目錄管理類似,統一服務管理流程圖如下圖所示:
統一服務管理還需要考慮多雲多端的適配問題同時,需要對依賴的服務做好依賴和消費管理,可以通過服務市場對開源組織或者商業化服務商進行統一管理.
3)配置管理
配置管理指的是根據不同的業務場景,做好相應的配置服務,如配置定義、配置數據、配置掛載等的管理。對 K8s 而言,需要制定的配置包括ConfigMap、Secret、Ingress等,同時開放給用戶諸如配置格式、欄位、加密類型等。需要根據自身的場景對功能、介面、數據等各方面許可權做好管理,並由雲原生應用平台做好封裝。對於資源隔離的配置,K8s 中的隔離主要包括 Pod 不同容器和K8s 集群不同命名空間兩種方式,各自的共享範圍和隔離範圍有所不同,需要通過配置管理進行相應的簡化。
4)品質度量
品質度量主要面向測試和品質管控方面,雲原生應用平台需要做好相應品質體系的建設,比如用例管理、測試流程、程式碼掃描、集成測試、灰度發布;同時需要將業務架構和應用架構作為輸入,對整體場景進行有效的測試構建,並基於自動化的 DevOps 流程進行檢測,比如可以參考雲原生應用平台所展示的應用CI/CD流程。品質度量,需要建立明確的度量體系和回饋優化機制,提升雲原生應用的成熟度,生成測試度量報告,自動化整個流程。
5)可觀測性
可觀測性決定了系統的穩定性、自愈能力、彈性擴展能力及智慧運維能力等。雲原生應用首先需要構建自身的健康狀態和可視化能力。雲原生應用平台還需要具備日誌、監控、追蹤等能力,比如監控中的採集、報警通知、可視化等,以及診斷中的 Logging、Metrics、Tracing 等能力。比如 Prometheus 監控體系中的程式碼埋點、數據存儲、查詢展示等能,Prometheus生態體系圖如下圖所示:
同時還需要基於可觀測性監控體系做好與服務和應用管理相關的 Action 和 Pipleline 體系,在診斷的過程中進行自動恢復,做到閉環。