Apache SkyWalking实战+Service Mesh微服务架构设计+深入浅出Istiopdf下载

Apache SkyWalking实战+Service Mesh微服务架构设计+深入浅出Istio百度网盘pdf下载

作者:
简介:Apache SkyWalking实战+Service Mesh微服务架构设计+深入浅出Istio
出版社:
出版时间:
pdf下载价格:0.00¥

免费下载


书籍下载


内容介绍



基本信息

9787111659068 9787111636847 9787121359644

书   名: apache skywalking实战
图书定价: 79元
作 者: 吴晟 高洪涛 赵禹光 曹奕雄
出 版 社: 机械工业出版社
出版日期: 2020-07-09
ISBN 号: 9787111659068
开   本: 16开
页   数: 244
版   次: 1-1





这是一本从功能使用、项目设计、核心模块、工作原理、扩展实践5个维度全面讲解SkyWalking的著作。由SkyWalking的创始人和核心开发团队撰写,得到了来自华为、百度、蚂蚁金服、京东数科、Tetrate.io的5位技术专家的联袂推荐。
本书共14章,在逻辑上分为4个部分:
一部分 SkyWalking入门(1~3章)
详细介绍了SkyWalking的常识、架构设计、安装与配置,以及它在单体应用架构和微服务架构中的实战作,能帮助读者快速上手;
二部分 SkyWalking理论(4~5章)
作为监控软件,SkyWalking需要考虑如何使自身对应用的影响小化,以及如何实现分布式追踪和监控,这两章对此做了详细的技术分析。内存无堵塞队列是减小系统负载的关键,而集中分布式追踪模型是SkyWalking监控分析的灵魂。
三部分 SkyWalking原理(6~12章)
SkyWalking后端的OAP平台具有极强的模块化和扩展能力,本篇深入讲解了总体的模块化设计,以及OAL分析、集和存储这三个核心模块。此外,还介绍了探针插件开发和MQ通信模式扩展这两个热门主题。
部分 SkyWalking趋势(13~14章)
SkyWalking虽然是以分布式探针为基础的分布式追踪工具,但深耕于整个APM领域。本部分从Service Mesh和基于语言探针性能剖析这两大方向,展现了SkyWalking在云原生领域更大的集成能力和运用范围。




吴晟 高洪涛 赵禹光 曹奕雄 等著:吴晟
Tetrate.io创始工程师、前华为云技术专家,专注于云原生、分布式系统监控和Service Mesh领域的技术发展。Apache基金会会员,Apache SkyWalking创始人、项目VP和PMC成员,Apache孵化器PMC成员,Apache ShardingSphere PMC成员,Apache APISIX PMC成员,Apache ECharts (incubating)和Apache DolphinScheduler (incubating)孵化器导师,Zipkin成员和贡献者,CNCF OpenTracing核心维护者。

高洪涛
Tetrate.io创始工程师、前华为云技术专家、前网系统架构师,拥有丰富的云原生产品设计、研发与实施经验,对分布式数据库、容器调度、微服务、Service Mesh等技术有深入了解。目前为Apache ShardingSphere和Apache SkyWalking核心贡献者,参与项目在软件开发云上的商业化进程,还曾参与Elastic-Job等开源项目,拥有丰富的开源项目管理、推广和社区运营经验。

赵禹光
Apache SkyWalking PMC成员、 Sentinel Committer,专注于分布式系统监控、分布式服务的流量控制和分布式作业调度领域的技术发展。贝壳找房软件工程师,贝壳找房开源作业调度平台作者。

曹奕雄
Apache SkyWalking PMC成员、专注于分布式系统监控、RPC等领域的技术发展。曾就职于贝壳找房,现就职于猿辅导。

李璨
Apache SkyWalking PMC成员,对分布式系统监控与微服务的开发和设计有深刻理解,在Kubernetes、云原生和Service Mesh的落地实践方面拥有丰富经验。




