书籍详情
云原生时代的可观测系统最佳实战
作者:罗梦婷 蒲实 著
出版社:电子工业出版社
出版时间:2023-09-01
ISBN:9787121460456
定价:¥108.00
购买这本书可以去
内容简介
在云原生时代,可观测性覆盖了应用的全生命周期,是云原生应用工具之一。本书基于笔者多年的云原生可观测性实践经验,从可观测系统的演进和基础理论开始介绍,结合案例对可观测系统的开源架构、日志、链路、监控、事件和诊断等关键要素的系统设计方案及问题解决思路进行阐述,帮助读者了解在业务实践中可观测性对云原生应用有哪些巨大助力。本书适合云原生应用开发人员、架构师、运维人员、测试人员,以及云计算相关从业人员阅读。
作者简介
罗梦婷,毕业于广东海洋大学电子信息工程专业,先后任职于九联、华润、腾讯等大型企业,参与腾讯云微服务平台的核心研发工作,担任可观测系统技术负责人,在云原生、物联网及AI等技术领域具有成熟的架构设计经验,先后主导过多个大型产业数字化项目的落地。 蒲实,毕业于复旦大学软件学院,目前就职于腾讯,负责腾讯云微服务平台TSF可观测性相关产品功能的研发,在可观测性、微服务等技术领域具有丰富的实战经验,致力于打造高稳定性、高可用性的云原生可观测性产品。
目录
第1章 可观测性概述 1
1.1 可观测系统的演进 1
1.1.1 系统架构的演进 1
1.1.2 可观测性和监控的关系 6
1.1.3 可观测性技术的现状 13
1.2 可观测性数据 20
1.2.1 可观测性数据的类型 20
1.2.2 实战场景下运维人员观测的数据 24
1.2.3 实战场景下研发人员观测的数据 27
1.3 可观测性技术的价值 29
1.3.1 发现系统故障 30
1.3.2 预测系统故障和容量 31
1.3.3 提供事故分析报告 33
1.3.4 预测变更的影响 35
第2章 系统架构 38
2.1 架构设计的基本原则 38
2.1.1 统一的数据语义 39
2.1.2 统一的数据处理平台 46
2.1.3 统一的可视化系统 48
2.2 平台基础架构设计实战 53
2.2.1 实战一:基于开源Grafana Prometheus Tempo Loki的解决方案 53
2.2.2 实战二:基于开源Elastic Stack的解决方案 71
2.2.3 实战三:开源架构优化之解决大规模数据计算问题 81
第3章 日志系统实战 91
3.1 日志模型的设计 91
3.2 日志系统的选型实战 95
3.2.1 全文检索的首选:Elasticsearch实战 95
3.2.2 新生代列式存储:ClickHouse实战 101
3.3 Elasticsearch调优实战指南 104
3.3.1 实战一:Elasticsearch索引模块及配置Index、Shard、Segment 105
3.3.2 实战二:合理使用Elasticsearch数据字段,配置pipeline和mapping 113
3.3.3 实战三:在大规模系统中选择字段存储方式 121
3.3.4 实战四:PB级别数据量场景下的Elasticsearch调优 126
3.3.5 实战五:降本增效,预测Elasticsearch集群的规模并控制成本 130
第4章 链路追踪系统实战 135
4.1 设计链路追踪模型 135
4.1.1 链路追踪的发展历程 135
4.1.2 Span语义规范 138
4.2 系统选型实战 141
4.2.1 OpenTelemetry调用链实战 141
4.2.2 Spring Cloud Sleuth实战 157
4.2.3 Istio实战 169
4.2.4 Filebeat采集方案实战 172
4.2.5 Elasticsearch存储实战 176
4.3 链路追踪系统实战场景 181
4.3.1 实战一:头采、尾采、单元采样的区别与技术难点 181
4.3.2 实战二:在万亿级调用量下应如何自适应采样 185
4.3.3 实战三:陈旧系统如何接入全链路追踪系统 188
第5章 指标系统实战 193
5.1 指标采集模型的设计 193
5.1.1 指标数据的分类 193
5.1.2 指标数据的语义规范 197
5.2 系统选型实战 200
5.2.1 OpenTelemetry指标监控实战 200
5.2.2 Spring Boot Actuator监控实战 216
5.2.3 自研指标监控实战 226
5.2.4 内核监控之eBPF实战 231
5.3 指标系统实战场景 238
5.3.1 实战一:如何保证海量数据上报的实时性和完整性 238
5.3.2 实战二:当陷入告警风暴时应该如何实现告警降噪 240
5.3.3 实战三:使用Filebeat采集指标数据,如何在服务端去重 244
第6章 事件中心实战 251
6.1 事件中心的设计 251
6.1.1 事件驱动架构概述 251
6.1.2 事件模型的设计 254
6.1.3 事件中心的设计及实战 256
6.2 高可用事件中心实战 258
第7章 Profile诊断实战 261
7.1 线上分析工具 261
7.1.1 JDK原生工具 261
7.1.2 Java线上诊断工具 266
7.1.3 网络请求分析工具Wireshark 272
7.2 线上问题实时分析实战 275
7.2.1 实战一:当线上业务内存溢出时如何定位 276
7.2.2 实战二:当线上业务CPU的使用率较高时如何定位 281
7.2.3 实战三:当线上业务I/O异常时如何定位 283
7.2.4 实战四:当接口请求响应变慢时应如何定位 285
7.3 线上问题处理流程实战 286
第8章 可观测性的探索 289
8.1 DevOps与可观测性 289
8.1.1 服务依赖关系 289
8.1.2 了解新版本的变化 293
8.1.3 全链路压力测试不可或缺的可观测性 296
8.1.4 利用混沌工程及时发现问题 298
8.2 AIOps与可观测性 302
8.2.1 如何选择合适的数据和算法 303
8.2.2 企业级场景下AIOps落地的难点与经验 306
1.1 可观测系统的演进 1
1.1.1 系统架构的演进 1
1.1.2 可观测性和监控的关系 6
1.1.3 可观测性技术的现状 13
1.2 可观测性数据 20
1.2.1 可观测性数据的类型 20
1.2.2 实战场景下运维人员观测的数据 24
1.2.3 实战场景下研发人员观测的数据 27
1.3 可观测性技术的价值 29
1.3.1 发现系统故障 30
1.3.2 预测系统故障和容量 31
1.3.3 提供事故分析报告 33
1.3.4 预测变更的影响 35
第2章 系统架构 38
2.1 架构设计的基本原则 38
2.1.1 统一的数据语义 39
2.1.2 统一的数据处理平台 46
2.1.3 统一的可视化系统 48
2.2 平台基础架构设计实战 53
2.2.1 实战一:基于开源Grafana Prometheus Tempo Loki的解决方案 53
2.2.2 实战二:基于开源Elastic Stack的解决方案 71
2.2.3 实战三:开源架构优化之解决大规模数据计算问题 81
第3章 日志系统实战 91
3.1 日志模型的设计 91
3.2 日志系统的选型实战 95
3.2.1 全文检索的首选:Elasticsearch实战 95
3.2.2 新生代列式存储:ClickHouse实战 101
3.3 Elasticsearch调优实战指南 104
3.3.1 实战一:Elasticsearch索引模块及配置Index、Shard、Segment 105
3.3.2 实战二:合理使用Elasticsearch数据字段,配置pipeline和mapping 113
3.3.3 实战三:在大规模系统中选择字段存储方式 121
3.3.4 实战四:PB级别数据量场景下的Elasticsearch调优 126
3.3.5 实战五:降本增效,预测Elasticsearch集群的规模并控制成本 130
第4章 链路追踪系统实战 135
4.1 设计链路追踪模型 135
4.1.1 链路追踪的发展历程 135
4.1.2 Span语义规范 138
4.2 系统选型实战 141
4.2.1 OpenTelemetry调用链实战 141
4.2.2 Spring Cloud Sleuth实战 157
4.2.3 Istio实战 169
4.2.4 Filebeat采集方案实战 172
4.2.5 Elasticsearch存储实战 176
4.3 链路追踪系统实战场景 181
4.3.1 实战一:头采、尾采、单元采样的区别与技术难点 181
4.3.2 实战二:在万亿级调用量下应如何自适应采样 185
4.3.3 实战三:陈旧系统如何接入全链路追踪系统 188
第5章 指标系统实战 193
5.1 指标采集模型的设计 193
5.1.1 指标数据的分类 193
5.1.2 指标数据的语义规范 197
5.2 系统选型实战 200
5.2.1 OpenTelemetry指标监控实战 200
5.2.2 Spring Boot Actuator监控实战 216
5.2.3 自研指标监控实战 226
5.2.4 内核监控之eBPF实战 231
5.3 指标系统实战场景 238
5.3.1 实战一:如何保证海量数据上报的实时性和完整性 238
5.3.2 实战二:当陷入告警风暴时应该如何实现告警降噪 240
5.3.3 实战三:使用Filebeat采集指标数据,如何在服务端去重 244
第6章 事件中心实战 251
6.1 事件中心的设计 251
6.1.1 事件驱动架构概述 251
6.1.2 事件模型的设计 254
6.1.3 事件中心的设计及实战 256
6.2 高可用事件中心实战 258
第7章 Profile诊断实战 261
7.1 线上分析工具 261
7.1.1 JDK原生工具 261
7.1.2 Java线上诊断工具 266
7.1.3 网络请求分析工具Wireshark 272
7.2 线上问题实时分析实战 275
7.2.1 实战一:当线上业务内存溢出时如何定位 276
7.2.2 实战二:当线上业务CPU的使用率较高时如何定位 281
7.2.3 实战三:当线上业务I/O异常时如何定位 283
7.2.4 实战四:当接口请求响应变慢时应如何定位 285
7.3 线上问题处理流程实战 286
第8章 可观测性的探索 289
8.1 DevOps与可观测性 289
8.1.1 服务依赖关系 289
8.1.2 了解新版本的变化 293
8.1.3 全链路压力测试不可或缺的可观测性 296
8.1.4 利用混沌工程及时发现问题 298
8.2 AIOps与可观测性 302
8.2.1 如何选择合适的数据和算法 303
8.2.2 企业级场景下AIOps落地的难点与经验 306
猜您喜欢