可伸縮架構(第2版):雲環境下的高可用與風險管理

張若飛

立即出貨

買這商品的人也買了...

相關主題

商品描述

本書是一本關於現代化軟件架構的書。書中介紹瞭如何構建和更新你的關鍵應用程序來滿足日益苛刻的數字化客戶的需求。書中還介紹瞭如何實現高可用性,如何使用現代化的開發和運維技術來架構應用程序,如何組織開發團隊幫助應用程序和業務獲得成功,如何將系統擴展到最大規模,以及如何利用雲計算的可用資源來迎接上述挑戰。本書的目標讀者包括構建和管理大規模應用程序和系統的軟件工程師、架構師、技術經理及總監。如果你管理著軟件開發人員、系統可靠性工程師、DevOps 工程師,或者經營著一個擁有大規模應用程序和系統的機構,本書中所提供的建議和指導都能夠幫助你,讓你的系統運行得更加平穩和可靠。

目錄大綱

序.................................................................................. xvii 前言................................................................................ xx 第Ⅰ部分 原則 1. 可用性 :維護現代化應用程序的可用性 第 1 章 理解、測量和提高可用性............................................... 2 可用性與可靠性 ............................................................................................................3 什麽導致了低可用性 ....................................................................................................4 測量可用性 ...................................................................................................................5 N 個 9 ....................................................................................................................6 計劃中的故障也依然是故障 .................................................................................6 通過數字來體現可用性 .........................................................................................7 提高下降的可用性 ........................................................................................................7 測試並跟蹤當前的可用性 .....................................................................................8 將手動流程自動化 ................................................................................................9 改進你的系統 ...................................................................................................... 12 時刻關註不斷變化和發展中的應用程序的可用性 .............................................. 12 提高應用程序可用性的 5 個要點 ................................................................................ 12 要點 1 :時刻考慮應對故障 ................................................................................ 13 要點 2 :時刻考慮如何伸縮 ................................................................................ 14 要點 3 :緩和風險 ............................................................................................... 15 要點 4 :監控可用性............................................................................................ 17 要點 5 :以可預期及明確的方式來處理可用性問題 ........................................... 18 做好準備 ..................................................................................................................... 19 第 2 章 兩次失誤的高度——預留從錯誤中恢復的空間. .................... 20 兩次失誤的高度 .......................................................................................................... 21 場景 1 :丟失一個節點 ........................................................................................ 21 場景 2 :升級過程中出現的問題 ......................................................................... 24 場景 3 :數據中心恢復 ........................................................................................ 25 場景 4 :隱蔽的共享故障類型 ............................................................................. 27 場景 5 :故障循環 ............................................................................................... 28 管理你的應用程序 ...................................................................................................... 28 航天飛機 ..................................................................................................................... 29 第Ⅱ部分 原則 2. 現代化應用程序架構 :使用服務 第 3 章 使用服務. ............................................................... 32 單體應用程序與面向服務的應用程序 ........................................................................ 32 所有權收益.......................................................................................................... 34 規模收益 ............................................................................................................. 36 拆分服務 ..................................................................................................................... 37 如何定義服務 ...................................................................................................... 37 深入瞭解服務 ............................................................................................................. 38 指導原則 1 :特定的業務需求 ............................................................................. 38 指導原則 2 :清晰和獨立的團隊所有權 .............................................................. 39 指導原則 3 :天然隔離的數據 ............................................................................. 40 指導原則 4 :共享的能力 / 數據 .......................................................................... 41 多種原因 ............................................................................................................. 42 過猶不及 ..................................................................................................................... 43 找到適當的平衡 .......................................................................................................... 44 第 4 章 服務和數據............................................................. 45 無狀態服務 — 沒有數據的服務 ................................................................................ 45 有狀態服務 — 有數據的服務 ................................................................................... 45 數據分區 ..................................................................................................................... 46 及時處理增長的煩惱 .................................................................................................. 49 第 5 章 處理服務故障.......................................................... 50 級聯式的服務故障 ...................................................................................................... 50 如何響應服務故障 ...................................................................................................... 51 可預測的響應 ...................................................................................................... 52 可理解的響應 ...................................................................................................... 53 合理的響應.......................................................................................................... 53 如何確定故障 ............................................................................................................. 54 適當的行為 ................................................................................................................. 56 優雅降級 ............................................................................................................. 56 優雅補償 ............................................................................................................. 57 盡早失敗 ............................................................................................................. 57 用戶導致的問題 .................................................................................................. 58 小結 ............................................................................................................................ 59 第Ⅲ部分 原則 3. 組織 :為現代化 應用程序建立可伸縮性的組織 第 6 章 服務所有權——STOSA............................................. 62 由獨立團隊負責的服務架構 ....................................................................................... 62 STOSA 應用程序和組織的好處 .................................................................................. 64 “所有”一個服務意味著什麽 ..................................................................................... 64 使用核心團隊和服務 .................................................................................................. 67 小結 ............................................................................................................................ 68 第 7 章 服務分級. ............................................................... 69 應用程序的復雜性 ...................................................................................................... 69 什麽是服務分級 .......................................................................................................... 70 為服務分配服務級別標簽 ................................................................................... 71 示例 :在線商店 .......................................................................................................... 73 使用服務分級 ............................................................................................................. 75 期望 ..................................................................................................................... 76 響應性 ................................................................................................................. 76 依賴 ..................................................................................................................... 77 小結 ............................................................................................................................ 78 第 8 章 服務等級協議.......................................................... 79 什麽是服務等級協議 .................................................................................................. 80 外部 SLA 與內部 SLA 的對比 .................................................................................... 82 內部 SLA 很重要 ................................................................................................. 82 SLA 可以用於問題診斷 .............................................................................................. 83 SLA 的性能檢測方法 .................................................................................................. 84 限定 SLA ............................................................................................................. 85 排名 SLA ............................................................................................................. 85 SLA 的條件 ......................................................................................................... 88 究竟應當定義多少內部 SLA,以及定義哪些內部 SLA ............................................. 88 為什麽內部 SLA 很重要 ............................................................................................. 89 第Ⅳ部分 原則 4. 風險 :現代化應用程序的風險管理 第 9 章 如何在設計可伸縮架構時使用風險管理............................ 93 識別風險 ..................................................................................................................... 93 消除最嚴重的風險 .............................................................................................. 94 風險緩和 ............................................................................................................. 94 定期檢查 ............................................................................................................. 95 對風險管理的總結 .............................................................................................. 95 可能性與嚴重性 .......................................................................................................... 95 十佳列表 :低可能性,低嚴重性 ........................................................................ 96 訂單數據庫 :低可能性,高嚴重性 .................................................................... 97 自定義字體 :高可能性,低嚴重性 .................................................................... 98 T 恤圖片 :高可能性,高嚴重性 ........................................................................ 98 風險模型 ..................................................................................................................... 99 風險模型的作用域 ............................................................................................ 101 創建風險模型 .................................................................................................... 102 使用風險模型來制訂計劃 ................................................................................. 104 維護風險模型 .................................................................................................... 105 風險緩和 ................................................................................................................... 106 恢復計劃 ................................................................................................................... 108 容災計劃 ................................................................................................................... 109 改進我們的風險狀況 ................................................................................................ 109 第 10 章 比賽日. ...............................................................110 預發布環境和生產環境............................................................................................. 110 預發布 / 測試環境 ............................................................................................. 110 生產環境 ............................................................................................................111 在生產環境中舉行比賽日的擔心 .............................................................................. 112 小結 .......................................................................................................................... 113 第 11 章 構建低風險系統.....................................................114 技巧 1 :介紹冗餘 ..................................................................................................... 115 冪等接口 ........................................................................................................... 115 增加了復雜性的冗餘改進 ................................................................................. 116 技巧 2 :理解獨立性 ................................................................................................. 117 技巧 3 :管理安全性 ................................................................................................. 118 技巧 4 :鼓勵簡單性 ................................................................................................. 118 技巧 5 :自我修復 ..................................................................................................... 119 技巧 6 :標準化運維流程 .......................................................................................... 120 小結 .......................................................................................................................... 121 第Ⅴ部分 原則 5. 雲計算 :利用雲計算 第 12 章 使用雲計算來設計可伸縮架構.....................................125 雲計算成熟度的 6 個級別 ......................................................................................... 126 級別 1 :體驗雲計算.......................................................................................... 126 級別 2 :確認雲計算.......................................................................................... 127 級別 3 :使用雲計算中的服務器和應用程序 .................................................... 127 級別 4 :使用增值的托管服務 ........................................................................... 127 級別 5 :使用雲特有的服務 .............................................................................. 128 級別 6 :全面擁抱雲計算 .................................................................................. 128 組織與應用程序的成熟度級別對比 .................................................................. 128 使用雲計算時可能犯的錯誤 ..................................................................................... 129 陷阱 1 :不相信雲安全 ...................................................................................... 129 陷阱 2 :直接遷移到雲計算 .............................................................................. 129 陷阱 3 :無服務器的誘惑 — 太過於依賴炒作................................................. 130 何時以及如何使用多個雲計算平臺 .......................................................................... 131 如何定義我們所說的多個雲平臺 ...................................................................... 131 選擇哪個模型?哪種雲? ................................................................................. 134 雲計算小結 ............................................................................................................... 135 第 13 章 雲計算改變的 5 個行業趨勢.......................................136 雲計算有哪些變化 .................................................................................................... 136 變化 1 :對基於微服務架構的認可 ................................................................... 136 變化 2 :更小、更專業的服務 ........................................................................... 137 變化 3 :更專註於應用程序 .............................................................................. 137 變化 4 :微型初創公司 ...................................................................................... 137 變化 5 :安全和合規已經成熟 ........................................................................... 137 變化還在繼續 ........................................................................................................... 138 第 14 章 SaaS 和租賃類型..................................................139 比較托管主機和不同類型的 SaaS............................................................................. 139 托管主機 ........................................................................................................... 140 多租戶 SaaS ...................................................................................................... 140 單租戶 SaaS ...................................................................................................... 141 混合不同類型的 SaaS ............................................................................................... 142 常見的 SaaS 的特點 .................................................................................................. 142 SaaS 與托管主機 ....................................................................................................... 142 小結 .......................................................................................................................... 143 第 15 章 在 AWS 雲上分發你的應用程序.................................144 AWS 的架構 .............................................................................................................. 144 AWS 區域 .......................................................................................................... 145 AWS 可用區 ...................................................................................................... 145 數據中心 ........................................................................................................... 146 總體架構概述 ........................................................................................................... 146 可用區不是數據中心 ................................................................................................ 149 如何通過地理多樣性真正做到高可用 ...................................................................... 151 映射多個賬戶中的可用區 ................................................................................. 151 分發應用程序 ........................................................................................................... 152 第 16 章 托管的基礎設施.....................................................153 基於雲的服務架構 .................................................................................................... 153 原生資源 ........................................................................................................... 154 基於服務器的托管資源 ..................................................................................... 156 無服務器托管資源 ............................................................................................ 157 使用托管資源和非托管資源的影響 .......................................................................... 158 小結 .......................................................................................................................... 159 第 17 章 雲資源分配..........................................................160 基於使用量的資源分配............................................................................................. 161 固定額度的資源分配 ................................................................................................ 162 調整分配 ........................................................................................................... 164 資源容量的自動分配 ......................................................................................... 164 自動分配的問題 ................................................................................................ 164 動態分配,動態成本 ......................................................................................... 165 資源分配技術的利與弊............................................................................................. 166 第 18 章 無服務器計算和函數即服務.......................................167 示例 1 :事件處理 ..................................................................................................... 168 示例 2 :手機應用後端 ............................................................................................. 168 示例 3 :物聯網數據採集 .......................................................................................... 169 FaaS 的優缺點 .......................................................................................................... 170 無服務器炒作和 FaaS 的未來 ................................................................................... 171 第 19 章 邊緣計算.............................................................172 如今的邊緣計算 ........................................................................................................ 173 為什麽我們要關心邊緣計算 ..................................................................................... 173 與雲計算相比,邊緣計算應該是什麽 ...................................................................... 174 如何決定把什麽放在邊緣?以無人駕駛汽車為例 ............................................ 174 邊緣計算的可伸縮與雲計算的可伸縮不同 ............................................................... 176 使用邊緣計算和雲計算的標準 .......................................................................... 178 邊緣計算成功的 8 個關鍵點 ..................................................................................... 178 #1 :知道什麽時候應該使用邊緣計算 .............................................................. 179 #2 :不要忽略邊緣計算中的 DevOps 原則 ........................................................ 179 #3 :制定一個高度分佈式的部署策略 .............................................................. 179 #4 :盡可能減少版本控制 ................................................................................. 179 #5 :減少每個節點的配置項 ............................................................................. 180 #6 :伸縮也是邊緣計算要面對的一個問題,不僅僅是雲計算 ......................... 180 #7 :重視監測和分析......................................................................................... 181 #8 :邊緣計算不是魔法 ..................................................................................... 181 邊緣計算小結 ........................................................................................................... 181 第 20 章 地理位置對雲計算的影響..........................................182 雲無處不在,只不過影響的層次不同 ...................................................................... 182 替換心態影響你如何接受雲計算 .............................................................................. 183 哪個雲服務商最重要 ................................................................................................ 184 重要的技術區別 ........................................................................................................ 184 數據主權是普遍的 .................................................................................................... 185 我的看法 ................................................................................................................... 185 第Ⅵ部分 總結 第 21 章 綜述..................................................................188 原則 #1 — 可用性 ................................................................................................... 188 原則 #2 — 架構 ....................................................................................................... 189 原則 #3 — 組織 ....................................................................................................... 189 原則 #4 — 風險 ....................................................................................................... 189 原則 #5 — 雲計算 ................................................................................................... 190 面向可伸縮架構 ........................................................................................................ 190