首页>参考读物>计算机科学与技术>计算机网络

Kong网关:入门、实战与进阶
作者 : 孔庆雍 著
出版日期 : 2021-08-24
ISBN : 978-7-111-68947-8
定价 : 119.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 472
开本 : 16
原书名 :
原出版社:
属性分类: 店面
包含CD : 无CD
绝版 : 未绝版
图书简介

内容简介
这是一本关于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的结合等。

图书特色

资深架构师工作经验总结,集Kong网关、微服务设计、分布式架构、DevOps等众多技术于一体
核心概念、使用方法、工作原理、工程实践、源码分析等多个维度对Kong网关进行抽丝剥茧

图书前言

为什么要写这本书
随着公司业务发展、技术架构升级,网关层的重要性在系统整体架构中日益凸显。Kong网关作为新一代网关技术,不仅可以解决技术架构升级的痛点问题,也可以与DevOps理念有机结合,以技术推动产品业务发展,达到开发、测试、交付、运营多个维度的提升。
Kong网关的应用横跨互联网、电信、金融、制造、食品等领域,雅虎、GE、Honeywell、VMWare、Cisco、NASDAQ、MasterCard等多家大型企业都在使用。同时,Kong公司也是CNCF的成员之一,一直在积极推动云原生应用的发展。但相对而言,Kong网关在国内显得不温不火,一个主要原因是国内研发人员对网关层的认识还比较模糊,大家主要关注的是业务层代码;另一个原因是大家对网关层的认识相对局限,由于众多与各语言栈绑定的网关组件的存在(如Zuul、Spring Cloud Gateway等),而忽视了更高维度的网关层的必要性。
本书的初衷之一是在国内推广Kong网关技术,利用Kong网关强大的性能和易于定制的特点帮助企业打造更符合现代软件架构的网关层,解决技术转型难题;同时分享一些笔者使用Kong网关的经验,力求让读者能有所收获。最后,希望能和读者一起从Kong网关出发,了解更多、更前沿的技术走向,在技术的洪流中扬帆远航。
读者对象
本书的推荐读者对象包含但不限于:
网关研发工程师、Kong网关插件开发工程师
系统架构师、DevOps工程师
对网关技术感兴趣,并希望快速入门、进阶的IT工程师
对系统架构设计、微服务治理、云原生环境等前沿技术感兴趣的技术爱好者
本书特色
通过本书,笔者将带领大家快速入门Kong网关,帮助读者建立起网关层相关的完整知识体系,进而了解系统架构设计的全貌。本书的特点如下。
本书知识点由浅入深、层层递进。通过严谨、清晰的脉络结构,对Kong网关涉及的重点、难点知识逐一进行梳理、讲解。
本书全文配以大量实战项目和源码分析,理论结合实践,帮助读者直观、高效地掌握网关层相关知识,并快速应用于实际环境。
本书以Kong网关为线索,还会涉及系统架构设计、微服务治理、DevOps技术实践、敏捷思想落地等众多领域,为读者还原现代技术架构的方方面面。
除技术讨论之外,本书还会分享一些常用的学习方法论,以便读者在学习其他技术时也能用到,达到事半功倍的效果。
如何阅读本书
本书总共分为四篇。
入门篇(第1~4章):主要引导读者对Kong网关有一个概要性认知,介绍了它的基础使用指南和相关理论,以及一些掌握Kong网关必备的知识。
基础篇(第5~8章):前两章着重介绍了Kong网关的基础配置、部署方案和命令行向导;后两章介绍了Kong网关的代理、鉴权、负载均衡策略、健康检查机制等一系列常用功能。
进阶篇(第9~12章):介绍了Kong网关区别于其他传统网关的插件机制,同时介绍了Kong网关在整个架构体系中与其他系统(诸如日志系统、网络安全等)的交互。
应用篇(第13~16章):结合当前日益成熟的云原生环境,介绍了Kong网关针对不同场景给出的解决方案。
其中,后三篇的每一章都包含了大量示例工程。读者可以直接使用Docker运行,结合实战更好地理解书中所讲的内容。如果读者已经是一名经验丰富的资深用户,或者可熟练使用其他网关层组件,则可以根据目录结构按需阅读;如果读者是一名初学者,或者希望更系统、扎实地了解Kong网关技术,推荐从入门篇的理论知识开始学习。
勘误和支持
由于笔者水平有限,编写时间仓促,书中难免会出现一些错误或者不准确的地方,恳请读者批评指正。书中的全部源文件可以从华章网站下载。如果你有更多宝贵意见和想法,可以关注公众号“熊猫CTO”与我沟通。公众号中提供了勘误表,也会定期更新一些书籍相关的补充内容,欢迎大家订阅。非常期待得到大家的真挚反馈。
致谢
首先要感谢Kong公司和社区的不懈努力,为我们打造了一款如此强大的软件,使我们能站在巨人的肩膀上阔步前行。
其次,本书的写作离不开各位小伙伴的支持和帮助。他们为本书提供了非常多的宝贵建议和贡献,这里依次对他们表示感谢:书中大量的环境搭建和示例设计均由叶宁配合完成,他也是一位Kong网关的资深运维专家,示例结果也由他反复验证;书中多个章节的大量实战源码的贡献者是方昆、李坤、廖云和吴俊(按姓氏首字母排序)。除此之外,还有很多给予过我帮助的小伙伴,是他们的无私付出使本书的内容更加饱满。
这里还要感谢机械工业出版社华章分社的杨福川老师,在这一年多的时间里他始终支持我写作,是他的鼓励和帮助引导我顺利完成全部书稿;同时要感谢董惠芝老师在写作期间对我提供的细心指导和建议,是她细致的审稿和编排,才得以让本书完整呈现。
最后还要特别感谢我的父母、妻子和家人,感谢他们对我自始至终的关心和支持。谨以此书献给我最亲爱的家人们,希望他们永远幸福快乐!