前 言
1章 全面认识Apache SkyWalking 1
1.1 SkyWalking介绍 1
1.1.1 什么是SkyWalking 1
1.1.2 SkyWalking的发展历程 2
1.1.3 SkyWalking的适用场景 3
1.1.4 SkyWalking的社区与生态 5
1.2 SkyWalking的架构设计 6
1.2.1 面向协议设计 7
1.2.2 模块化设计 8
1.2.3 轻量化设计 9
1.3 SkyWalking的优势 9
1.3.1 传统分布式架构与云原生的一致性支持 10
1.3.2 易于维护 10
1.3.3 高性能 11
1.3.4 利于二次开发和集成 11
1.4 SkyWalking开发知识介绍 11
1.4.1 JavaAgent介绍 12
1.4.2 远程调试介绍 18
1.4.3 Service Mesh介绍 19
1.5 本章小结 21
2章 SkyWalking安装与配置 22
2.1 项目编译与工程结构 22
2.1.1 项目编译 22
2.1.2 工程结构 24
2.2 JavaAgent安装 27
2.2.1 安装方法 27
2.2.2 配置参数 29
2.2.3 插件介绍 30
2.2.4特性 36
2.3 后端与UI部署 43
2.3.1 SkyWalking部署介绍 43
2.3.2 快速启动 45
2.3.3 application.yaml详解 46
2.3.4 参数复写 51
2.3.5 IP和端口设置 51
2.3.6 集管理配置 52
2.3.7 Kubernetes部署 56
2.3.8 后端存储 58
2.3.9 设置服务端采样率 62
2.3.10 告警设置 63
2.3.11 Eporter设置 66
2.3.12 UI部署详解 66
2.4 UI介绍 67
2.4.1 Dashboard介绍 67
2.4.2 拓扑介绍 69
2.4.3 Trace视图 70
2.5 本章小结 71
3章 Apache SkyWalking实战 72
3.1 SkyWalking与单体应用架构 72
3.1.1 什么是单体应用架构 72
3.1.2 单体应用架构的优缺点 74
3.1.3 SkyWalking对单体应用架构的适用性 74
3.2 SkyWalking与微服务架构 75
3.2.1 远程过程调用 77
3.2.2 外部服务 78
3.3 实战环境搭建 79
3.3.1 SkyWalking后台搭建 79
3.3.2 实战集搭建 80
3.4 实战作 82
3.4.1 观察微服务中的各个维度 82
3.4.2 观察指标 83
3.4.3 观察系统架构 85
3.4.4 提取关键路径 90
3.4.5 查找失败服务或请求 93
3.4.6 查找慢服务或请求 96
3.4.7 处理告警 101
3.5 本章小结 105
4章 轻量级队列内核 106
4.1 什么是轻量级队列内核 106
4.1.1 Buffer 106
4.1.2 Channel 107
4.1.3 DataCarrier 108
4.2 生产者—消费者如何协同 108
4.2.1 生产消息 108
4.2.2 消费消息 111
4.3 本章小结 115
5章 SkyWalking追踪模型 116
5.1 追踪模型入门 116
5.1.1 Dapper与追踪模型 116
5.1.2 典型的追踪模型 119
5.2 SkyWalking追踪模型与协议 120
5.2.1 SkyWalking追踪模型 120
5.2.2 SkyWalking数据传输协议 122
5.3 SkyWalking探针上下文传播协议 124
5.3.1 传播模型 124
5.3.2 传播上下文 124
5.4 SkyWalking v3协议 125
5.5 本章小结 126
6章 SkyWalking OAP Server模块化架构 127
6.1 模块化框架 127
6.1.1 模块和模块实现 127
6.1.2 模块管理配置文件 129
6.2 模块启动与模块依赖 130
6.3 模块可替换性 131
6.4 模块实现选择器 132
6.5 新增模块 132
6.6 本章小结 133
7章 Observability Analysis Language体系 134
7.1 什么是OAL 134
7.2 OAL实现原理 135
7.3 OAL语法 137
7.3.1 指标计算定义语法 137
7.3.2 disable语法 142
7.4 本章小结 143
8章 SkyWalking OAP Server集通信模型 144
8.1 计算流 145
8.2 通信协议 146
8.3 集协调器 148
8.4 本章小结 149
9章 SkyWalking OAP Server存储模型 150
9.1 模型结构介绍 150
9.1.1 注册模型结构 150
9.1.2 明细模型结构 152
9.1.3 指标模型结构 153
9.1.4 采样模型结构 154
9.2 存储模型间的联系 154
9.3 存储模型与OAL的关系 156
9.4 本章小结 159
10章 Java探针插件开发 160
10.1 基础概念 160
10.1.1 Span 160
10.1.2 Trace Segment 161
10.1.3 ContetCarrier 162
10.1.4 ContetSnapshot 162
10.2 核心对象相关API的使用 162
10.3 探针插件工程结构 168
10.3.1 工程结构简介 168
10.3.2 定义拦截形式 169
10.3.3 实现拦截形式的拦截器 171
10.4 探针插件开发实战 171
10.4.1 设计探针插件 172
10.4.2 Apache Dubbo探针插件 173
10.4.3 Spring @Async探针插件 177
10.5 本章小结 182
11章 探针和后端消息通信模式开发 183
11.1 为什么官方默认不提供多种方式 183
11.2 通信机制分析 184
11.2.1 探针与后端的注册通信 184
11.2.2 探针与后端的数据上报通信 193
11.3 如何扩展通信模式 197
11.3.1 使用HTTP扩展注册通信 198
11.3.2 使用Kafka扩展数据上报通信 205
11.4 本章小结 214
12章 SkyWalking OAP Server监控与指标 215
12.1 针对Trace场景的监控指标 216
12.2 针对Service Mesh场景的监控指标 219
12.3 自监控 220
12.4 本章小结 221
13章 下一代监控体系——SkyWalking观测Service Mesh 222
13.1 SkyWalking可观测性模型 223
13.1.1 监控指标 223
13.1.2 告警与可视化 224
13.1.3 分布式追踪和日志 225
13.2 观测Istio的监控指标 226
13.2.1 Mier模式集成 226
13.2.2 ALS模式集成 227
13.3 观测Istio的技术发展 229
13.4 本章小结 229
14章 SkyWalking未来初探 230
14.1 SkyWalking 7新特性 230
14.1.1 Java探针不再支持JDK 1.6和1.7 230
14.1.2 支持新的生产级存储实现 231
14.1.3 HTTP请求参数采集 231
14.1.4 HTTP收集协议和Ngin监控 232
14.1.5 Elasticsearch存储的进一步优化 232
14.2 代码性能剖析 232
14.2.1 性能剖析基本原理 232
14.2.2 性能剖析的功能特点 233
14.2.3 使用场景 233
14.3 SkyWalking 8 Roadmap 234
14.4 本章小结 234



