More Related Content Similar to SRE Study Notes - CH2,3,4 (20) More from Rick Hwang (20) SRE Study Notes - CH2,3,42. Chapter 2
The Production Environment at Google
From the Viewpoint of an SRE
2
https://research.google.com/pubs/105254.html
4. 資料中心 - 硬體
4
● 軟體服務器 (Server)
● 物理服務器 (Machine)
○ 10 台物理服務器組成一個 Rack
● 數台 Rack 組成一個 Row
● 一個或多個 Row 組成一個 Cluster (叢集)
● 多個 Cluster 組成一個資料中心 (Datacenter)
● 多個相鄰的資料中心組成一個園區 (Campus)
6. 資料中心 - 硬體
6
● Swtich 是 Google 自己做的 - 叫做 Jupiter
● 網路用 Clos 連接
● B4 基於 SDN (OpenFlow 協議) 建置,覆蓋全球
8. 物理服務器的系統軟體 - Borg
8
● Kubernates (K8s) 的前身
● Borg 負責執行 Job
● 每個 Job 由一個或多個 Task 組成
● Borg 自己的 DNS 系統:Borg Name Service (BNS)
● 負責分配資源給每個 Task,像是需要 2CPU + 2G RAM
● Borg 會自己處理故障的 Instance
10. 網路
● 基於 OpenFlow 協議的 SDN
● 沒有用高級的 Router
● 計算最佳路徑
● Borg 也負責分配網路頻寬 (Bandwith Enforcer, BwE)
10
11. 其他在資料中心裡的系統軟體
● Lock Service: Chubby - The Chubby lock service for loosely-coupled
distributed systems
● Monitoring and Alerting: Borgmon
● Software Infrastructure:
○ Remote Procedure Call (RPC) -> Stubby -> gRPC
○ Protocal Buffer: gRPC 傳輸格式,簡稱 Protobuf
● Development Environment:
○ 圍繞基礎建設,建構完整的開發環境
○ 工程師如果遇到工作項目之外的組建問題,可以修改這個問題,並且提出 CL (ChangeList)
○ CL 會被測試框架測試,如果破壞了其他工作,就會通報提交者。
○ CL 通過測試,會自動部署正式環境
11
16. 度量服務的風險 (Measuring Serivce Risk)
● 將所有淺在因素,縮減為單一性能指標
● 難以度量的,像是:用戶不滿、信任、品牌口碑、媒體報導
● 指標:計劃外停機
● 風險承受力指標:計劃外停機時間的可接受水平
○ 翻譯:能接受多久,非預期的停機時間?
16
一天 2.5M Request,一天要少於 250 個錯
不見得每個 Request 都是平等的
一年可用性 99.99% 最多可以停 52.56 分鐘
17. 17
SLA Downtime Day Hour Min
99% 1% 3.65 87.6 5,256
99.5% 0.5% 1.852 43.8 2,628
99.9% 0.1% 0.365 8.76 525.6
99.99% 0.01% 0.0365 0.876 52.56
99.999% 0.001% 0.00365 0.0876 5.256
99.9999% 0.0001% 0.000365 0.00876 0.5256
22. 基礎設施服務的風險容忍度
基礎設施會有多個用戶,每個用戶需求都不一樣。以 Bigtable 為例:
● 可用性目標水平
○ Bigtable 關注的是吞吐量 (throughput) ,而非可靠性
● 故障類型
○ Low latency / High throughput 是兩種不同用戶的需求,這兩種用戶的成功、失敗是相反的
● 成本
○ 建立兩個 Cluster: Low latency + high throughput
○ high throughput: 利用率高, 成本為 low latency 10%-50%
22
29. 服務品質術語: SLI / SLO / SLA
● Service Level Indicator (SLI):服務品質具體的量化指標
● Service Level Objectvie (SLO):SLI 的目標值、範圍值
● Service Level Agreement (SLA)
29
30. 服務品質具體的量化指標,像是:
○ request latency
○ error rate
○ system throughput: request per second (RPS), query per second (QPS)
○ availability: SRE 重視的 SLI
○ durability (持久性):資料能夠完整保存間
Service Level Indicator (SLI)
30
31. 服務品質目標值、範圍值:
● latency < 500ms
● error rate < 1 RPS
● throughput > 100 RPS
Service Level Objective (SLO)
31
ITIL: SLT (Service Level Target)
33. 故事:Chubby 計畫性內停機
● Chubby is Google’s lock service for loosely coupled distributed systems.
● 每個地理位置的服務都仰賴 Chubby
● Chubby 故障的頻率很低,導致其他人都以為他不會掛
● 但是 SRE 知道 Chubby 出問題會影響很多服務
● 解法:
○ SRE 保證達到一定的 SLO,但不會大幅度超越
○ 每季度,真實故障沒有將 SLO 可用指標降低,SRE 就會安排死給你看可控性故障,將服務停
機!
○ 找出對 Chubby 不合理的依賴
○ 強迫每個服務負責人要面對分散式系統的天生缺陷
33
36. 維運人員和最終用戶關心什麼
● 不需要把所有的指標 (Metric) 都定義為 SLI
● 代表性的健康指標 4~5 個就夠了
● SLI 常見的歸類
○ User-facing serving systems: availability, latency, throughput
■ 所有人都關心的
○ Storage systems: latency, availability, durability
○ Big data systems: data pipeline, throughtput, end-to-end latency
○ Correctness (正確性)
36
39. 指標標準化
標準化常見的 SLI,避免每次都重新評估
● Aggregation intervals: “Averaged over 1 minute”
● Aggregation regions: “All the tasks in a cluster”
● How frequently measurements are made: “Every 10 seconds”
● Which requests are included: “HTTP GETs from black-box monitoring jobs”
● How the data is acquired: “Through our monitoring, measured at the server”
● Data-access latency: “Time to last byte”
39
41. 目標的定義
● SLO 具體定義 (可以有多個)
○ 90% Get RPC < 1ms
○ 99% Get RPC < 10ms
○ 99.9% Get RPC < 100ms
● 如果同時有批次處理用戶,以及即時用戶,SLO 可以是:
○ 批次: 95% Set RPC < 1s
○ 即時: (99% Set RPC + RPC Loading < 1K) < 10m
● 再次強調: SLO 100% 是不合理,也是高成本的
41
42. SLO 的選擇
● Don’t pick a target based on current performance
○ 不能只看眼前,要從全局出發
● Keep it simple
○ 太複雜的匯總,會難以理解,同時會掩蓋系統性的變化
● Avoid absolutes (絕對值)
○ 要求擴展系統而沒有增加任何 latency ,或者永遠 Available 都是不切實際的
● Have as few SLOs as possible
○ 選擇足夠的 SLO 覆蓋系統屬性
● Perfection can wait (不完美也很美)
○ 隨著時間了解系統之後,進行 SLO 定義與調整。
42
43. 服務協議 (SLA) 實踐中的應用
● SLA 需要業務單位、法務單位選擇適合的『後果』條款
● 在 SLA 起草過程中,SRE 可以幫助理解 SLA 的 SLO 達標機率及難度
43
45. Q & A
AWS S3 的 11 個 9 是代表什麼?
● SLA
● SLO
● SLI
45