孔庆雍
2021年4月

上架指导

计算机\程序设计

封底文字

网关是微服务中不可或缺的部分,Kong是目前非常火的网关层组件,有着极好的口碑和潜力。市面上还没有书籍对其进行系统性的完整介绍。本书文字简练,章节难度由浅入深、层层递进,通过四大模块介绍了Kong网关的由来、如何快速使用、与其他系统的协作和在不同应用场景下的解决方案,是一本非常实用的技术参考教材。
—— 邵骏威 珞瑾数信 CEO
微服务架构已经成为现代大型企业的主流技术标准之一,而网关在整个微服务架构体系中是不可或缺的核心组件。Kong网关具备云原生与高性能的特点,是非常有必要研究的一项技术。本书完整地讲述了Kong网关的整体结构和应用细节,适合初学者快速入门。
—— 马霖 平安信用卡中心 CTO
如果你正在做网关技术与架构选型,本书是不错的选择。书中从技术选型到Kong网关的配置,再到业务真正上线后的最佳实践,基于作者实际工作经验给出了深刻的见解。
—— 王鹏飞 数桑科技副总裁
无论是想系统学习Kong网关,还是平时用来做知识点检索,这本书都非常适合。书中不仅有对Kong网关的介绍,也有关联知识和技术的讲解,能让读者知其然也知其所以然,给出了作者对微服务架构和治理的全局性认识。同时,书中每个知识点都有详尽的代码示例,是一本很好的能学以致用的技术图书。
—— 何智华 Celer Network资深区块链工程师
本书很好地把握了Kong网关从入门到精通的学习过程,充分地阐述了该技术的应用场景,值得拥有!
—— 崔伟斌 360数科技术总监

作者简介

孔庆雍 著:作者简介
孔庆雍
毕业于同济大学,曾就职于华为、中国移动、数禾科技等多家公司,任职期间参与了多个大型系统设计、研发工作。现任上海珞瑾数据信息有限公司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

教学资源推荐
作者: 教育部高等学校计算机类专业教学指导委员会 物联网工程专业教学研究专家组 编制
作者: 黄传河 杜瑞颖 张健 等编著
作者: 王志文,陈妍,夏秦