Kubernetes 穩定性保障手冊 -- 極簡版

頭圖.png

做者 | 悟鵬
來源 | 阿里巴巴雲原生公衆號ide

Kubernetes 在生產環境中的採用率愈來愈高,複雜度愈來愈高,由此帶來的穩定性保障的挑戰愈來愈大。工具

對於基於 Kubernetes 的雲產品,穩定性保障已成爲基本訴求,穩定性缺陷會給產品帶來巨大的損失,如用戶流失、用戶信心降低、產品迭代速度變慢等。3d

雖然基於 Kubernetes 的穩定性保障很重要,但業界缺乏基於實踐的標準化穩定性保障方案,致使一樣的問題在同一產品或不一樣的產品中重複出現,最佳實踐不能應用在更多相同技術棧的產品中,不一樣產品造成的穩定性保障最佳實踐也不能互補。blog

爲此,基於過去的開發實踐以及基於 Kubernetes 的穩定性保障經驗,嘗試造成《Kuberentes 穩定性保障手冊》,將穩定性保障最佳實踐進行沉澱,使得人人對 Kubenretes 穩定性保障的理論造成全面的理解,相應的工具和服務成爲基礎設施,複用在相似技術棧的產品中,加速穩定性保障最佳實踐的傳播、迭代和應用。開發

本篇文章做爲《Kubernetes 穩定性保障手冊》第一篇文章,抽象穩定性保障中的核心內容,做爲穩定性保障最簡使用手冊。get

極簡手冊目標

  • 1min 理解穩定性保障目標
  • 3min 把握穩定性保障全局視圖
  • 一站查找穩定性保障推薦工具或服務

穩定性保障目標

  • 知足服務或產品對穩定性的訴求
  • 加速服務或產品的迭代

穩定性保障檢查項

1.jpg
2.jpg
3.jpg

穩定性保障級別

4.jpg

實踐

方法論

全局視圖

實踐流程:產品

  1. 整理運行鏈路圖,標記鏈路是不是關鍵鏈路
  2. 基於運行鏈路圖,進行可觀測性配置
  3. 基於鏈路重要程度,進行可控性治理

爲了下降實踐的成本,須要把握雲產品中的元素及交互關係,從基礎的元素和交互方面解構複雜系統:it

  • 元素 (2 類)class

    • 雲產品組件
    • 雲產品
  • 交互 (2 類,共 3 種場景)
    • 雲產品內部
      • 組件自身
      • 組件與組件之間
    • 雲產品之間
      • 雲產品與雲產品之間

以下圖:基礎

5.png

隨着元素數量交互關係的增多,系統會逐步變得複雜,穩定性保障面臨的挑戰也會愈來愈大,要避免引入非必要的複雜性。

所以,須要先梳理清楚當前的運行鏈路圖,進行鏈路重要性分析,並整理組件大圖,判斷組件的爆炸半徑。在此基礎上,還須要進行參與人員的 review,避免在人員的投入方面存在單點風險。

運行鏈路圖示例:

6.png

鏈路重要性示例:

7.png

雲產品間交互示例:

8.png

基於上述對系統複雜度、運行鏈路的分析,面對穩定性保障的問題域,能夠有效提出、落地解決方案。

問題處理

實踐流程:

  1. 長期維護角色列表、功能流程圖、運行鏈路圖
  2. 在多個分級的「告警羣」中感知問題的發生和恢復
  3. 在惟一的「問題處理羣」中處理問題和覆盤問題

對於複雜的系統,一般會有以下的角色關係:

9.png

梳理清楚每層的角色,並使得參與同窗能夠方便查找目標同窗,會縮短問題處理時間。

問題域

概述

10.png

推薦

11.jpg
12.jpg
13.jpg
14.jpg

後續

對於《Kubernetes 穩定性保障手冊》,接下來會進行以下的章節細化,分別從方法論和工具/服務的角度進行總結,造成第一版後與你們分享,進行共建:

15.jpeg

相關文章
相關標籤/搜索