做者 | 悟鵬
來源 | 阿里巴巴雲原生公衆號ide
Kubernetes 在生產環境中的採用率愈來愈高,複雜度愈來愈高,由此帶來的穩定性保障的挑戰愈來愈大。工具
對於基於 Kubernetes 的雲產品,穩定性保障已成爲基本訴求,穩定性缺陷會給產品帶來巨大的損失,如用戶流失、用戶信心降低、產品迭代速度變慢等。3d
雖然基於 Kubernetes 的穩定性保障很重要,但業界缺乏基於實踐的標準化穩定性保障方案,致使一樣的問題在同一產品或不一樣的產品中重複出現,最佳實踐不能應用在更多相同技術棧的產品中,不一樣產品造成的穩定性保障最佳實踐也不能互補。blog
爲此,基於過去的開發實踐以及基於 Kubernetes 的穩定性保障經驗,嘗試造成《Kuberentes 穩定性保障手冊》,將穩定性保障最佳實踐進行沉澱,使得人人對 Kubenretes 穩定性保障的理論造成全面的理解,相應的工具和服務成爲基礎設施,複用在相似技術棧的產品中,加速穩定性保障最佳實踐的傳播、迭代和應用。開發
本篇文章做爲《Kubernetes 穩定性保障手冊》第一篇文章,抽象穩定性保障中的核心內容,做爲穩定性保障最簡使用手冊。get
實踐流程:產品
爲了下降實踐的成本,須要把握雲產品中的元素及交互關係,從基礎的元素和交互方面解構複雜系統:it
元素 (2 類)class
以下圖:基礎
隨着元素數量和交互關係的增多,系統會逐步變得複雜,穩定性保障面臨的挑戰也會愈來愈大,要避免引入非必要的複雜性。
所以,須要先梳理清楚當前的運行鏈路圖,進行鏈路重要性分析,並整理組件大圖,判斷組件的爆炸半徑。在此基礎上,還須要進行參與人員的 review,避免在人員的投入方面存在單點風險。
運行鏈路圖示例:
鏈路重要性示例:
雲產品間交互示例:
基於上述對系統複雜度、運行鏈路的分析,面對穩定性保障的問題域,能夠有效提出、落地解決方案。
實踐流程:
對於複雜的系統,一般會有以下的角色關係:
梳理清楚每層的角色,並使得參與同窗能夠方便查找目標同窗,會縮短問題處理時間。
對於《Kubernetes 穩定性保障手冊》,接下來會進行以下的章節細化,分別從方法論和工具/服務的角度進行總結,造成第一版後與你們分享,進行共建: