天天看點

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

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

作者 | 悟鵬

來源 |

阿裡巴巴雲原生公衆号

Kubernetes 在生産環境中的采用率越來越高,複雜度越來越高,由此帶來的穩定性保障的挑戰越來越大。

對于基于 Kubernetes 的雲産品,穩定性保障已成為基本訴求,穩定性缺陷會給産品帶來巨大的損失,如使用者流失、使用者信心下降、産品疊代速度變慢等。

雖然基于 Kubernetes 的穩定性保障很重要,但業界缺少基于實踐的标準化穩定性保障方案,導緻同樣的問題在同一産品或不同的産品中重複出現,最佳實踐不能應用在更多相同技術棧的産品中,不同産品形成的穩定性保障最佳實踐也不能互補。

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

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

極簡手冊目标

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

穩定性保障目标

  • 滿足服務或産品對穩定性的訴求
  • 加速服務或産品的疊代

穩定性保障檢查項

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

穩定性保障級别

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

實踐

方法論

全局視圖

實踐流程:

  1. 整理運作鍊路圖,标記鍊路是否是關鍵鍊路
  2. 基于運作鍊路圖,進行可觀測性配置
  3. 基于鍊路重要程度,進行可控性治理

為了降低實踐的成本,需要把握雲産品中的元素及互動關系,從基礎的元素和互動方面解構複雜系統:

  • 元素 (2 類)
    • 雲産品元件
    • 雲産品
  • 互動 (2 類,共 3 種場景)
    • 雲産品内部
      • 元件自身
      • 元件與元件之間
    • 雲産品之間
      • 雲産品與雲産品之間

如下圖:

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

随着元素數量和互動關系的增多,系統會逐漸變得複雜,穩定性保障面臨的挑戰也會越來越大,要避免引入非必要的複雜性。

是以,需要先梳理清楚目前的運作鍊路圖,進行鍊路重要性分析,并整理元件大圖,判斷元件的爆炸半徑。在此基礎上,還需要進行參與人員的 review,避免在人員的投入方面存在單點風險。

運作鍊路圖示例:

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

鍊路重要性示例:

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

雲産品間互動示例:

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

基于上述對系統複雜度、運作鍊路的分析,面對穩定性保障的問題域,可以有效提出、落地解決方案。

問題處理

  1. 長期維護角色清單、功能流程圖、運作鍊路圖
  2. 在多個分級的「告警群」中感覺問題的發生和恢複
  3. 在唯一的「問題處理群」中處理問題和複盤問題

對于複雜的系統,通常會有如下的角色關系:

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

梳理清楚每層的角色,并使得參與同學可以友善查找目标同學,會縮短問題處理時間。

問題域

概述

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

推薦

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

後續

對于《Kubernetes 穩定性保障手冊》,接下來會進行如下的章節細化,分别從方法論和工具/服務的角度進行總結,形成初版後與大家分享,進行共建:

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

繼續閱讀