Kong 網關:入門、實戰與進階 程序設計

孔慶雍 著

  • 出版商: 機械工業
  • 出版日期: 2021-09-01
  • 售價: $714
  • 貴賓價: 9.5$678
  • 語言: 簡體中文
  • 頁數: 472
  • 裝訂: 平裝
  • ISBN: 711168947X
  • ISBN-13: 9787111689478
  • 立即出貨

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

商品描述

這是一本關於Kong網關開發和運維的集大成之作。
作者基於自己在該領域的豐富實踐經驗,從零開始,不僅循序漸進地講解了Kong網關的核心概念、使用方法、
工作原理、工程實踐和源碼,而且還將微服務設計、分佈式架構、DevOps等相關技術融入其中,
幫助讀者打通Kong網關的整個技術體系,輕鬆跨越從理論到項目實戰的鴻溝。
全書共16章,分為4篇,具體內容如下。
入門篇(第1~4章)
首先對網關層和Kong網關做了整體性介紹,然後有針對性地講解了Nginx、
OpenResty和Lua語言等必備知識,為之後深入學習打下基礎。
基礎篇(第5~8章)
這部分圍繞Kong網關的日常配置和操作展開,具體包括Kong網關配置文件、
部署方案、命令行嚮導、代理、鑑權、負載均衡策略和健康檢查機制等內容。
進階篇(第9~12章)
主要介紹了Kong網關區別於其他傳統網關的插件機制,
以及Kong網關在整個架構體系中與其他系統之間的交互和聯動。
應用篇(第13~16章)
主要結合當前日益成熟的雲原生環境,給出Kong網關在不同場景下的整體解決方案,
如與微服務、Service Mesh、Kubernetes、Serverless的結合等。

作者簡介

孔慶雍


畢業於同濟大學,曾就職於華為、中國移動、數禾科技等多家公司,
任職期間參與了多個大型系統設計、研發工作。
現任上海珞瑾數據信息有限公司CTO、首席架構師,
在現公司主導了內部自研DevOps平台的搭建及底層架構設計與規劃。
敏捷開發思想踐行者,擅長利用技術推進項目管理與產品交付。
在企業級SaaS服務、大規模分佈式架構、微服務治理、網關層設計研發等領域積累了豐富的經驗,
在現公司主導研發的酒店管理系統已累計覆蓋10萬家門店,日均請求量超1億。
想要了解有關作者的更多信息,可以關注公眾號“熊貓CTO”。
作者會在公眾號內定期分享互聯網生態中有關技術、設計、產品、運營等主題的原創文章。
您也可以在公眾號下留言互動。

目錄大綱

前 言
入 門 篇
第1章 全面了解Kong網關 2
1.1 網關簡介 2
1.1.1 網關的由來 3
1.1.2 網關的作用 3
1.2 Kong網關簡介 6
1.2.1 Kong網關的發展歷程 6
1.2.2 Kong網關與傳統網關對比 6
1.2.3 其他主流網關 7
1.3 Kong網關基礎組件 12
1.3.1 Kong服務器 12
1.3.2 數據庫 13
1.3.3 Kong管理GUI 14
1.4 Kong網關安裝指南 14
1.4.1 在Mac環境中安裝Kong網關 15
1.4.2 在Linux環境中安裝Kong網關 15
1.4.3 在Docker環境中安裝Kong網關 15
1.5 使用Kong網關搭建Web應用 16
1.5.1 示例項目介紹 16
1.5.2 後端服務路由 18
1.5.3 靜態頁面代理 20
1.6 本章小結 24

第2章 Nginx知識 25
2.1 Nginx安裝 25
2.1.1 在Mac環境中安裝Nginx 25
2.1.2 在Linux環境中安裝Nginx 26
2.1.3 在Docker環境中安裝Nginx 26
2.2 Nginx詳解 26
2.2.1 Nginx文件的目錄結構 26
2.2.2 命令行參數 28
2.2.3 配置文件 29
2.2.4 依賴庫 32
2.2.5 Nginx的工作原理 33
2.2.6 Nginx優化指南 35
2.3 項目實踐 37
2.3.1 從Kong切換到Nginx 37
2.3.2 添加黑白名單 39
2.3.3 添加限流 39
2.3.4 從Nginx切換到Kong 41
2.3.5 小結 41
2.4 本章小結 42

第3章 Lua知識 43
3.1 Lua入門與規範 43
3.1.1 基礎知識 43
3.1.2 安裝指南 44
3.1.3 解釋器 45
3.1.4 語法規範 46
3.2 數據類型 47
3.3 操作符 52
3.4 表達式語句 54
3.4.1 賦值語句 54
3.4.2 控制語句 55
3.5 Lua庫 58
3.6 本章小結 62

