可伸縮架構

可伸縮架構

《可伸縮架構》 全稱《可伸縮架構:面向增長套用的高可用》,原作者Lee Atchison(李 艾奇遜),中文版由張若飛、張現雙譯,電子工業出版社2017年7月出版

內容提要

隨著網際網路的發展越來越成熟,流量和數據量飛速增長,許多公司的關鍵應用程式都面臨著伸縮性的問題,系統變得越來越複雜和脆弱,從而導致風險上升、可用性降低。《可伸縮架構:面向增長套用的高可用》是一本實踐指南,讓IT、DevOps和系統穩定性管理員能夠了解到,如何避免應用程式在發展過程中變得緩慢、數據不一致或者徹底不可用等問題。規模增長並不只意味著處理更多的用戶,還包括管理更多的風險和保證系統的可用性。作者Lee Atchison 在可用性、風險管理、服務和微服務、擴展應用程式和雲服務方面提出了一些技巧,使得我們在構建各類應用程式時,既能夠保證產品的質量,又能夠處理海量的流量、數據以及需求。

如果你管理著軟體開發人員、系統可靠性工程師、DevOps工程師,或者你經營著一個擁有大規模應用程式和系統的機構,《可伸縮架構:面向增長套用的高可用》中所提供的建議和指導都能夠幫助你,讓你的系統運行得更加平穩和可靠。

目錄

序 xv

前言 xvii

第Ⅰ部分可用性

第 1章 什麼是可用性 2

可用性與可靠性 3

什麼導致了低可用性 4

第 2章 提高應用程式可用性的五個要點 6

要點 1:時刻考慮應對故障 7

要點 2:時刻考慮如何伸縮 8

要點 3:緩和風險 9

要點 4:監控可用性 10

要點 5:以預測和確定的方式來應對可用性問題 11

做好準備 12

第 3章 測量可用性 13

N個 9 14

-- 什麼樣的可用性是合理的 14

不要上當 14

通過數字來體現可用性 15

第4 章 提高下降的可用性 16

測試並跟蹤當前的可用性 17

將手動流程自動化 17

-- 自動化部署 18

-- 配置管理 18

-- 更改實驗和高頻次更改 19

-- 自動化的變更完備性測試 20

改進你的系統 20

不斷變化和發展中的應用程式 20

時刻關注可用性 21

第Ⅱ部分 風險管理

第 5章 什麼是風險管理. 24

管理風險 25

識別風險 25

消除最嚴重的風險 26

風險緩和 26

定期檢查 27

對風險管理的總結 27

第 6章 可能性與嚴重性. 28

10佳列表:低可能性,低嚴重性 29

訂單資料庫:低可能性,高嚴重性 29

自定義字型:高可能性,低嚴重性 30

T恤圖片:高可能性,高嚴重性 31

第 7章 風險模型 32

風險模型的作用域 34

創建風險模型 34

-- 通過頭腦風暴建立風險列表 35

-- 填寫可能性和嚴重性欄位 36

-- 風險項詳情 37

-- 緩和計畫 37

-- 觸發計畫 37

使用風險模型來制訂計畫 37

維護風險模型 38

第 8章 風險緩和 40

恢復計畫 41

容災計畫 42

改進我們的風險狀況 43

第 9章 比賽日 44

預發布環境和生產環境. 44

在生產環境中舉行比賽日的擔心 46

比賽日測試 47

第 10章 構建低風險系統 48

冗餘 48

冪等接口示例 49

增加了複雜性的冗餘改進 49

獨立性 50

安全 51

簡單性 51

自修復 52

運維流程 53

第Ⅲ部分 服務和微服務

第 11章 為什麼使用服務. 56

單體應用程式 56

基於服務的應用程式 57

所有權收益 58

規模收益 60

第12 章 使用微服務 62

如何定義服務 63

-- 深入了解服務 63

-- 指導原則 1:特定的業務需求 63

-- 指導原則 2:清晰和獨立的團隊所有權 64

-- 指導原則 3:天然隔離的數據 65