Service Mesh微服务架构设计

内容简介
架构师撰写,从设计与工程化视角分析Service Mesh,穿插大量一线实践真知灼见,涵盖微服务实施细则、Istio/Envoy的架构设计与实现、Service Mesh工程化设计思想与发展趋势等。本书分为两篇,共计10章内容。



基础篇(1~3章),

着重讲解微服务架构和治理,以及Service Mesh技术当前的现状。

本篇帮读者厘清微服务架构的实施前准备,实施风险与痛点/难点问题,并引出应对微服务通信与服务治理问题的方案——Service Mesh,阐述Service Mesh生态的各个方面,包括Service Mesh的价值与企业需求的内在动因。



架构篇(4~10章),

深入剖析Service Mesh主流方案Istio/Envoy在架构设计层面的原理和实现,以及Service Mesh技术展望。其中4~7章为重点章节,建议读者认真研读与实践。

4章详细分析Envoy的整体架构,并就架构设计层面与Ngin,做全方位对比分析。

5章分析Istio的整体架构以及各个组件的功能和设计。

6~7章分别从控制流与数据流的角度,分析请求的处理策略与配置以及在整个Service Mesh中的流向和处理。

后续章节分别讨论Istio的服务治理(聚焦可观测性、链路治理),Service Mesh的架构思想的工程化应用,以及Service Mesh技术在云原生架构下的发展畅想。

目录
前言

一篇 基础篇

1章 微服务架构 …… 2

1.1 为什么需要微服务 …… 2

1.1.1 传统单体服务的问题 …… 2

1.1.2 微服务的定义 …… 3

1.1.3 微服务与康威定律 …… 3

1.1.4 微服务的收益 …… 4

1.2 微服务架构的挑战 …… 4

1.2.1 服务拆分 …… 4

1.2.2 开发挑战 …… 5