第4章 OpenResty知識 63
4.1 OpenResty入門安裝 63
4.1.1 在Mac環境中安裝OpenResty 63
4.1.2 在Linux環境中安裝OpenResty 64
4.1.3 在Docker環境中安裝OpenResty 64
4.2 OpenResty詳解 64
4.2.1 OpenResty服務器的目錄結構 64
4.2.2 Resty CLI 65
4.2.3 OpenResty包管理工具 67
4.3 OpenResty工作原理 69
4.4 OpenResty性能優化 71
4.4.1 避免使用阻塞函數 72
4.4.2 巧用table組件 72
4.4.3 使用緩存 73
4.4.4 火焰圖 73
4.5 項目實踐 75
4.6 本章小結 82

基 礎 篇
第5章 Kong網關配置與部署 84
5.1 Kong啟動項配置 84
5.1.1 配置項加載流程 85
5.1.2 配置項詳解 86
5.1.3 環境變量 89
5.1.4 配置文件示例 89
5.2 注入Nginx指令 90
5.2.1 注入單個Nginx指令 91
5.2.2 通過文件方式註入Nginx指令 92
5.3 個性化使用場景 92
5.3.1 自定義Nginx模板文件 93
5.3.2 在OpenResty實例中嵌入Kong 93
5.4 Kong網關部署 94
5.4.1 無數據庫部署模式 94
5.4.2 數據庫部署模式 97
5.4.3 混合部署模式 100
5.5 本章小結 102

第6章 Kong網關命令行 103
6.1 通用標誌參數 104
6.2 Kong網關命令行詳解 104
6.2.1 kong check 104
6.2.2 kong config 106
6.2.3 kong health 109
6.2.4 kong hybrid 109
6.2.5 kong migrations 110
6.2.6 kong prepare 112
6.2.7 kong quit 113
6.2.8 kong reload 113
6.2.9 kong restart 114
6.2.10 kong start 114
6.2.11 kong stop 115
6.2.12 kong version 116
6.3 本章小結 116

第7章 Kong網關代理及鑑權 117
7.1 Kong網關代理基礎知識 117
7.1.1 Kong網關術語簡介 117
7.1.2 Kong網關代理環境配置 118
7.2 Kong網關代理示例 118
7.3 路由匹配規則 121
7.3.1 通用匹配規則 121
7.3.2 paths屬性 123
7.3.3 hosts屬性 126
7.3.4 methods屬性 128
7.3.5 headers屬性(hosts除外) 129
7.3.6 sources & destinations屬性 129
7.3.7 snis屬性 129
7.4 路由匹配優先級 130
7.4.1 優先級策略 130
7.4.2 後備路由策略 131
7.5 Kong網關代理行為 132
7.5.1 超時機制 132
7.5.2 錯誤重試機制 133
7.5.3 插件執行策略 133
7.5.4 響應內容 133
7.6 配置SSL協議 134
7.7 代理WebSocket流量 135
7.8 代理gRPC流量 138
7.9 Kong網關鑑權 140
7.9.1 通用鑑權流程 140
7.9.2 匿名接入流程 142
7.9.3 多重認證策略 143
7.10 本章小結 144

第8章 Kong網關負載均衡策略與健康檢查 145
8.1 負載均衡 145
8.1.1 負載均衡簡介 145
8.1.2 負載均衡解決方案 146
8.1.3 Kong網關中的負載均衡 146
8.2 基於DNS的負載均衡 146
8.2.1 A記錄(包含AAAA記錄) 147
8.2.2 SRV記錄 147
8.2.3 DNS 記錄優先級 147
8.2.4 其他注意事項 148
8.3 環狀負載均衡器 148
8.3.1 基礎概念 148
8.3.2 負載均衡策略 150
8.3.3 其他注意事項 151
8.4 負載均衡特性使用場景 151
8.4.1 藍綠髮布 151
8.4.2 金絲雀發布 155
8.5 健康檢查 157
8.5.1 健康檢查標準 157
8.5.2 健康檢查類型 159
8.5.3 健康檢查配置 160
8.6 本章小結 162
進 階 篇

第9章 Kong網關插件 164
9.1 Kong網關插件簡介 164
9.1.1 Kong網關插件概念 164
9.1.2 Kong網關插件原理 165
9.2 Kong官方插件 166
9.2.1 鑑權類插件 166
9.2.2 安全類插件 177
9.2.3 流量類插件 179
9.2.4 分析監控類插件 195
9.2.5 內容轉換類插件 197
9.2.6 日誌類插件 204
9.2.7 其他插件 210
9.3 自定義Kong網關插件 210
9.3.1 自定義插件開發流程和插件生命週期管理詳解 210
9.3.2 插件開發套件 240
9.3.3 Go插件開發嚮導 241
9.3.4 自定義插件實例 243
9.4 本章小結 245