-- 指導原則 4:共享的能力 /數據 67

-- 多種原因 67

過猶不及 68

適當的平衡 69

第 13章 處理服務故障 70

級聯式的服務故障 70

如何回響服務故障 71

-- 可預測的回響 72

-- 可理解的回響 73

-- 合理的回響 73

如何確定故障 74

適當的行為 76

-- 優雅降級 76

-- 優雅補償 77

-- 儘早失敗 77

-- 用戶導致的問題 78

第4部分 如何讓應用程式具有伸縮性

第 14章 兩次失誤的高度 82

什麼是“兩次失誤的高度” 83

實踐中的“兩次失誤的高度” 83

-- 丟失一個節點 83

-- 升級過程中出現的問題 85

-- 數據中心恢復 86

-- 隱蔽的共享故障類型 88

-- 故障循環 89

管理你的應用程式 90

太空梭 90

第 15章 服務所有權 92

由獨立團隊負責的服務架構 92

STOSA應用程式和組織的好處 94

成為一個服務所有者意味著什麼 94

第 16章 服務分級. 97

套用複雜性 97

什麼是服務分級 98

為服務分配服務級別標籤 99

-- 1級服務 99

-- 2級服務 99

-- 3級服務 100

-- 4級服務 100

示例:線上商店 100

接下來呢 103

第 17章 使用服務分級. 104

期望 104

回響性 104

依賴 106

-- 關鍵依賴 106

-- 非關鍵依賴. 107

小結 107

第 18章 服務等級協定. 108

什麼是服務等級協定 108

外部 SLA與內部 SLA的對比 110

為什麼內部 SLA很重要 110

SLA可以作為一種信任的手段 111

SLA可以用於問題診斷 111

SLA 的性能檢測方法 112

-- 限定 SLA 113

-- 排名 SLA 113

-- 延遲分組 115

究竟應當定義多少內部 SLA,以及定義哪些內部 SLA 116

關於 SLA的其他評價 116

第Ⅴ部分 雲服務

第 19章 持續改進. 117

定期檢查你的應用程式 117

微服務 118

服務所有權 118

無狀態服務 118

數據在哪裡 118

數據分區 119

持續改進的重要性 121

第 20章 變化和雲服務.124

雲服務有哪些變化 124

-- 對基於微服務架構的認可 124

-- 更小、更專業的服務 125

-- 更專注於應用程式 125

-- 微型初創公司 125

-- 安全和合規已經成熟 125

變化還在繼續 125

第 21章 雲上的分布.127

AWS的架構 127

-- AWS區域 127

-- AWS可用區 128

-- 數據中心 128

總體架構概述 129

可用區不是數據中心 131

如何通過地理多樣性真正做到高可用 133

第 22章 託管的基礎設施. 134

基於雲的服務架構 134

-- 原生資源 135

-- 託管資源(基於伺服器) 136

-- 託管資源(不基於伺服器) 137

使用託管資源的影響 138

使用非託管資源的影響 138

監控和 CloudWatch 138

第 23章 雲資源分配. 140

固定額度的資源分配 140

-- 調整分配 141

-- 預留容量 142

基於使用量的資源分配 143

-- 基於使用量分配資源的好處 144

資源分配技術的利與弊 145

第 24章 可伸縮的計算選項. 146

雲伺服器 147

-- 優點 147

-- 缺點 147

-- 適用場景 147

計算分片 147

-- 優點 147

-- 缺點 148

-- 適用場景 148

動態容器 148

-- 優點 148

-- 缺點 149

-- 適用場景 149

微計算 149

-- 優點 149

-- 缺點 150

-- 適用場景 149

如何選擇 150

第 25章 AWS.Lambda. 151

使用 Lambda 151

-- 事件處理 151

-- 手機套用後台 152

-- 物聯網數據採集 153

Lambda的優缺點 154

第Ⅵ部分 總結

第 26章 融會貫通156

可用性 156

風險管理 157

服務 157

擴展 157

雲服務 158

面向可伸縮的架構 158

索引 159

相關詞條

熱門詞條

聯絡我們