1.2.3 测试挑战 …… 5

1.2.4 运维挑战 …… 6

1.3 微服务化的具体时机 …… 6

1.4 微服务化开展前的准备工作 …… 8

1.4.1 微服务开发框架 …… 8

1.4.2 微服务标准化 …… 15

1.4.3 持续集成与发布 …… 17

1.5 微服务实施 …… 17

1.5.1 微服务拆分 …… 17

1.5.2 微服务通信 …… 19

1.5.3 微服务稳定性保障 …… 20

1.6 本章小结 …… 25

2章 微服务治理 …… 26

2.1 微服务治理基础 …… 26

2.1.1 服务治理由来 …… 26

2.1.2 服务治理的目标与愿景 …… 27

2.1.3 服务治理的工作范畴 …… 28

2.1.4 服务治理闭环体系 …… 29

2.2 正向服务治理 …… 29

2.2.1 效率治理 …… 30

2.2.2 稳定性治理 …… 31

2.3 效果治理 …… 34

2.4 可见可观测 …… 35

2.4.1 服务可见性 …… 35

2.4.2 变更可见性 …… 36

2.4.3 可观测性 …… 36

2.5 量化分析体系 …… 41

2.5.1 稳定性风险度量 …… 41

2.5.2 基于多维度监控的故障定位 …… 42

2.5.3 风险分析 …… 43

2.6 线上治理 …… 43

2.6.1 线上预案体系 …… 43

2.6.2 基于Metric的预案自动触发 …… 44

2.6.3 治理参数动态调整 …… 44

2.7 线下治理 …… 47

2.7.1 链路稳定性治理 …… 47

2.7.2 架构与资源治理 …… 50

2.8 服务治理演进 …… 50

2.8.1 远程Proy方式 …… 51

2.8.2 基于智能客户端的服务框架 …… 52

2.8.3 本地Proy …… 52

2.9 理想的服务治理架构 …… 53

2.10 本章小结 …… 54

3章 下一代微服务框架Service Mesh概要 …… 55

3.1 Service Mesh基础 …… 55

3.1.1 什么是Service Mesh …… 55

3.1.2 Service Mesh的基本模式 …… 56

3.2 Service Mesh的发展历程 …… 58

3.3 Service Mesh项目Linkerd …… 60

3.3.1 Linkerd演进 …… 60

3.3.2 Linkerd路由机制 …… 62

3.3.3 Linkerd 2.0核心架构 …… 63

3.4 Service Mesh项目Istio …… 64

3.4.1 Envoy …… 64

3.4.2 Istio …… 66

3.5 Service Mesh其他解决方案 …… 67

3.5.1 国外其他Service Mesh项目 …… 67

3.5.2 Service Mesh在中国的发展 …… 68

3.6 Service Mesh云上产品 …… 69

3.6.1 AWS App Mesh …… 69

3.6.2 Azure Service Fabric Mesh …… 69

3.6.3 Google Cloud Service Mesh …… 70

3.6.4 SuperGloo …… 70

3.7 Service Mesh标准化 …… 71

3.8 本章小结 …… 71

二篇 架 构 篇

4章 Envoy架构剖析 …… 74

4.1 Envoy整体架构 …… 74

4.2 Envoy网络模型 …… 78

4.3 Envoy扩展模型 …… 84

4.4 Envoy数据平面API …… 88

4.5 Envoy启动管理 …… 91

4.6 Envoy与Ngin架构层面的对比 …… 95

4.7 本章小结 …… 100

5章 Istio架构剖析 …… 101

5.1 Istio整体架构 …… 101

5.2 Istio的Kubernetes基础 …… 104

5.3 Istio流量控制模型 …… 112

5.4 Mier模型 …… 118

5.5 Istio安全 …… 122

5.6 Istio配置处理框架 …… 124

5.7 本章小结 …… 125

6章 Istio控制流设计 …… 126

6.1 Envoy生命周期管理 …… 126

6.2 Istio配置变更管理 …… 133

6.3 控制平面和数据平面的XDS交互 …… 138

6.4 XDS配置生成 …… 143

6.5 XDS配置的Envoy处理 …… 149

6.6 本章小结 …… 155

7章 Istio数据流设计 …… 156