第10章 Kong網關日誌 246
10.1 Kong網關日誌簡介 246
10.1.1 Kong網關日誌分類 246
10.1.2 Kong網關日誌級別 248
10.2 Kong網關結合日誌平台 249
10.2.1 ELK方案簡介 249
10.2.2 Kong網關結合ELK 253
10.2.3 日誌系統使用場景 256
10.3 自定義日誌 261
10.3.1 Kong網關定制日誌 262
10.3.2 ELK定制日誌 264
10.3.3 小結 265
10.4 本章小結 266

第11章 Kong網關運維 267
11.1 資源選型 267
11.1.1 服務器資源 267
11.1.2 數據庫資源 268
11.1.3 彈性伸縮 269
11.1.4 性能參數 269
11.2 Kong網關監控 270
11.2.1 監控平台選型 270
11.2.2 搭建監控平台 271
11.2.3 Kong網關監控平台配置 272
11.2.4 Kong網關監控平台指標詳解 278
11.2.5 Kong監控平台指標測試 279
11.2.6 Kong監控平台的預警功能 281
11.3 Kong網關運維 284
11.3.1 數據備份 284
11.3.2 軟/硬件維護 286
11.3.3 突發事件處理 288
11.4 本章小結 288

第12章 Kong網關安全與集群高可用 289
12.1 Kong網關安全配置 289
12.1.1 網絡層訪問限制 289
12.1.2 Kong API 迴路 290
12.1.3 自定義Nginx配置 291
12.2 Kong集群 292
12.2.1 Kong集群簡介 292
12.2.2 Kong集群緩存 293
12.3 Kong網關高可用 298
12.3.1 架構設計 298
12.3.2 引入HAProxy層 300
12.3.3 高可用方案測試 301
12.4 本章小結 308
應 用 篇

第13章 Kong網關結合微服務架構 310
13.1 微服務簡介 310
13.1.1 微服務的優點 311
13.1.2 單體應用和微服務 311
13.1.3 微服務12要素 313
13.2 單體應用向微服務遷移 313
13.2.1 採用微服務的注意事項 314
13.2.2 遷移細節 314
13.3 使用CI/CD流程促進微服務開發 316
13.3.1 CI/CD流程基礎組件 316
13.3.2 構建CI/CD流程 318
13.4 基於Kong打造DevOps平台 320
13.4.1 場景描述 320
13.4.2 設計思路 321
13.4.3 DevOps平台使用指南 325
13.4.4 DevOps平台源碼解析 329
13.4.5 DevOps平台擴展 335
13.5 本章小結 336

第14章 Kong網關結合Kubernetes架構方案 337
14.1 Kubernetes詳解 337
14.1.1 Kubernetes簡介 337
14.1.2 Kubernetes發展史 338
14.1.3 Kubernetes基本概念和術語 340
14.1.4 Kubernetes的HelloWorld示例 342
14.2 Kubernetes與Kong網關結合 350
14.2.1 概念描述 350
14.2.2 使用Kubernetes安裝Kong 358
14.3 Kubernetes實戰 359
14.3.1 安裝Kong網關 359
14.3.2 使用Kong網關 360
14.3.3 配置Kong網關插件 361
14.4 本章小結 363

第15章 Service Mesh實踐之Kuma 364
15.1 Service Mesh簡介 364
15.2 Kuma簡介 366
15.2.1 為什麼使用Kuma 366
15.2.2 Kuma與其他Service Mesh方案的比較 366
15.2.3 Kuma系統組件 367
15.2.4 Kuma部署示例 368
15.3 Kuma策略概述 369
15.3.1 策略配置項描述 369
15.3.2 使用策略 370
15.3.3 策略匹配規則 371
15.4 Kuma內置策略詳解 372
15.4.1 安全類策略 372
15.4.2 流量控制類策略 376
15.4.3 觀測類策略 382
15.5 Kuma實戰 388
15.5.1 適配Kuma架構 388
15.5.2 啟動mTSL和TrafficPermission 390
15.6 本章小結 391

第16章 Serverless架構 392
16.1 Serverless簡介 392
16.1.1 系統架構演化 392
16.1.2 部署方式演化 393
16.1.3 Serverless內核 395
16.2 Serverless實踐 396
16.2.1 搭建開發環境 396
16.2.2 Web應用服務 402
16.3 本章小結 407
附錄A Docker安裝指南 408
附錄B KONGA安裝指南 412
附錄C 數據庫明細 417
附錄D Admin API 422