新書推薦:
《
自我囚禁的人:完美主义的心理成因与自我松绑(破除你对完美主义的迷思,尝试打破自我评价过低与焦虑的恶性循环)
》
售價:NT$
301.0
《
周易
》
售價:NT$
203.0
《
东南亚的传统与发展
》
售價:NT$
306.0
《
乾隆制造
》
售價:NT$
398.0
《
资治通鉴臣光曰辑存 资治通鉴目录(司马光全集)(全二册)
》
售價:NT$
1316.0
《
明代社会变迁时期生活质量研究
》
售價:NT$
1367.0
《
律令国家与隋唐文明
》
售價:NT$
332.0
《
紫云村(史杰鹏笔下大唐小吏的生死逃亡,新历史主义小说见微之作,附赠5张与小说内容高度契合的宣纸彩插)
》
售價:NT$
449.0
編輯推薦:
(1)华为云CTO张宇昕、CNCF CTO Chris Aniszczyk联合作序,倾力推荐。
(2)本书和本书上册基于Istio版本和架构,通过26章近1000页,全面、系统、详细、深入地解析Istio原理、用法、实践、架构和源码。Istio 社区资深、权威的两位TOC委员 Lin Sun和John Howard代表Istio社区指导和推荐。
(3)中国信通院云计算与大数据研究所何宝宏所长、上海交通大学致远讲席教授IEEE/CCF Fellow过敏意老师、CNCF中国区总监Keith Chan、华为云首席产品官方国伟强力推荐。
(4)Istio社区亚洲的从首届连任至今的指导委员会成员、国内早的Istio商用云服务开发团队成员联合出品,打造国内权威、系统的Istio书籍。
(5)本书为国内首本系统详细解析Envoy架构和源码的技术书籍,Istio和Envoy社区核心维护者周礼赞强力推荐。
(6)本书和本书上册运用450 原创图表多维度洞察、归纳、总结Istio原理、架构、流程和易错技术要点。图表等内容细节获Istio TOC Director of Open Source a
內容簡介:
本书是《Istio权威指南》的下册,重点讲解Istio的架构与源码,分为架构篇与源码篇。
架构篇从架构的视角分别介绍Istio各组件的设计思想、数据模型和核心工作流程。在Istio 1.16中,Istiod以原有的Pilot为基础框架构建了包含Pilot、Citadel、Galley等组件的统一控制面。本书第15、16、17章分别介绍以上三个组件各自的架构、模型和流程机制;第18、19、20章依次讲解数据面Pilot-agent、Envoy和Istio-proxy的架构和流程,包括三者的结合关系,配合Istio控制面组件实现流量管理功能,特别是Envoy的架构、模型和关键流程。
源码篇包括第21~26章,与架构篇的6章对应,分别介绍Istio管理面组件Pilot、Citadel、Galley与数据面Pilot-agent、Envoy、Istio-proxy的主要代码结构、代码流程及关键代码片段。本篇配合架构篇中每个组件的架构和机制,对Istio重要组件的实现进行了更详细的讲解和剖析,为读者深入研读Istio相关代码,以及在生产环境下进行相应代码的调试和修改提供指导。
本书适合入门级读者从零开始了解Istio的架构,也适合有一定基础的读者深入研究Istio的源码。
關於作者:
——张超盟
华为云应用服务网格架构师,拥有15年以上的开发经验,先后负责过华为云容器应用运维、微服务平台、云服务目录、云服务可靠性、服务网格等云原生产品的架构设计与开发工作,主导过多个重大项目的云原生和微服务化生产落地。在服务网格、Kubernetes容器服务、微服务架构、应用性能管理、大数据、DevOps工具等方面有深入的研究与实践。Istio社区成员,KubeCon、IstioCon及ServiceMeshCon等会议的演讲者,技术图书作者。早期曾在中铁一局从事路桥建设工作。
——徐中虎
华为云云原生团队核心成员,开源技术专家,服务网格Istio核心维护者,Istio社区指导委员会成员,Kubernetes项目核心贡献者,批量计算项目Volcano的核心维护者,拥有丰富的开源工作经验。主要研究方向有微服务架构、服务网格、容器编排平台Kubernetes和未来的分布式云原生架构等。在分布式系统的性能优化、高可靠和可扩展方面研究深入、经验丰富。
——张 伟
华为云服务网格数据面资深专家,拥有18年架构设计与开发经验,先后就职于亿阳信通、加拿大北电网络(中国)、甲骨文、Polycom、阿里巴巴及华为等公司。作为核心开发人员开发过传输网管系统、Tuxedo交易中间件、ts-server多媒体转码服务、GTS高性能事务云服务、sc高性能注册中心、ASM数据面等多个产品,现主要负责华为云ASM服务网格数据面代理产品的设计与开发工作。
——冷 雪
西安电子科技大学杭州研究院菁英副教授,浙江大学工学博士。主要研究方向有云原生安全、性能优化和智能运维等,致力于解决云网环境下的关键问题。曾参与并主持多项科研项目,在国际会议和期刊上发表多篇论文并获得多项授权专利。
/ 华为云云原生团队 /
华为云云原生团队创建于2013年,是国内较早从事云原生研究的团队之一,也是CNCF的初创成员和白金会员。华为云在容器、服务网格、微服务等云原生技术领域都有着深厚的沉淀,拥有10多名CNCF项目维护者,对Kubernetes、Istio等核心项目的贡献一直位居全球前列,并向CNCF捐献了KubeEdge、Volcano、Karmada等知名项目。基于CNCF的开源生态,华为云还打造了云容器引擎、云容器实例、应用服务网格等一系列优质的商业化云原生服务。
为进一步推广云原生技术,加速云原生在行业中落地,华为云联合CNCF、中国信通院及业界云原生技术精英们成立了全球云原生交流平台——创原会。
/ 创原会 /
创原会是CNCF、中国信通院、华为云及业界云原生技术精英们联合成立的全球云原生交流平台,旨在通过研究前沿云原生技术及共享产业落地实践,探索云原生与业务融合的无限可能。自2020年成立至今,创原会已在中国、东南亚、拉美、欧洲陆续成立分会并举办活动50余场,为全球技术精英们提供了一个优质、高端、开放的交流平台,并吸纳近300位CTO、技术总监成为会员,极大地促进了云原生在全球各行业中的普及和落地。
目錄 :
架 构 篇
第15章 Pilot的架构 2
15.1 Pilot的基本架构 2
15.1.1 Istio的服务模型 4
15.1.2 xDS协议 6
15.2 Pilot的原理 12
15.2.1 xDS服务器 13
15.2.2 服务发现 24
15.2.3 配置规则发现 29
15.2.4 xDS的生成和分发 35
15.3 安全插件 42
15.3.1 认证插件 43
15.3.2 授权插件 46
15.4 Pilot的关键设计 48
15.4.1 三级缓存模型 48
15.4.2 去抖动分发 50
15.4.3 防过度分发 51
15.4.4 增量EDS 51
15.4.5 资源隔离 53
15.4.6 自动管理虚拟机工作负载 54
15.5 本章小结 55
第16章 Citadel的架构 56
16.1 Istio的证书和身份管理 56
16.2 Citadel的基本架构 59
16.3 Citadel的核心原理 60
16.3.1 核心组件的初始化 61
16.3.2 CA服务器 62
16.3.3 证书签发 63
16.3.4 证书轮转器 65
16.4 本章小结 67
第17章 Galley的架构 68
17.1 简化的Galley 68
17.2 Galley的整体架构 69
17.2.1 早期的MCP 70
17.2.2 基于xDS的MCP 72
17.3 Galley的核心工作原理 72
17.3.1 启动初始化 72
17.3.2 API校验 75
17.3.3 对API配置的管理 78
17.4 本章小结 79
第18章 Pilot-agent的架构 80
18.1 Pilot-agent的用途 81
18.2 Pilot-agent的核心架构 81
18.3 Pilot-agent的原理 83
18.3.1 Envoy的启动 84
18.3.2 优雅退出 85
18.3.3 xDS代理 87
18.3.4 证书管理 90
18.3.5 DNS服务器 91
18.3.6 应用健康检查 92
18.4 本章小结 93
第19章 Envoy的架构 94
19.1 Envoy的整体架构 95
19.1.1 Envoy的内部架构 96
19.1.2 Envoy的通信架构 100
19.2 Envoy的内存管理 110
19.2.1 堆内存管理 110
19.2.2 Buffer管理 111
19.3 Envoy过滤器的架构 114
19.3.1 过滤器的注册 115
19.3.2 过滤器的回调方法 117
19.3.3 过滤器的挂起与恢复 118
19.4 Envoy的初始化流程 119
19.4.1 静态配置 120
19.4.2 动态配置 121
19.4.3 Envoy的创建及初始化流程 124
19.4.4 Envoy的运行流程 128
19.4.5 目标服务Cluster的创建 129
19.4.6 监听器的创建 131
19.5 Envoy的网络及线程模型 133
19.5.1 Server主线程 134
19.5.2 Accesslog线程 136
19.5.3 工作线程 138
19.5.4 GuardDog线程 139
19.5.5 线程间的同步 139
19.6 Envoy的热升级流程 141
19.7 Envoy的新连接处理流程 144
19.8 Envoy的请求及响应数据处理流程 145
19.8.1 对下游请求数据的接收及处理 146
19.8.2 对上游请求数据的处理及发送 149
19.8.3 对上游响应数据的接收及发送 151
19.9 xDS的原理及工作流程 153
19.10 安全证书处理 155
19.11 WASM虚拟机的原理 158
19.12 本章小结 161
第20章 Istio-proxy的架构 162
20.1 Istio-proxy的基本架构 162
20.2 Istio-proxy的原理 163
20.2.1 Istio-proxy的整体工作流程 163
20.2.2 L4 metadata_exchange的工作流程 164
20.2.3 L7 metadata_exchange扩展的工作流程 169
20.2.4 Stats的工作流程 170
20.3 本章小结 173
源 码 篇
第21章 Pilot源码解析 175
21.1 启动流程 175
21.2 关键代码解析 177
21.2.1 ConfigController 178
21.2.2 ServiceController 186
21.2.3 xDS的异步分发 194
21.2.4 对xDS更新的预处理 202
21.2.5 xDS配置的生成及分发 208
21.3 本章小结 211
第22章 Citadel源码解析 212
22.1 启动流程 212
22.1.1 Istio CA的创建 213
22.1.2 SDS服务器的初始化 214
22.1.3 Istio CA的启动 215
22.2 关键代码解析 216
22.2.1 CA 服务器的核心原理 216
22.2.2 证书签发实体IstioCA 218
22.2.3 CredentialsController的创建和核心原理 222
22.3 本章小结 224
第23章 Galley源码解析 225
23.1 启动流程 225
23.1.1 Galley WebhookServer的初始化 226
23.1.2 ValidatingWebhookConfiguration控制器的初始化 226
23.2 关键代码解析 228
23.2.1 配置校验 228
23.2.2 Validating控制器的实现 232
23.3 本章小结 235
第24章 Pilot-agent源码解析 236
24.1 整体架构 236
24.2 启动及监控 238
24.3 xDS转发服务 243
24.4 SDS证书服务 248
24.5 健康检查 255
24.5.1 应用容器的LivenessProbe探测 255
24.5.2 应用容器的ReadinessProbe探测 257
24.5.3 Envoy进程的ReadinessProbe探测 258
24.5.4 Pilot-agent进程的LivenessProbe探测 262
24.6 本章小结 265
第25章 Envoy源码解析 266
25.1 Envoy的初始化 266
25.1.1 启动参数bootstrap的初始化 267
25.1.2 初始化观测指标 268
25.1.3 过滤器注册及信息补齐 269
25.1.4 Envoy自身信息解析 273
25.1.5 Admin API的初始化 273
25.1.6 Worker的初始化 276
25.1.7 Dispatcher内存延迟析构 279
25.1.8 CDS的初始化 283
25.1.9 LDS的初始化 286
25.1.10 初始化观测管理系统 287
25.1.11 启动Stats定期刷新 292
25.1.12 GuardDog的初始化 292
25.2 热重启的流程 296
25.3 Envoy的运行和连接创建 298
25.3.1 启动Worker工作线程 299
25.3.2 监听器的加载 301
25.3.3 接收连接 304
25.4 Envoy接收及处理数据 309
25.4.1 读取数据 310
25.4.2 接收数据 311
25.4.3 处理数据 312
25.5 Envoy发送数据到服务端 317
25.5.1 路由匹配 317
25.5.2 获取连接池 320
25.5.3 创建上游请求 325
25.6 Envoy收到服务端响应 333
25.6.1 接收响应数据 333
25.6.2 发送响应数据 335
25.7 xDS流程解析 337
25.7.1 xDS公共订阅 337
25.7.2 xDS推送 342
25.7.3 LDS更新 343
25.7.4 SDS订阅 350
25.8 遥测元数据存储 352
25.8.1 创建遥测元数据 352
25.8.2 收集Stats观测数据 360
25.8.3 定义静态指标 361
25.9 WASM扩展 363
25.9.1 WASM虚拟机的启动 363
25.9.2 WASM虚拟机的运行 374
25.10 本章小结 387
第26章 Istio-proxy源码解析 388
26.1 metadata_exchange 388
26.2 遥测数据Stats的上报 395
26.3 源码地址 406
26.4 本章小结 408
附录A 源码仓库介绍 409
附录B 实践问题总结 416
附录C 服务网格术语表 432
结 语 447
內容試閱 :
Istio从2017年开源第1个版本到当前版本,已经走过了5年多的时间。在此期间,伴随着云原生技术在各个领域的飞速发展,服务网格的应用也越来越广泛和深入。作为服务网格领域影响力的项目,Istio快速发展和成熟,获得越来越多的技术人员关注和应用。我们希望通过《Istio权威指南》系统且深入地讲解Istio,帮助相关技术人员了解和熟悉Istio,满足其日常工作中的需求。《Istio权威指南(上):云原生服务网格Istio原理与实践》是《Istio权威指南》的上册,重点讲解Istio的原理与实践;《Istio权威指南(下):云原生服务网格Istio架构与源码》是《Istio权威指南》的下册,重点讲解Istio的架构与源码。
近年来,服务网格在各个行业中的生产落地越来越多。CNCF在2022年上半年公布的服务网格调查报告显示,服务网格的生产使用率已达到60%,有19%的公司计划在接下来的一年内使用服务网格。当然,服务网格作为云原生的重要技术之一,当前在Gartner的评定中仍处于技术发展的早期使用阶段,有很大的发展空间。
CNCF这几年的年度调查显示,Istio一直是生产环境下受欢迎和使用多的服务网格。其重要原因是,Istio是功能非常全面、扩展性非常好、与云原生技术结合得非常紧密、非常适用于云原生场景的服务网格。像早期Kubernetes在编排领域的设计和定位一样,Istio从2017年第1个版本开始规划项目的应用场景和架构时,就致力于构建一个云原生的基础设施平台,而不是解决某具体问题的简单工具。
作为基础设施平台,Istio向应用开发人员和应用运维人员提供了非常大的透明度。Istio自动在业务负载中注入服务网格数据面代理,自动拦截业务的访问流量,可方便地在多种环境下部署和应用,使得业务在使用Istio时无须做任何修改,甚至感知不到这个基础设施的存在。在实现上,Istio提供了统一的配置模型和执行机制来保证策略的一致性,其控制面和数据面在架构上都提供了高度的可扩展性,支持用户基于实际需要进行扩展。
2022年9月28日,Istio项目被正式批准加入CNCF。这必将推动Istio与Envoy项目的紧密协作,一起构建云原生应用流量管理的技术栈。正如Kubernetes已成为容器编排领域的行业标准,加入CNCF也将进一步促进Istio成为应用流量治理领域的事实标准。Istio和Kubernetes的紧密配合,也将有助于拉通规划和开发更有价值的功能。根据Istio官方的统计,Istio项目已有8800名个人贡献者,超过260个版本,并有来自15家公司的85名维护者,可见Istio在技术圈和产业圈都获得了极大的关注和认可。
本书作者所在的华为云作为云原生领域的早期实践者与社区领导者之一,在Istio项目发展初期就参与了社区工作,积极实践并推动项目的发展,贡献了大量大颗粒特性。本书作者之一徐中虎在2020年Istio社区进行的次治理委员会选举中作为亚洲代表入选,参与Istio技术策略的制定和社区决策。
本书作者作为Istio早期的实践者,除了持续开发满足用户需求的服务网格产品并参与社区贡献,也积极促进服务网格等云原生技术在国内的推广,包括于2019年出版《云原生服务网格Istio:原理、实践、架构与源码解析》一书,并通过KubeCon、IstioCon、ServiceMeshCon等云原生和服务网格相关的技术峰会,推广服务网格和Istio相关的架构、生产实践和配套解决方案等。
写作目的
《Istio 权威指南》作为“华为云原生技术丛书”的一员,面向云计算领域的从业者及感兴趣的技术人员,普及与推广Istio。本书作者来自华为云云原生团队,本书基于作者在华为云及Istio社区的设计与开发实践,以及与服务网格强相关的Kubernetes容器、微服务和云原生领域的丰富经验,对Istio的原理、实践、架构与源码进行了系统化的深入剖析,由浅入深地讲解了Istio的概念、原理、架构、模型、用法、设计理念、典型实践和源码细节。
本书是《Istio权威指南》的下册,适合入门级读者从零开始了解Istio的架构,也适合有一定基础的读者深入研究Istio的源码。
《Istio权威指南》的组织架构
《Istio权威指南》分为原理篇、实践篇、架构篇和源码篇,总计26章,其组织架构如下。
原理篇:讲解Istio的相关概念、主要架构和工作原理。其中,第1章通过讲解Istio与微服务、服务网格、Kubernetes这几个云原生关键技术的联系,帮助读者立体地理解Istio的概念。第2章概述Istio的工作机制、服务模型、总体架构和主要组件。第3、4、5章通过较大篇幅讲解Istio提供的流量治理、可观测性和策略控制、服务安全这三大核心特性,包括其各自解决的问题、实现原理、配置模型、配置定义和典型应用,可以满足大多数读者在工作中的具体需求。第6章重点讲解自动注入和流量拦截的透明代理原理。第7章讲解Istio正在快速发展的多基础设施流量管理,包括对各种多集群模型、容器、虚拟机的统一管理等。
实践篇:通过贯穿全书的一个天气预报应用来实践Istio的非侵入能力。其中,第8章讲解如何从零开始搭建环境。第9章通过Istio的非侵入方式生成指标、拓扑、调用链和访问日志等。第10章讲解多种灰度发布方式,带读者了解Istio灵活的发布策略。第11章讲解负载均衡、会话保持、故障注入、超时、重试、HTTP重定向、HTTP重写、熔断与连接池、熔断异常点检测、限流等流量策略的实践。第12章讲解两种认证策略及其与授权的配合,以及Istio倡导的零信任网络的关键技术。第13章讲解入口网关和出口网关的流量管理,展示服务网格对东西向流量和南北向流量的管理。第14章则是对多集群和虚拟机环境下流量治理的实践。
架构篇:从架构的视角分别讲解Istio各组件的设计思想、数据模型和核心工作流程。在Istio 1.16中,Istiod以原有的Pilot为基础框架构建了包含Pilot、Citadel、Galley等组件的统一控制面,第15、16、17章分别讲解以上三个组件各自的架构、模型和流程机制。第18、19、20章依次讲解服务网格数据面上Pilot-agent、Envoy和Istio-proxy的架构和流程,包括三者的结合关系,配合Istio控制面组件完成流量管理,特别是Envoy的架构、模型和关键流程。
源码篇:包括第21~26章,与架构篇的6章对应,分别讲解Istio管理面组件Pilot、Citadel、Galley与数据面Pilot-agent、Envoy、Istio-proxy的主要代码结构、代码流程和关键代码片段。本篇配合架构篇中每个组件的架构和机制,对Istio重要组件的实现进行了更详细的讲解和剖析,为读者深入研读Istio相关代码,以及在生产环境下进行相应代码的调试和修改提供指导。
学习建议
对于有不同需求的读者,我们建议这样使用本书。
对云原生技术感兴趣的所有读者,都可通过阅读《Istio权威指南(上):云原生服务网格Istio原理与实践》,了解服务网格和Istio的概念、技术背景、设计理念与功能原理,并全面掌握Istio流量治理、可观测性和安全等功能的使用方式。通过实践篇可以从零开始学习搭建Istio运行环境并完成多种场景的实践,逐渐熟悉Istio的功能、应用场景,以及需要解决的问题,并加深对Istio原理的理解。对于大多数架构师、开发者和其他从业人员,通过对原理篇和实践篇的学习,可以系统、全面地了解Istio的方方面面,满足日常工作需要。
对Istio架构和实现细节感兴趣的读者,可以阅读《Istio权威指南(下):云原生服务网格Istio架构与源码》,了解Istio的整体架构、各个组件的详细架构、设计理念和关键的机制流程。若对Istio源码感兴趣,并且在实际工作中需要调试或基于源码进行二次开发,那么还可以通过阅读源码篇,了解Istio各个项目的代码结构、详细流程、主要数据结构及关键代码片段。在学习源码的基础上,读者可以根据自己的兴趣或工作需求,深入了解某一关键机制的完整实现,并作为贡献者参与Istio或Envoy项目的开发。
勘误和支持
您在阅读本书的过程中有任何问题或者建议时,都可以通过本书源码仓库提交Issue或者PR(源码仓库地址参见本书封底的读者服务),也可以关注华为云原生官方微信公众号并加入微信群与我们交流。我们十分感谢并重视您的反馈,会对您提出的问题、建议进行梳理与反馈,并在本书后续版本中及时做出勘误与更新。
本书还免费提供了Istio培训视频及Istio常见问题解答等资源,请通过本书封底的读者服务获取这些资源。
致谢
在本书的写作及成书过程中,本书作者团队得到了公司内外领导、同事及朋友的指导、鼓励和帮助。感谢华为云张平安、张宇昕、李帮清等业务主管对华为云原生技术丛书及本书写作的大力支持;感谢华为云容器团队张琦、王泽锋、张永明、吕赟等对本书的审阅与建议;感谢电子工业出版社博文视点张国霞编辑一丝不苟地制订出版计划及组织工作。感谢章鑫、徐飞等一起参与华为云原生技术丛书《云原生服务网格Istio:原理、实践、架构与源码解析》的创作,你们为国内服务网格技术的推广做出了很大贡献,也为本书的出版打下了良好的基础。感谢四位作者的家人,特别是豆豆、小核桃、毛毛小朋友的支持,本书创作的大部分时间源自陪伴你们的时间;也感谢CNCF及Istio、Kubernetes、Envoy社区众多开源爱好者辛勤、无私的工作,期待和你们一起基于云原生技术为产业创造更大价值。谢谢大家!
——华为云容器服务域总监 黄 毽
——华为云应用服务网格架构师 张超盟
推荐序一
——华为云CTO 张宇昕
随着企业数字化转型的全面深入,企业在生产、运营、创新方面都对基础设施提出了全新要求。为了保障业务的极致性能,资源需要被随时随地按需获取;为了实现对成本的精细化运营,需要实现对资源的细粒度管理;新兴的智能业务则要求基础设施能提供海量的多样化算力。为了支撑企业的数智升级,企业的基础设施需要不断进化、创新。如今,企业逐步进入深度云化时代,由关注资源上云转向关注云上业务创新,同时需要通过安全、运维、IT治理、成本等精益运营手段来深度用云、高效管云。云原生解决了企业以高效协同模式创新的本质问题,让企业的软件架构可以去模块化、标准化部署,极大提高了企业应用生产力。
从技术发展的角度来看,我们可以把云原生理解为云计算的重心从“资源”逐渐转向“应用”的必然结果。以资源为中心的上一代云计算技术专注于物理设备如何虚拟化、池化、多租化,典型代表是计算、网络、存储三大基础设施的云化。以应用为中心的云原生技术则专注于应用如何更好地适应云环境。相对于传统应用通过迁移改造“上云”,云原生的目标是通过一系列的技术支撑,使用户在云环境下快速开发和运行、管理云原生应用,并更好地利用云资源和云技术。
服务网格是CNCF(Cloud-Native Computing Foundation,云原生计算基金会)定义的云原生技术栈中的关键技术之一,和容器、微服务、不可变基础设施、声明式API等技术一起,帮助用户在动态环境下以弹性和分布式的方式构建并运行可扩展的应用。服务网格在云原生技术栈中,向上连接用户应用,向下连接多种计算资源,发挥着关键作用。
(1)服务网格与底层资源、运行环境结合,构建了一个理解应用需求、对应用更友好的基础设施,而不只是提供一堆机器和资源。服务网格帮助用户打造“以应用为中心”的云原生基础设施,让基础设施能感知应用且更好地服务于应用,对应用进行细粒度管理,更有效地发挥资源的效能。服务网格向应用提供的这层基础设施也经常被称为“应用网络”。用户开发的应用程序像使用传统的网络协议栈一样使用服务网格提供的应用层协议。就像TCP/IP负责将字节码可靠地在网络节点间传递,服务网格负责将用户的应用层信息可靠地在服务间传递,并对服务间的访问进行管理。在实践中,包括华为云在内的越来越多的云厂商将七层应用流量管理能力和底层网络融合,在提供传统的底层连通性能力的同时,基于服务的语义模型,提供了应用层丰富的流量、安全和可观测性管理能力。
(2)向上,服务网格以非侵入的方式提供面向应用的韧性、安全、动态路由、调用链、拓扑等应用管理和运维能力。这些能力在传统应用开发模式下,需要在开发阶段由开发人员开发并持续维护。而在云原生开发模式下,基于服务网格的非侵入性特点,这些能力被从业务中解耦,无须由开发人员开发,由运维人员配置即可。这些能力包括:灵活的灰度分流;超时、重试、限流、熔断等;动态地对服务访问进行重写、重定向、头域修改、故障注入;自动收集应用访问的指标、访问日志、调用链等可观测性数据,进行故障定界、定位和洞察;自动提供完整的面向应用的零信任安全,比如自动进行服务身份认证、通道加密和细粒度授权管理。使用这些能力时,无须改动用户的代码,也无须使用基于特定语言的开发框架。
作为服务网格技术中影响力的项目,Istio的平台化设计和良好扩展性使得其从诞生之初就获得了技术圈和产业界的极大关注。基于用户应用Istio时遇到的问题,Istio的版本在稳定迭代,功能在日益完善,易用性和运维能力在逐步增强,在大规模生产环境下的应用也越来越多。特别是,Istio于2022年9月被正式批准加入CNCF,作为在生产环境下使用多的服务网格项目,Istio在加速成熟。
华为云在2018年率先发布全球首个Istio商用服务:ASM(Application Service Mesh,应用服务网格)。ASM是一个拥有高性能、高可靠性和易用性的全托管服务网格。作为分布式云场景中面向应用的网络基础,ASM对多云、混合云环境下的容器、虚拟机、Serverless、传统微服务、Proxyless服务提供了应用健康、韧性、弹性、安全性等统一的全方位管理。
作为早一批投身云原生技术的厂商,华为云是CNCF在亚洲的初创成员,社区代码贡献和Maintainer席位数均持续位居亚洲。华为云云原生团队从2018年开始积极参与Istio社区的活动,参与Istio社区的版本特性设计与开发,基于用户的共性需求开发了大量大颗粒特性,社区贡献位居全球第三、中国。华为云云原生团队成员入选了每届Istio社区指导委员会,参与了Istio社区的重大技术决策,持续引领了Istio项目和服务网格技术的发展。
2021年4月,华为云联合中国信通院正式发布云原生2.0白皮书,全面诠释了云原生2.0的核心理念,分享了云原生产业洞察,引领了云原生产业的繁荣。此外,华为云联合CNCF、中国信通院及业界云原生技术精英们成立全球云原生交流平台——创原会,创原会当前已经在中国、东南亚、拉美、欧洲陆续成立分会,探索前沿云原生技术、共享产业落地实践经验,让云原生为数字经济发展和企业数字化转型贡献更多的价值。
《Istio权威指南》来源于华为云云原生团队在云服务开发、客户解决方案构建、Istio社区特性开发、生产环境运维等日常工作中的实践、思考和总结,旨在帮助技术圈的更多朋友由浅入深且系统地理解Istio的原理、实践、架构与源码。书中内容在描述Istio的功能和机制的同时,运用了大量的图表总结,并深入解析其中的概念和技术点,可以帮助读者从多个维度理解云原生、服务网格等相关技术,掌握基于Istio实现应用流量管理、零信任安全、应用可观测性等能力的相关实践。无论是初学者,还是对服务网格有一定了解的用户,都可以通过本书获取自己需要的信息。
推荐序二
——CNCF CTO Chris Aniszczyk
我很高兴向大家介绍这本关于Istio服务网格技术的权威书籍。Istio是一种创新性的平台,在云原生计算领域迅速赢得人们的广泛关注。企业在向微服务和容器化架构转型的过程中,对强大且可扩展的服务发现、流量管理及安全平台的需求变得比以往更加迫切。Istio在2022年9月正式被CNCF接受为孵化项目,并成为一种领先的解决方案,为云原生应用提供了无缝连接、可观察性和控制等能力。
本书提供了全面且实用的Istio指南,涵盖了Istio的核心概念、特性和对xDS协议等主题的深入探讨,还包括对Envoy和Istio项目源码的深入解析,这对潜在贡献者非常有用。无论您是软件工程师、SRE还是云原生开发人员,本书都将为您提供利用Envoy和Istio构建可扩展和安全的云原生应用所需的知识和技能。
我要祝贺作者们完成了杰出的工作,并感谢他们在云原生社区分享自己的专业知识。我相信本书将成为对Envoy、Istio及现代云原生应用开发感兴趣的人不可或缺的资源。
(原文)
I am thrilled to introduce this definitive book on Istio service mesh technology, a revolutionary platform that has been rapidly gaining popularity in the world of cloud-native computing. As businesses shift towards microservices and containerized architectures, the need for a robust and scalable platform for service discovery, traffic management, and security has become more critical than ever before. Istio was officially accepted in the CNCF as an incubation project in September 2022 and has emerged as a leading solution that provides seamless connectivity, observability, and control for cloud native applications.
This book provides a comprehensive and practical guide to Istio, covering its core concepts, features and deep dives into topics like the xDS protocol. It also includes a deep dive source code analysis of the Envoy and Istio projects which can be very useful to potential contributors. Whether you are a software engineer, an SRE or a cloud native developer, this book will provide you with the knowledge and skills which are necessary to leverage the power of Envoy and Istio to build scalable and secure cloud native applications.
I would like to congratulate the authors for their outstanding work and thank them for sharing their expertise with the wider cloud native community. I am confident that this book will be an invaluable resource for anyone interested in both Envoy and Istio and their roles in modern cloud native development.