7.1 Iptables …… 156

7.2 管理 …… 158

7.3 连接管理 …… 160

7.4 网络I/O和缓冲区管理 …… 162

7.5 Thrift协议处理 …… 164

7.6 HTTP请求处理 …… 168

7.7 本章小结 …… 182

8章 Istio微服务治理 …… 183

8.1 链路稳定性治理 …… 183

8.2 链路可观测性 …… 190

8.3 本章小结 …… 200

9章 Service Mesh架构的工程化设计 …… 201

9.1 复用和解耦 …… 201

9.2 架构扩展机制 …… 203

9.3 性能设计 …… 204

9.4 架构设计的权衡 …… 206

9.5 API和SDK设计 …… 207

9.6 配置管理 …… 208

9.7 本章小结 …… 210

10章 Service Mesh与云原生架构 …… 211

10.1 Service Mesh和Serverless …… 211

10.2 东西向和南北向通信的统一 …… 215

10.3 云原生时代的Service Mesh …… 216

10.4 Service Mesh现状和展望 …… 217

10.5 本章小结 …… 218

附录 Service Mesh迁移的要点与原则 …… 219

深入浅出Istio:Service Mesh快速入门与实践

内容简介
Google联合IBM、Lyft推出的Istio,一经问世就受到了人们的普遍关注,其热度迅速攀升,成为Service Mesh(服务网格)方案的代表项目。本书整理了Istio中的部分概念和案例,以快速入门的形式,对Istio的基础用法一一进行讲解,并在书末给出一些试用方面的建议。



在本书中,前3章从微服务和服务网格的简短历史开始,讲述了服务网格的诞生过程、基本特性及Istio的核心功能,若对这些内容已经有所了解,则可以直接从4章开始阅读;4、5章分别讲解了Istio的配置和部署过程;6章至9章,通过多个场景来讲解Istio的常用功能;10章结合了笔者的实践经验,为读者提供了Istio的一系列试用建议。本书没有采用官方复杂的Book Info应用案例,而是采用客户端+简单HTTP服务端的案例,读者随时都能在短时间内启动一个小的测试。



本书面向对服务网格技术感兴趣,并希望进一步了解和学习Istio的中技术人员,假设读者已经了解Kubernetes的相关概念并能够在Kubernetes上熟练部署和管理微服务。若希望全面、深入地学习Kubernetes,可参考《Kubernetes quan威指南:从Docker到Kubernetes实践全接触》和《Kubernetes quan威指南:企业级容器云实战》。

目录
1章 服务网格的历史 1

1.1 Spring Cloud 3

1.2 Linkerd 4

1.3 Istio 6

1.4 国内服务网格的兴起 6



2章 服务网格的基本特性 8

2.1 连接 9

2.2 安全 12

2.3 策略 13

2.4 观察 13



3章 Istio基本介绍 15

3.1 Istio的核心组件及其功能 16

3.1.1 Pilot 16

3.1.2 Mier 18

3.1.3 Citadel 20

3.1.4 Sidecar(Envoy) 20

3.2 核心配置对象 21

3.2.1 networking.istio.io 22

3.2.2 config.istio.io 24

3.2.3 authentication.istio.io 27

3.2.4 rbac.istio.io 28

3.3 小结 28



4章 Istio快速入门 29

4.1 环境介绍 30

4.2 快速部署Istio 31

4.3 部署两个版本的服务 33

4.4 部署客户端服务 37

4.5 验证服务 39

4.6 创建目标规则和默认路由 39

4.7 小结 42



5章 用Helm部署Istio 43

5.1 Istio Chart概述 44

5.1.1 Chart.yaml 44

5.1.2 values-*.yaml 45

5.1.3 requirements.yaml 46

5.1.4 templates/_affinity.tpl 47

5.1.5 templates/sidecar-injector-configmap.yaml 47

5.1.6 templates/configmap.yaml 48

5.1.7 templates/crds.yaml 48

5.1.8 charts 48

5.2 全局变量介绍 49

5.2.1 hub和tag 49

5.2.2 ingress.enabled 50

5.2.3 Proy相关的参数 51

5.2.4 proy_init.image 53

5.2.5 imagePullPolicy 53

5.2.6 controlPlaneSecurityEnabled 53

