跳至主要內容
ESC
跳到課程內容
解決方案架構設計 需求分析與架構決策:先把模糊期待變成可驗證條件
0%
5 / 25 中級 35 分鐘 00:00

需求分析與架構決策:先把模糊期待變成可驗證條件

從業務結果、功能與非功能需求、SLO、RTO/RPO 到 TCO,建立能說明取捨的架構決策流程。

2026年3月13日 Updated: 2026年7月17日

「系統要快、不能停、資料要安全,而且預算不能增加。」

這種需求在會議上很常見,但還不能拿來選服務。架構師要做的第一件事,是把形容詞改成能量測、能測試,也能排出優先順序的條件。

把業務結果、功能、非功能需求、限制與未知轉成量測條件、候選方案與 ADR 的流程圖

圖解:先把需求分層,再用 SLO、RTO、RPO 與風險指標量化;候選方案要在同一組基準上比較,最後把理由、代價與重新檢視條件寫進 ADR。

一份需求至少要分五層

1. 業務結果

先問專案為什麼存在:

  • 要增加多少轉換率?
  • 要在什麼日期前退出資料中心?
  • 要把新市場上線時間縮短多少?
  • 哪種事故會造成合約、營收或信任損失?

「導入 Kubernetes」不是業務結果;「讓團隊能每週安全發布」才是。

2. 功能需求

系統要完成什麼工作,例如:

  • 使用者能建立與取消訂單
  • 財務能追蹤每筆退款
  • 客服能查看訂單事件
  • 系統能接收合作夥伴 Webhook

功能需求說明行為,不先指定產品。

3. 非功能需求

非功能需求描述品質:

  • 可用性
  • 延遲與吞吐
  • 一致性
  • 擴展性
  • 安全與隱私
  • 可維護性
  • RTO 與 RPO
  • 成本上限
  • 永續性

「高效能」應改成「在每秒 2,000 筆請求時,P95 延遲低於 300 ms」這類可測條件。

4. 限制

限制是不能隨意改的邊界,例如:

  • 必須在某日期前完成
  • 只能使用核准區域
  • 軟體授權綁定特定環境
  • 團隊目前沒有 Kubernetes 維運能力
  • 必須與既有身分或網路整合

要確認它真的是硬性限制,還是某人的偏好。兩者會導向完全不同的設計。

5. 假設與未知

架構文件應明確列出:

  • 目前流量資料是否可信?
  • 成長預估來自哪裡?
  • 法規解讀是否已由適當團隊確認?
  • 下游 API 有沒有 SLA?
  • 遷移期間是否允許短暫唯讀?

沒有寫下來的假設,最後通常會變成事故時才被發現的需求。

SLI、SLO 和 SLA

名稱用途例子
SLI實際量測服務表現的指標成功請求比例、P99 延遲
SLO團隊希望 SLI 在一段時間內達到的目標30 天內 99.95% 合格請求
SLA對客戶的合約承諾與未達成後果低於承諾門檻時提供 Service Credit

SLA 不必然等於 SLO。團隊通常讓內部目標比合約承諾更嚴格,保留處理問題的空間。

先定義「可用」是什麼

首頁回傳 200,但使用者不能付款,算可用嗎?

好的可用性 SLI 應該接近使用者結果,例如「有效結帳請求在 2 秒內成功完成的比例」,而不是只看 VM 有沒有開機。

可用性百分比換算出的停機時間只是數學結果,不會自動告訴你要單區域還是多區域。還要看:

  • 衡量窗口
  • 計畫性維護是否納入
  • 哪些請求算有效
  • 依賴服務的可靠性
  • 故障模式與復原方式
  • 業務可以接受的降級

Error Budget

如果 SLO 是 99.9%,剩餘的 0.1% 就是 Error Budget。它能幫產品與 SRE 討論:目前可以承擔多少變更風險,還是該先停止發布、修復可靠性。

Error Budget 不是允許團隊故意製造故障,而是把「功能速度和可靠性」的拉扯變成可觀察的決策。

RTO 和 RPO 要搭配故障情境

  • RTO:中斷後,服務最晚多久要恢復。
  • RPO:恢復時,最多能接受遺失多少時間範圍的資料。

同一個系統可能需要多組目標:

故障可能的 RTO/RPO 思考
單一實例失效自動重建,通常不應遺失持久資料
錯誤部署快速回退,資料 Schema 要能相容
區域中斷是否要切到另一區域,切換由誰決定
人為刪除依備份與還原速度,不可只靠同步副本
勒索或憑證外洩需要隔離、調查與乾淨還原點

只寫「RTO 15 分鐘」仍不完整。必須說是哪種故障、從哪個時間點開始計算,以及怎麼驗證。

合規需求不能用產業關鍵字猜

HIPAA、GDPR、PCI DSS 和各地個資法的要求不同,而且適用性取決於資料、角色、流程、合約和法律解讀。

架構師應該:

  1. 盤點受規範資料和資料流。
  2. 和法務、隱私、安全及稽核人員確認適用要求。
  3. 檢查使用的 Google Cloud 服務是否在相關合規範圍。
  4. 把資料位置、保留、刪除、金鑰與稽核要求寫成控制。
  5. 保存證據並定期驗證。

