容量規劃為何關鍵#

容量規劃(capacity planning)是評估硬體與軟體要多少容量才能滿足應用需求的過程。在 SRE 與 SDLC 視角,它還涵蓋每位工程師的時間與工作量。

「規劃做得好等於戰役打贏一半。」這句話用在 SDLC 上格外貼切——尤其敏捷團隊必須能快速回應客戶需求變化。

三種容量類型#

  • 軟硬體容量:定義伺服器數量、CPU、記憶體、所選軟體等硬體與軟體規格
  • 人力容量:估算每團隊投入時數與所需技能
  • 產品容量:預測客戶需求趨勢,確保有資源支撐新功能;同時要求產品設計具備未來可移植性

長短期容量規劃#

組織通常把容量規劃拆成兩種視角:

  • 長期容量規劃:高階規劃未來可能的系統演進與團隊擴張,產品容量屬此類
  • 短期容量規劃:定義短期里程碑,盤點系統與團隊容量;軟硬體與人力容量屬此類,每個 SDLC 階段都應做

Agile 的 Program Increment(PI)週期通常 8 ~ 12 週。每個 PI 開始時都需重新做短期容量規劃。

容量與成本的連動#

容量規劃與成本管理密不可分:

  • 招募具備正確技能的人員 → 人力成本
  • 採購伺服器與授權軟體 → 基礎設施成本
  • 評估辦公空間、筆電等周邊資源 → 營運成本
  • 評估開源替代品可能省下的授權費用

組織通常設置獨立的技術評估團隊,從工作量、工具、基礎設施、辦公地點、設備等全方位評估成本。

三種容量規劃策略#

雖然源自製造業,這些策略也可套用到軟體開發:

  • 滯後策略(Lag strategy):等需求成長後才追加容量

    • 預先準備完成專案所需容量,加上一點緩衝預算
    • 適用於需求增長有固定時程、波動有限的場景,如銀行投資產品上線
    • 缺點:需求暴增時補容會有時間落差
  • 領先策略(Lead strategy):依歷史資料與研究預先擴充

    • 在初期就上多餘人力與基礎設施
    • 適用於需求劇烈變動的零售類應用
    • 風險:若預測落空,多買的資源會浪費
  • 配對策略(Match strategy):滯後 + 領先的折衷

    • 持續分析當下與短期未來需求並動態調整
    • 多在 SDLC 各階段檢視趨勢、視情況提早擴充

成本管理的最佳實踐#

  • 預留容量(Capacity reserve):保留緩衝以應對未來需求;用不上時可挪到其他專案
  • 開發策略
    • 程式碼框架要易於水平與垂直擴充、可整合新框架
    • 雲端原生時代要寫雲端不可知(cloud-agnostic)程式,方便未來搬遷
  • 成本管理
    • 從詳細設計開始考量何處可使用開源軟體
    • 不用的伺服器與工具要降規或退訂;可重新分配給其他專案
    • 評估虛擬辦公模式以降低實體成本
  • 人力管理:把 SRE 團隊的多元技能視為彈性資源
    • 50% 時間在運維,50% 在開發
    • 流量暴增時開發者可協助 SRE,反之亦然
  • 可觀測性(Observability):建立準確的告警,把警示數據轉化為歷史趨勢,協助未來容量預測

容量規劃不是一次性決策,而是持續的迭代。建立「告警 → 數據 → 預測」的閉環,才能讓容量規劃跟上業務節奏。