5.2.7 disablePolicyChecks 53

5.2.8 enableTracing 53

5.2.9 mtls.enabled 53

5.2.10 imagePullSecrets 54

5.2.11 arch 54

5.2.12 oneNamespace 54

5.2.13 configValidation 54

5.2.14 meshEpansion 55

5.2.15 meshEpansionILB 55

5.2.16 defaultResources 55

5.2.17 hyperkube 55

5.2.18 priorityClassName 55

5.2.19 crds 56

5.2.20 小结 56

5.3 Istio安装清单的生成和部署 56

5.3.1 编辑values.yaml 56

5.3.2 生成部署清单 58

5.3.3 部署Istio 58

5.4 小结 59



6章 Istio的常用功能 60

6.1 在网格中部署应用 61

6.1.1 对工作负载的要求 63

6.1.2 使用自动注入 64

6.1.3 准备测试应用 69

6.2 修改Istio配置 69

6.3 使用Istio Dashboard 70

6.3.1 启用Grafana 70

6.3.2 访问Grafana 71

6.3.3 开放Grafana服务 73

6.3.4 学习和定制 74

6.4 使用Prometheus 76

6.4.1 访问Prometheus 76

6.4.2 开放Prometheus服务 77

6.4.3 学习和定制 77

6.5 使用Jaeger 77

6.5.1 启用Jaeger 78

6.5.2 访问Jaeger 78

6.5.3 跟踪参数的传递 81

6.5.4 开放Jaeger服务 86

6.6 使用Kiali 87

6.6.1 启用Kiali 87

6.6.2 访问Kiali 88

6.6.3 开放Kiali服务 92

6.7 小结 92



7章 HTTP流量管理 93

7.1 定义目标规则 94

7.2 定义默认路由 98

7.3 流量的拆分和迁移 101

7.4 金丝雀部署 105

7.5 根据来源服务进行路由 108

7.6 对URI进行重定向 110

7.7 通信时控制 115

7.8 故障重试控制 116

7.9 入口流量管理 120

7.9.1 使用Gateway开放服务 121

7.9.2 为Gateway添加证书支持 123

7.9.3 为Gateway添加多个证书支持 124

7.9.4 配置入口流量的路由 126

7.10 出口流量管理 127

7.10.1 设置Sidecar的流量劫持范围 128

7.10.2 设置ServiceEntry 129

7.11 新建Gateway控制器 131

7.12 设置服务熔断 134

7.13 故障注入测试 136

7.13.1 注入延迟 137

7.13.2 注入中断 138

7.14 流量复制 139



8章 Mier适配器的应用 142

8.1 Mier适配器简介 143

8.2 基于Denier适配器的访问控制 144

8.3 基于Listchecker适配器的访问控制 146

8.4 使用MemQuota适配器进行服务限流 150

8.4.1 Mier对象的定义 150

8.4.2 客户端对象定义 152

8.4.3 测试限流功能 153

8.4.4 注意事项 154

8.5 使用RedisQuota适配器进行服务限流 155

8.5.1 启动Redis服务 155

8.5.2 定义限流相关对象 156

8.5.3 测试限流功能 158

8.6 为Prometheus定义监控指标 158

8.6.1 默认监控指标 159

8.6.2 自定义监控指标 162

8.7 使用stdio输出自定义日志 165

8.7.1 默认的访问日志 167

8.7.2 定义日志对象 169

8.7.3 测试输出 170

8.8 使用Fluentd输出日志 171

8.8.1 部署Fluentd 171

8.8.2 定义日志对象 173

8.8.3 测试输出 174

8.9 小结 175



9章 Istio的安全加固 176

9.1 Istio安全加固概述 177

9.2 启用mTLS 179

9.3 设置RBAC 183

9.4 RBAC的除错过程 189



10章 Istio的试用建议 192

10.1 Istio自身的突出问题 193

10.2 确定功能范围 194

10.3 选择试用业务 196

10.4 试用过程 197

10.4.1 制定目标 197

10.4.2 方案部署 198

10.4.3 测试验证 200

10.4.4 切换演练 201

10.4.5 试点上线 201


暂时没有目录,请见谅!



^_^:a3ef694b44bff36c9994b92c70c9d670