不要自行推導「使用者在歐盟,所以所有資料一定要留在歐盟」,也不要宣稱「用了 CMEK 就符合某法規」。雲端提供控制,組織仍要正確配置和操作。

Trade-off 要有比較基準

可以先建立決策表:

評估條件權重或優先級方案 A方案 B證據
達成 P99 延遲必須待測待測負載測試
RPO 小於 5 分鐘必須符合不符合產品文件、演練
每月成本上限試算值試算值真實流量與定價
團隊維運負擔On-call 與技能盤點
退出與遷移難度PoC、資料匯出測試

權重不是為了把架構假裝成精密數學。它的用途是讓利害關係人看見:大家是否真的同意什麼最重要。

CAP 定理不要變成產品標籤題

分散式系統發生網路分區時,不可能同時保證每個請求都成功和所有讀取都立即一致。實際產品還會提供不同讀取、複寫與路由模式。

所以不要只背「Firestore 是 CP、Bigtable 是 AP」。架構師要問的是:

  • 這個操作需要哪種一致性?
  • 發生分區時,要拒絕請求、回傳舊資料,還是降級?
  • 使用的產品配置實際提供什麼語意?
  • 應用能否辨認資料版本或處理衝突?

Spanner 預設提供外部一致性;Firestore 提供強一致性;Bigtable 則要依單叢集、複寫與 App Profile 判斷。這些產品行為比兩個字母更有用。

TCO 和 ROI 必須有基準

TCO 要算什麼?

  • 雲端運算、儲存、網路與代管服務
  • 地端硬體、機房、電力和維護合約
  • 軟體與資料庫授權
  • 遷移、雙跑、測試和訓練
  • 維運、On-call 與事件處理人力
  • 備份、資安、合規與支援
  • 結束舊合約或資料移出的成本

只比較 VM 月費,通常會低估其中一邊。

ROI 要連回業務結果

可以衡量:

  • 發布前置時間是否縮短
  • 事件恢復時間是否下降
  • 新市場是否提早上線
  • 過去因容量不足失去的交易是否減少
  • 團隊花在例行維護的時間是否降低

「上雲後節省 30%」必須有目前成本、預期用量、計算期間和風險範圍。沒有基準的百分比只是願望。

用 ADR 保存決策

Architecture Decision Record 可以很短:

# 決策:訂單資料庫的區域策略

## 背景

使用者分布、交易模式、SLO、RTO/RPO、資料位置限制。

## 候選方案

A. 單區域 HA
B. 雙區域或多區域
C. 依市場分區

## 決策

選擇哪個方案,以及最重要的三個理由。

## 代價

成本、延遲、營運複雜度和退出限制。

## 待驗證

負載測試、故障演練、成本試算、法務確認。

## 重新檢視條件

流量、法規、事故或成本達到什麼門檻時重開決策。

這讓後來的人知道「當時為什麼這樣做」,而不是把舊架構當成永遠正確。

PCA 案例題的閱讀順序

目前標準考試有四個可能案例,每次出現兩個。可以用四步讀法:

  1. 先看商業需求:公司要達成什麼結果?
  2. 圈出硬性限制:期限、法規、既有投資與明確技術要求。
  3. 對照現況痛點:題目是否要求保留、遷移或淘汰某部分?
  4. 再比較選項:哪個最直接滿足題目,不額外發明需求?

考試題沒有提供的資訊,不要自行補成選答案的理由。實務上則相反:資訊不足就要追問或做 PoC,而不是硬選。

練習:線上教育平台

目前已知:

  • 使用者在台灣和東南亞
  • 活動期間同時在線人數大增
  • 有直播、錄播和互動 API
  • 團隊三人,沒有 Kubernetes 經驗
  • 希望六個月內完成第一階段遷移
  • 管理層希望降低成本

先不要畫架構。列出至少這些未知:

  • 現在各功能的流量、延遲和可用性基準
  • 直播是自建傳輸,還是使用外部平台
  • 學員、付款與影音資料的分類和法律要求
  • 現有資料庫引擎、大小、交易與停機窗口
  • 可接受的 RTO/RPO
  • 目前 TCO 和預算上限
  • 團隊是否能在遷移期間雙跑
  • 哪些元件能先 Rehost,哪些值得 Replatform

Cloud Run 可能是互動 API 的候選方案,但要在 Concurrency、連線、延遲和成本測試後才能決定。資料庫也不能只憑「團隊小」就選 Cloud SQL。

這才是架構分析:先承認不知道什麼,再設計取得證據的方法。

課後檢查

你應該能回答:

  • 業務結果、功能需求、非功能需求和限制有什麼差別?
  • 為什麼可用性百分比不能直接對應某種部署拓撲?
  • RTO/RPO 為什麼要綁定故障情境?
  • 合規需求應由哪些角色一起確認?
  • 一份 ADR 至少要留下哪些資訊?

下一課會進入遷移規劃,把需求、依賴、遷移批次和回退條件串成可執行的路線。

官方資料

徽章解鎖!