-
>
全國計算機等級考試最新真考題庫模擬考場及詳解·二級MSOffice高級應用
-
>
決戰行測5000題(言語理解與表達)
-
>
軟件性能測試.分析與調優實踐之路
-
>
第一行代碼Android
-
>
JAVA持續交付
-
>
EXCEL最強教科書(完全版)(全彩印刷)
-
>
深度學習
精通API架構:設計、運維與演進 版權信息
- ISBN:9787111757467
- 條形碼:9787111757467 ; 978-7-111-75746-7
- 裝幀:平裝-膠訂
- 冊數:暫無
- 重量:暫無
- 所屬分類:>>
精通API架構:設計、運維與演進 本書特色
大多數聯網的組織都在構建和運維 API,這是客戶開始與公司服務交互的門戶。設計、構建和管理這些關鍵程序會影響組織中從工程師和產品所有者到*高管理層的每一個人。但開發人員和解決方案架構師面臨的真正挑戰是從頭開始創建 API 平臺。通過本書,你將學習構建和測試 REST API 的策略,這些REST API 使用 API 網關在微服務級別組合產品。三位作者解釋了如何通過基礎架構微調幫助工程師團隊和組織平滑遷移到云,并創造使用服務網格等技術連接內部服務的機會。通過閱讀本書,你將:·學習構建 API 平臺的 API 基礎知識和架構模式。 ·使用實際示例來了解如何設計、構建和測試基于 API 的系統。·部署、運維和配置 API 平臺的關鍵組件。·根據案例研究合理使用 API 網關和服務網格。·了解 API 架構中的核心安全性和常見漏洞。·使用威脅建模以及 OAuth2 和 TLS 等技術保護數據和 API。·了解如何將現有系統向 API 和云架構演進。
精通API架構:設計、運維與演進 內容簡介
本書分為四部分,共十章,提供了關于設計、運維和演進API架構的全景圖。本書以一個虛擬的案例貫穿始終,即如何通過小步快跑的策略,將一個用三層架構方式設計的傳統應用系統迭代為一個基于API的現代架構。全書囊括了從設計、測試、運維、安全、部署和發布等整個軟件生命周期的各個環節,其中**部分介紹API的設計、構建和測試,第二部分介紹如何開展API流量管理,第三部分闡述API運維、發布和安全管理之道,第四部分介紹API架構的迭代演進。
精通API架構:設計、運維與演進 目錄
序1
前言3
第0章 導論11
0.1 架構之旅11
0.2 API簡介12
0.3 真實示例:會議系統案例研究13
0.3.1 會議案例研究中的 API 類型14
0.3.2 改進會議系統的原因15
0.3.3 從分層架構到API建模15
0.3.4 案例研究:演進步驟15
0.3.5 API 基礎設施和流量模式17
0.3.6 會議系統案例研究的路線圖17
0.4 使用C4圖表18
0.4.1 C4上下文關系圖18
0.4.2 C4容器圖18
0.4.3 C4 組件圖18
0.5 使用架構決策記錄19
0.5.1 參會者演進ADR20
0.5.2 精通API:ADR指南20
0.6 小結21
**部分 設計、構建和測試API
第1章 設計、構建和規范API25
1.1 案例研究:設計參會者API25
1.2 REST介紹26
1.2.1 通過示例介紹REST和HTTP26
1.2.2 Richardson成熟度模型27
1.3 RPC API介紹28
1.4 GraphQL簡要介紹29
1.5 REST API標準和結構29
1.5.1 集合和分頁31
1.5.2 過濾集合32
1.5.3 錯誤處理32
1.5.4 ADR指南:選擇API標準33
1.6 使用OpenAPI規范定義REST API33
1.7 OpenAPI規范的實際應用34
1.7.1 代碼生成34
1.7.2 OpenAPI驗證34
1.7.3 示例和模擬35
1.7.4 檢測變更35
1.8 API版本控制35
1.8.1 語義化版本控制36
1.8.2 OpenAPI規范和版本控制37
1.9 用gRPC實現RPC38
1.10 交互建模和API格式選擇40
1.10.1 高流量服務40
1.10.2 大尺寸交互負載40
1.10.3 HTTP/2的性能優勢41
1.10.4 舊格式處理41
1.11 指南:交互建模41
1.12 同時使用多個規范42
1.12.1 是否存在黃金規范42
1.12.2 合并規范的挑戰43
1.13 小結43
第2章 API接口測試45
2.1 本章的會議系統場景46
2.2 測試策略46
2.2.1 測試四象限47
2.2.2 測試金字塔48
2.2.3 用于測試策略的ADR指南50
2.3 契約測試50
2.3.1 契約測試的益處51
2.3.2 契約的實現方式51
2.3.3 ADR指南:契約測試55
2.4 API組件測試56
2.4.1 契約測試和組件測試的比較57
2.4.2 案例研究:用組件測試進行驗證57
2.5 API集成測試58
2.5.1 使用存根服務器的好處和方法59
2.5.2 ADR指南:集成測試60
2.5.3 容器化測試組件:Testcontainers61
2.5.4 案例研究:使用Testcontainers驗證集成61
2.6 端到端測試62
2.6.1 自動化端到端驗證63
2.6.2 端到端測試的類型64
2.6.3 ADR指南:端到端測試64
2.7 小結65
第二部分 API流量管理
第3章 API網關:入口流量管理69
3.1 API網關是唯一解決方案嗎69
3.2 指南:代理、負載均衡器或API網關70
3.3 案例研究:向消費者提供參會者服務71
3.4 什么是API網關71
3.5 API網關能提供哪些功能72
3.6 在哪里部署API網關72
3.7 API網關如何在網絡邊緣與其他技術集成73
3.8 為何使用API網關74
3.8.1 減少耦合:前端和后端之間的適配器/外觀75
3.8.2 簡化調用方式:聚合/轉換后端服務75
3.8.3 保護API免受過度使用和濫用:威脅檢測和防范76
3.8.4 了解API是如何被使用的:可觀測性77
3.8.5 將API作為產品進行管理:API生命周期管理78
3.8.6 商業化API:賬戶管理、計費和支付79
3.9 API網關的現代史80
3.9.1 20世紀90年代以后:硬件負載均衡器80
3.9.2 21世紀00年代以后:軟件負載均衡器80
3.9.3 21世紀00年代中期:應用程序交付控制器81
3.9.4 21世紀10年代初:**代API網關82
3.9.5 2015年以后:第二代API網關82
3.10 當前API網關分類83
3.10.1 傳統企業網關84
3.10.2 微服務/微網關84
3.10.3 服務網格網關84
3.10.4 不同類型API網關比較84
3.11 案例研究:使用API網關改進會議系統85
3.11.1 在Kubernetes中安裝Ambassador Edge Stack87
3.11.2 配置URL路徑到后端服務的映射87
3.11.3 使用基于主機的路由配置映射88
3.12 部署API網關:了解和管理故障88
3.12.1 API網關成為單點故障89
3.12.2 檢測問題并接管89
3.12.3 解決事故和故障89
3.12.4 防范風險90
3.13 常見的API網關實現陷阱90
3.13.1 API網關回路91
3.13.2 API網關作為ESB91
3.13.3 從上到下都是“烏龜”(API網關)91
3.14 選擇API網關92
3.14.1 明確需求92
3.14.2 自建還是購買92
3.14.3 ADR指南:選擇API網關92
3.15 小結93
第4章 服務網格:服務間流量管理95
4.1 服務網格是唯一解決方案嗎95
4.2 指南:你應該采用服務網格嗎96
4.3 案例研究:把議程功能提取成服務96
4.4 什么是服務網格98
4.5 服務網格能提供什么功能99
4.6 服務網格部署在何處100
4.7 服務網格如何與其他網絡技術集成100
4.8 為何使用服務網格102 4.8 為何使用服務網格 ................................................................................... 102 4.8.1 對路由、可靠性和流量管理的精細化控制 ............................................. 102 4.8.2 提供透明的可觀測性 ............................................................................... 105 4.8.3 強化安全性:傳輸安全、驗證和授權 ..................................................... 105 4.8.4 支持多語言的跨職能通信 ........................................................................ 105 4.8.5 分離入站流量管理和服務間流量管理 ..................................................... 106 4.9 服務網格的演進歷史 ............................................................................... 107 4.9.1 早年歷史和動機 ...................................................................................... 107 4.9.2 實現方式 .................................................................................................. 109 4.10 服務網格分類法 .................................................................................... 114 4.11 案例研究:使用服務網格來實現路由、可觀測性和安全性 ..................... 115 4.11.1 用 Istio 進行路由選擇 ............................................................................ 115 4.11.2 用 Linkerd 觀測流量 .............................................................................. 117 4.11.3 用 Consul 進行網絡分段 ........................................................................ 119 4.12 部署服務網格:理解并管理故障 ............................................................ 121 4.13 常見的服務網格實施誤區 ...................................................................... 121 4.13.1 服務網格作為 ESB ................................................................................ 121 4.13.2 服務網格作為網關 ................................................................................. 121 4.13.3 太多的網絡層 ........................................................................................ 122 4.14 選擇服務網格 ........................................................................................ 122 4.14.1 明確需求 ................................................................................................ 122 4.14.2 自建還是購買 ........................................................................................ 122 4.14.3 檢查清單:選擇服務網格 ...................................................................... 123 4.15 小結 ...................................................................................................... 124 第三部分 API 運維與安全 第 5 章 部署和發布 API ............................................... 127 5.1 分離部署和發布 ...................................................................................... 127 5.1.1 案例研究:功能開關 ............................................................................... 128 5.1.2 流量管理 .................................................................................................. 130 5.2 案例研究:建模會議系統的發布 .............................................................. 130 5.2.1 API 生命周期 ........................................................................................... 130 5.2.2 將發布策略映射到生命周期 .................................................................... 131 5.2.3 ADR 指南:使用流量管理和功能開關將發布與部署分離 ...................... 132 5.3 發布策略 ................................................................................................. 132 5.3.1 金絲雀發布 .............................................................................................. 133 5.3.2 流量鏡像 .................................................................................................. 134 5.3.3 藍綠發布 .................................................................................................. 135 5.4 案例研究:使用 Argo Rollouts 執行部署過程 .......................................... 136 5.5 監控成功和識別失敗 ............................................................................... 139 5.5.1 可觀測性的三大支柱 ............................................................................... 140 5.5.2 API 的重要指標 ....................................................................................... 140 5.5.3 讀取信號 .................................................................................................. 141 5.6 有效軟件發布的應用程序決策 ................................................................. 142 5.6.1 響應緩存 .................................................................................................. 142 5.6.2 應用層標頭傳播 ...................................................................................... 142 5.6.3 協助調試的日志 ...................................................................................... 143 5.6.4 考慮使用理念型平臺 ............................................................................... 143 5.6.5 ADR 指南:理念型平臺 .......................................................................... 143 5.7 小結 ........................................................................................................ 144 第 6 章 運維安全性:API 的威脅建模 ........................... 145 6.1 案例研究:將 OWASP 應用于參會者 API ................................................. 145 6.2 忽略外部 API 安全的風險 ........................................................................ 146 6.3 威脅建模 101 .......................................................................................... 147 6.4 以攻擊者思維思考 ................................................................................... 148 6.5 如何進行威脅建模 ................................................................................... 149 6.5.1 第 1 步:確定目標 ................................................................................... 149 6.5.2 第 2 步:收集正確的信息 ........................................................................ 150 6.5.3 第 3 步:分解系統 ................................................................................... 150 6.5.4 第 4 步:識別威脅—以 STRIDE 為例 ................................................. 150 6.5.5 第 5 步:評估威脅的風險 ........................................................................ 159 6.5.6 第 6 步:驗證 .......................................................................................... 162 6.6 小結 ........................................................................................................ 162 第 7 章 API 身份驗證和授權 ........................................ 163 7.1 身份驗證 ................................................................................................. 163 7.1.1 使用令牌進行*終用戶身份驗證 ............................................................ 164 7.1.2 系統對系統的認證 ................................................................................... 165 7.1.3 為什么不能將密鑰和用戶混用 ................................................................ 165 7.2 OAuth2 ................................................................................................... 166 7.2.1 授權服務器在 API 交互中的角色 ............................................................ 167 7.2.2 JSON 網絡令牌 ........................................................................................ 167 7.2.3 OAuth2 授權的術語和機制 ...................................................................... 170 7.2.4 ADR 指南:我是否應該考慮使用 OAuth2 .............................................. 171 7.2.5 授權碼授權 .............................................................................................. 171 7.2.6 刷新令牌 .................................................................................................. 175 7.2.7 基于客戶端憑據的授權 ........................................................................... 175 7.2.8 其他 OAuth2 授權方式 ............................................................................ 176 7.2.9 ADR 指南:選擇支持哪些 OAuth2 授權方式 ......................................... 176 7.2.10 OAuth2 作用域 ...................................................................................... 177 7.2.11 授權執行 ................................................................................................ 178 7.3 OIDC 介紹 .............................................................................................. 179 7.4 SAML 2.0 ................................................................................................ 181 7.5 小結 ........................................................................................................ 181 第四部分 使用 API 的演進架構 第 8 章 將應用程序重新設計為 API 驅動的架構 ............ 185 8.1 為何使用 API 來演進系統 ........................................................................ 185 8.1.1 提取有用抽象:加強內聚 ........................................................................ 186 8.1.2 劃清領域邊界:擁抱松耦合 .................................................................... 187 8.2 案例研究:建立參會者的領域界限 .......................................................... 188 8.3 *終狀態架構選擇 ................................................................................... 188 8.3.1 單體架構 .................................................................................................. 188 8.3.2 面向服務的架構 ...................................................................................... 189 8.3.3 微服務 ..................................................................................................... 189 8.3.4 函數 ......................................................................................................... 189 8.4 管理演進過程 .......................................................................................... 190 8.4.1 明確目標 .................................................................................................. 190 8.4.2 使用適應度函數 ...................................................................................... 190 8.4.3 將系統分解成模塊 ................................................................................... 191 8.4.4 創建 API 作為擴展的“拼接點” .............................................................. 193 8.4.5 識別系統內的變更杠桿點 ........................................................................ 194 8.4.6 持續交付和驗證 ...................................................................................... 194 8.5 用 API 演進系統的架構模式 ..................................................................... 194 8.5.1 扼殺者 ..................................................................................................... 195 8.5.2 外觀和適配器 .......................................................................................... 196 8.5.3 API 分層蛋糕架構 ................................................................................... 196 8.6 識別痛點和機會 ...................................................................................... 197 8.6.1 升級和維護問題 ...................................................................................... 197 8.6.2 性能問題 .................................................................................................. 198 8.6.3 打破依賴性:高度耦合的 API................................................................. 198 8.7 小結 ........................................................................................................ 198 第 9 章 使用 API 基礎設施向云平臺演進 ...................... 200 9.1 案例研究:將參會者服務遷移到云環境 ................................................... 200 9.2 選擇云遷移策略 ...................................................................................... 201 9.2.1 保留或重審 .............................................................................................. 202 9.2.2 重新托管 .................................................................................................. 202 9.2.3 平臺化改造 .............................................................................................. 203 9.2.4 重新購買 .................................................................................................. 203 9.2.5 重構 / 重新架構 ....................................................................................... 203 9.2.6 退役 ......................................................................................................... 204 9.3 案例研究:將參會者服務遷移到云平臺 ................................................... 204 9.4 API 管理的作用 ....................................................................................... 205 9.5 南北向與東西向:模糊的流量管理界限 ................................................... 206 9.5.1 從外向內進行遷移 ................................................................................... 206 9.5.2 跨越邊界:跨網絡路由 ........................................................................... 206 9.6 從區域架構到零信任架構 ........................................................................ 207 9.6.1 進入分區的世界 ...................................................................................... 207 9.6.2 不信任任何人并始終驗證 ........................................................................ 208 9.6.3 服務網格在零信任架構中的作用 ............................................................ 209 9.7 小結 ........................................................................................................ 211 第 10 章 總結 ............................................................. 213 10.1 案例研究:回顧 .................................................................................... 213 10.2 API、康威定律和組織機構 .................................................................... 218 10.3 了解決策類型 ........................................................................................ 219 10.4 準備好迎接未來 .................................................................................... 219 10.4.1 異步通信 ................................................................................................ 219 10.4.2 HTTP/3 .................................................................................................. 220 10.4.3 基于平臺的網格 ..................................................................................... 220 10.5 如何不斷學習 API 架構 .......................................................................... 220 10.5.1 不斷磨煉基本功 ..................................................................................... 221 10.5.2 了解*新行業新聞 ................................................................................. 221 10.5.3 雷達、象限和趨勢報告 ......................................................................... 221 10.5.4 學習*佳實踐和用例 ............................................................................. 222 10.5.5 寓學于練 ................................................................................................ 222 10.5.6 教學相長 ................................................................................................ 223
精通API架構:設計、運維與演進 作者簡介
James Gough是摩根士丹利的杰出工程師,Java Champion,也是Optimizing Java一書的合著者。
Daniel Bryant是Ambassador Labs的開發者關系主管,也是Java Champion。他的專長是DevOps工具、云/容器平臺和微服務。
Matthew Auburn是摩根士丹利的副總裁。他曾從事金融系統、移動和 Web 應用程序以及 API 安全方面的工作。
- >
隨園食單
- >
羅庸西南聯大授課錄
- >
自卑與超越
- >
月亮虎
- >
中國人在烏蘇里邊疆區:歷史與人類學概述
- >
苦雨齋序跋文-周作人自編集
- >
姑媽的寶刀
- >
有舍有得是人生