描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787121389153
★ 微服务治理首著
★ 集作者多年大规模复杂系统架构经验之大成
★ 以服务治理为核心讲述从线下到线上的治理体系
★ 带你进入微服务深水区,让微服务架构顺畅落地
★ 本书不仅包括微服务治理的关键技术
★ 还包括深度治理能力的构建等
★ 更有含指标采集、传输、存储、分析度量的完整实战案例
★ 实用性强,是一本面向架构师的不可多得的实战类好书
★ 读者可快速掌握微服务治理核心能力,并应用到实际工作
如果你的系统越来越乱,那么可以借鉴本书,重建治理体系,由乱而治。
如果你的系统刚刚起步,那么本书能够让你少走弯路,从一开始就兼顾治理,让一切尽在掌握。
微服务架构会给企业的整个研发体系,包括开发、运维、团队组织、协同,都带来冲击,企业必须构建起一整套以服务治理为核心、从线下到线上的新的能力体系来保障微服务架构顺畅落地。本书是作者在服务及微服务治理领域多年探索和实践的总结,从微服务的度量、管控和管理三个维度入手,力求构建一个覆盖微服务线上及线下的广义的治理体系。全书内容翔实,层次清晰,涉及服务治理的发展历史、难点和特点,微服务治理的关键技术,深度治理能力的构建等,还通过一个完整的涵盖指标采集、传输、存储、分析度量的实战案例,帮助读者掌握微服务治理的核心能力,并应用到实际工作中。
尤其难得之处在于,本书不仅系统讲述了微服务治理的方方面面,还包含大量作者亲历的真实案例,融入了其技术“世界观”和经验,深入浅出、耐人寻味。
本书适合架构师、技术管理者和有一定基础的技术人员阅读,尤其适合已进入或即将进入服务化和服务治理领域的相关人员阅读。希望本书能够为读者提供一些启发和指引,让大家少走弯路。
第1章 服务及服务治理发展简介··· 1
1.1 IT治理与服务治理的关系··· 1
1.2 服务治理发展历史··· 2
1.2.1 单体架构及治理·· 2
1.2.2 企业SOA——EAI/ESB及治理·· 8
1.2.3 分布式服务及治理·· 17
1.2.4 微服务及治理·· 23
1.3 微服务治理的范畴··· 25
1.3.1 微服务是一种研发模式·· 25
1.3.2 微服务的架构模式及治理·· 26
1.3.3 研发治理·· 29
1.3.4 测试治理·· 32
1.3.5 运维治理·· 34
1.3.6 管理治理·· 38
第2章 微服务治理技术概述··· 44
2.1 微服务架构··· 44
2.1.1 代理模式·· 45
2.1.2 直连模式·· 46
2.1.3 边车模式·· 48
2.1.4 直连模式的架构特点·· 50
2.1.5 微服务全生命周期整体架构·· 54
2.2 服务度量··· 56
2.2.1 服务开发质量度量·· 56
2.2.2 服务测试质量度量·· 65
2.2.3 服务运维质量度量·· 68
2.2.4 服务线上性能度量·· 69
2.3 服务管控··· 79
2.3.1 微服务的内部管控·· 79
2.3.2 微服务生命周期管理·· 81
2.4 三位一体:通过度量、管控、管理实现微服务治理闭环··· 87
2.4.1 治理指标体系·· 87
2.4.2 治理度量与分析·· 91
2.4.3 通过管理将治理举措落地·· 99
2.4.4 微服务治理整体架构·· 100
第3章 通过服务度量提供治理依据··· 102
3.1 线上微服务度量核心指标及分析手段··· 102
3.1.1 点:单次请求指标采集·· 103
3.1.2 线:单服务一分钟指标叠加统计·· 104
3.1.3 面:单服务时间维度汇总统计·· 106
3.1.4 体:服务及资源指标聚合分析·· 106
3.2 服务关系维度··· 108
3.2.1 治理目标·· 108
3.2.2 服务基础视图·· 108
3.2.3 服务调用关系视图·· 111
3.3 应用关系维度··· 115
3.3.1 治理目标·· 115
3.3.2 应用调用关系视图·· 116
3.3.3 以应用为中心的运维统一视图·· 118
3.4 服务性能维度··· 119
3.4.1 治理目标·· 119
3.4.2 调用耗时分区分布统计·· 120
3.4.3 调用耗时分时分布统计·· 121
3.4.4 调用量/并发量分时分布统计·· 122
3.4.5 性能横比·· 123
3.4.6 性能纵比·· 126
3.4.7 综合性能分析·· 130
3.4.8 容量规划·· 131
3.4.9 动态阈值·· 136
3.4.10 趋势预测·· 138
3.5 服务异常维度··· 144
3.5.1 治理目标·· 145
3.5.2 实时异常报表·· 146
3.5.3 异常分布报表·· 146
3.5.4 异常列表及查询·· 149
3.5.5 故障定界定位·· 150
3.5.6 智能根因分析·· 152
3.5.7 业务异常分析·· 155
3.6 资源维度··· 157
3.6.1 治理目标·· 158
3.6.2 网络资源·· 158
3.6.3 数据库资源·· 159
3.6.4 其他资源·· 161
3.7 服务综合度量··· 161
3.7.1 服务重要性度量·· 162
3.7.2 服务健康度度量·· 163
第4章 通过服务管控实现治理闭环··· 166
4.1 分布式服务鲁棒性的架构保障··· 166
4.1.1 冗余·· 167
4.1.2 弹性伸缩·· 167
4.1.3 单点无状态·· 168
4.1.4 不可变基础设施·· 168
4.1.5 故障传导阻断·· 169
4.1.6 基础设施即代码·· 169
4.2 服务负载··· 170
4.2.1 随机策略·· 170
4.2.2 轮询策略·· 173
4.2.3 近少访问策略·· 176
4.2.4 黏滞策略·· 177
4.2.5 一致性Hash策略·· 178
4.2.6 组合策略·· 179
4.3 服务限流··· 179
4.3.1 概念·· 180
4.3.2 限流模式·· 181
4.3.3 限流的难点及注意事项·· 186
4.4 服务集群容错··· 187
4.4.1 服务集群容错的概念·· 187
4.4.2 快速失败·· 188
4.4.3 失败安全·· 189
4.4.4 失败转移·· 190
4.4.5 失败重试·· 192
4.4.6 聚合调用·· 194
4.4.7 广播调用·· 197
4.5 服务降级··· 198
4.5.1 概念·· 198
4.5.2 屏蔽降级·· 199
4.5.3 容错降级·· 200
4.5.4 Mock降级·· 202
4.5.5 熔断降级·· 203
4.5.6 延伸阅读:广义降级操作·· 206
4.6 服务授权··· 207
4.6.1 自主授权·· 207
4.6.2 注册中心授权·· 210
4.6.3 第三方服务授权·· 211
4.7 服务线上生命周期管理··· 214
4.7.1 微服务的部署·· 214
4.7.2 蓝绿发布·· 219
4.7.3 灰度发布·· 220
4.8 服务线上稳定性保障··· 223
4.8.1 应急预案·· 223
4.8.2 故障演练·· 226
4.8.3 混沌工程·· 228
第5章 APM及调用链跟踪··· 236
5.1 APM及调用链发展史··· 236
5.2 调用链跟踪原理··· 238
5.2.1 Google Dapper 238
5.2.2 调用链跟踪的整体架构·· 241
5.2.3 Trace日志埋点·· 244
5.2.4 日志采集·· 248
5.2.5 日志收集·· 250
5.2.6 日志存储·· 251
5.2.7 告警·· 252
5.3 调用链跟踪实战··· 255
5.3.1 基于调用链跟踪的服务调用瓶颈分析·· 255
5.3.2 基于调用链跟踪的服务故障定界定位·· 256
5.3.3 从宏观到微观—APM的综合应用·· 258
5.3.4 调用链的聚合分析·· 261
5.3.5 深入挖掘调用链潜力:通过调用链监控业务的健康状态·· 262
5.4 APM及调用链落地策略··· 265
5.4.1 客户端插码策略·· 265
5.4.2 采样策略·· 266
5.4.3 产品选型策略·· 268
第6章 微服务架构体系的深度治理··· 270
6.1 架构治理··· 270
6.1.1 治理目标·· 271
6.1.2 微观架构治理·· 271
6.1.3 宏观架构治理·· 276
6.2 研发治理··· 284
6.2.1 治理目标·· 284
6.2.2 开发质量治理·· 284
6.2.3 测试质量治理·· 294
6.2.4 综合调测能力构建·· 300
6.3 运维治理··· 306
6.3.1 治理目标·· 307
6.3.2 多环境建设·· 307
6.3.3 通过DevOps为微服务架构提供工程能力保障·· 313
6.4 协同管理治理··· 329
6.4.1 治理目标·· 329
6.4.2 小步快跑,高频发布·· 330
6.4.3 通过数据驱动的精益看板优化协同管理·· 333
6.5 业务治理··· 345
6.5.1 治理目标·· 345
6.5.2 业务指标采集框架·· 346
6.5.3 业务指标实时监控及分析·· 347
6.5.4 风控及反欺诈·· 349
6.5.5 通过数据稽核发现分布式架构下的业务风险·· 350
第7章 构建轻量高效的指标采集能力··· 358
7.1 整体架构··· 358
7.1.1 功能架构·· 358
7.1.2 系统架构·· 359
7.2 指标采集··· 360
7.2.1 使用API接口拦截器采集服务性能指标·· 360
7.2.2 使用DAO拦截器采集数据库访问性能日志·· 363
7.2.3 定时采集系统性能指标·· 365
7.2.4 自定义采集业务指标·· 367
7.3 日志预处理··· 371
7.3.1 日志缓存·· 371
7.3.2 指标预处理·· 373
7.3.3 定时指标发送·· 375
7.4 指标发送··· 376
7.4.1 基于Netty的NIO通道·· 376
7.4.2 消息发送·· 378
第8章 构建支持高并发的高效的指标收集及存储能力··· 379
8.1 整体架构··· 379
8.2 数据接收··· 381
8.2.1 NIO服务器·· 381
8.2.2 消息接收·· 384
8.2.3 消息处理·· 386
8.3 扩展能力··· 390
8.3.1 数据定期统计汇总·· 390
8.3.2 服务监控台·· 394
第9章 指标可视化及度量能力构建··· 395
9.1 系统架构··· 395
9.1.1 整体架构·· 395
9.1.2 技术选型·· 396
9.2 服务监控··· 399
9.2.1 服务错误TopN监控·· 399
9.2.2 业务错误TopN监控·· 401
9.2.3 性能差TopN监控·· 402
9.2.4 调用次数多TopN监控·· 404
9.2.5 总资源占用多TopN监控·· 405
9.2.6 服务调用时间纵比·· 406
9.3 DAO监控··· 408
9.3.1 错误多TopN监控·· 408
9.3.2 性能差TopN监控·· 409
9.3.3 调用次数多TopN监控·· 409
9.3.4 总资源占用TopN监控·· 410
9.4 系统监控··· 411
9.4.1 一小时系统负载变化曲线图·· 411
9.4.2 一小时JVM使用内存变化曲线图·· 412
9.4.3 系统时点指标监控·· 413
9.4.4 JVM垃圾收集统计·· 415
9.5 自定义业务监控··· 416
9.5.1 图表配置·· 416
9.5.2 图表展示 417
序1
未来10年是各行各业数字化转型的关键10年。数字化转型将帮助企业打破原有IT系统的烟囱状布局,解决IT应用数据孤岛问题,实现数据集中管理共享,从而为企业降低成本、提高运营效率、加快产品创新提供平台和技术保证,使企业在市场竞争中获得优势。
为数字化转型提供保证的平台和技术就是我们常说的云化服务化数字平台,它通过云计算、大数据、物联网、移动互联网、人工智能等技术,把企业IT应用的公共能力统一,进行服务化改造,形成技术中台、数据中台、业务中台等一系列中台能力,并以服务的形式开放给各应用系统。这就涉及服务的定义、服务的架构设计、服务的开发、服务的治理等一系列问题。
李鑫在华为期间,是华为中间件团队从SOA向云分布式架构转型的重要参与者,是PaaS分布式服务化的主导者之一,曾基于运营商客户的应用场景,根据华为大型电信软件的系统要求,参与了华为分布式服务化的系统设计和软件开发工作,促进了华为软件分布式服务化技术的进步。
离开华为后,李鑫加入互联网公司,继续投入服务及微服务的探索和实践中,同时在国内各技术大会上积极分享微服务开发和实践的经验,向业界同行学习,与行业专家切磋。
本书是李鑫在服务及微服务上多年探索和实践的总结,内容翔实,层次清晰,涉及服务治理的发展历史、难点和特点,微服务治理的关键技术,深度治理能力的构建等,还辅以一个完整的实战案例。本书可以帮助读者掌握微服务治理的核心能力,并应用到实际工作中。
是为序!
陈沂洲
华为中间件团队原研发总监
序2
有为而治
——平衡吞噬世界的软件之熵
任何系统的可持续发展都需要与之相匹配的治理能力。在人类文明演进的过程中,技术是生产力,管理则是不可或缺的软实力,两者刚柔相济,从而使得政治、经济、军事、社会形成高效可控的体系。进入21世纪以来,软件代码借由互联网、云计算、人工智能、VR/AR、物联网等技术正在“吞噬”整个世界,大规模复杂系统成为社会运转的基础设施。随着应用的功能不断增强,服务粒度越发精细,系统规模更加庞大,技术架构更加复杂,技术团队持续“膨胀”,软件之熵急剧增长,相应的治理体系在实践中迭代演进,日趋成熟。
大平台、微服务架构之下,服务治理能力至关重要。衡量系统成熟度的主要标准是非功能性指标,如稳定性、安全性、可维护性、可扩展性等。系统架构从单体到分布式,再到微服务、云原生,甚至混合云,管理复杂度显著提高。解耦分治的系统更需要全局维度的服务治理能力,且必须依靠系统管理系统,实现代码即文档,系统即规范。千里之堤,溃于蚁穴,一旦有所忽视,不能以规范化、过程化、数据化有效地治理,系统就将迅速腐化,轻则留下技术债务,重则沉疴难起,无药可救。软件系统固然有其生命周期,但因治理失效导致不可持续则无疑是一种失败。
李鑫老师将他在微服务治理领域多年实践的心得结集成书,填补了这方面技术图书的空白。李鑫老师从业十余年,历经数个行业,在多个领域都拥有丰富的实践经验。我有幸与他在东东共事,合作重构项目,结下了深厚的革命情谊。李老师非常热情,乐于分享,在很多技术大会上分享技术“干货”,特别受欢迎,多次获得“讲师”的荣誉称号。更为难得的是他一直深入钻研技术,公众号自称“土狼”,可见骨子里自有“狼性”。本书专注于服务治理,内容系统全面,涵盖发展历史、体系构建、实例详解。如果你的系统越来越乱,那么可以借鉴本书,重建治理体系,由乱而治。如果你的系统刚刚起步,那么本书能够让你少走弯路,从一开始就兼顾治理,让一切尽在掌握。诚然治理也有成本,需与实际收益匹配,合适的才是好的,过犹不及。水火相济,阴阳相契,平衡乃中庸之道的境界,做系统须有系统化思维。
作为系统创造者,面对软件之熵,当制之以衡、行之有度,使之增减有序,有为而治,方显能者本色!天高海阔,大有可为,而修齐治平,当身体力行,与诸君共勉!
史海峰
公众号“IT民工闲话”作者,贝壳金服小微企业生态CTO
前 言
近几年,微服务的热度居高不下,企业纷纷向微服务架构转型。但是大部分企业缺乏服务治理意识,以为所谓的微服务化就是简单地引入一套微服务框架,对微服务架构给整个研发体系带来的挑战预估不足,导致在开发、运维、测试、团队协同领域都遭到了微服务的“反噬”,其结果是研发效率和质量不升反降,转型之路备受质疑。毫不夸张地说,服务治理能力的缺失是企业将微服务架构从“能用”做到“好用”的的“拦路虎”。
我早接触服务治理这个概念大约是在2006年。当时我主要从事金融、电信、政府相关的企业级项目开发工作,与IBM公司有大量的接触,得以深入了解IBM公司面向SOA所提出的SGMM相关标准和规范。对服务治理的印象是其涉及的领域太广,水太深,就像一场“暗夜长征”,只有找到正确的治理方向,才能坚持到底,看到胜利的曙光。随着工作的变迁,我陆陆续续在导航、航空、电商等行业中从事了一些服务化和服务治理相关的设计及开发工作,但不是特别成体系。直到去了华为,当时华为电软开发了自己的分布式微服务框架DSF,但在推广过程中遇到了线上服务运维管控、线下开发效率、交付质量等一系列相关问题和挑战,迫切需要进行服务治理。作为项目的总架构师,我全程领导了治理项目及配套的研发工具套件集的架构设计和开发落地工作。这是我真正意义上全面主导一个服务治理技术体系的构建,从这个项目中我收获了非常多的经验和教训,并形成了个人面向微服务治理领域的完整技术体系。
从2017年开始,我在QCon、ArchSummit等技术大会及线下技术沙龙上做了一系列关于服务化和服务治理的技术分享与交流,也给一些企业提供了服务治理的咨询服务。在一次深圳的技术大会上,碰到了电子工业出版社博文视点的董英老师,由于目前市面上还没有系统讨论微服务治理的专业书籍,董老师劝我写一本这方面的专著。当时自感写书责任重大,只是谨慎表示会好好考虑,但写书的想法已经萌生了。
在其后的半年多时间里,我不断思考这本书的大纲,如何写才合适呢?微服务治理是一个完整的体系,不只是技术和经验的拼凑,想要讲清楚微服务治理,就应该展现体系全貌。因此本书从微服务的度量、管控和管理三个维度入手,力求构建一个覆盖微服务线上及线下的广义的治理体系,同时将我的技术“世界观”和经验融入其中。基于此,我规划了全书的大纲,于2018年年底正式开始了本书的写作之旅。
我平时也写一些公众号的文章,但真正动笔写书的时候才发现,写书和写公众号完全是两回事。写书在体系性和严谨性方面要求都更高,我需要阅读大量文献资料,结合自身经验和认识,总结知识、提炼观点,再形成体系,对所写内容反复斟酌、小心求证,尽力做到表述精准。写书的过程也是对自己的知识体系全面深入梳理的过程,它让我在服务化和服务治理这个领域的技术“世界观”不断完善并趋于完整。整个过程就是精神和体力上的“双重马拉松”,虽然很辛苦,但我很享受这个过程!这是我对技术社区进行反哺的一步,我相信这绝不会是后一步。
本书结构
l 第1、2章全面阐述服务治理的发展历程,以及“大平台、微服务”架构下服务治理的难点及特点;提出由微服务的度量、管控及管理构建起一个三位一体的闭环体系,从而综合解决微服务全生命周期的现实治理问题;同时阐述治理体系所涉及的相关细分领域及技术能力。
l 第3、4章重点介绍微服务的线上治理能力;通过微服务治理的度量指标体系及指标采集、存储、分析手段构建微服务度量能力,并在此基础上,通过微服务的健康度分析、故障定界定位、容量规划、根因分析、趋势预测等来构建针对微服务的“看”的能力;通过限流、降级、容错、弹性伸缩、安全管控等手段来构建微服务的“管”的能力;同时通过应急预案、故障演练、混沌工程等来提升线上微服务的可靠性。
l 第5章介绍通过APM及动态调用链跟踪来提升微服务的监控及度量能力。
l 第6章介绍微服务深度治理能力的构建,将微服务的治理“延升”到架构、开发、测试、运维、团队协同等各个领域,从而实现微服务架构在组织中从“用得了”到“用得好”的提升;同时将服务治理能力反哺给业务,实现技术和业务的良性互动。
l 第7、8、9章是实践部分,通过一个完整的涵盖指标采集、传输、存储、分析度量的实战案例引导读者深入地理解微服务治理的度量能力的构建。
读者对象
本书适合技术管理者、架构师和有一定基础的技术人员阅读,尤其适合已进入或即将进入服务化和服务治理领域的相关人员阅读。希望本书能够为读者提供一些启发和指引,让大家少走弯路。
示例源码
请读者购买图书后,仔细阅读前言,获取相关信息。
致谢
在写作本书的一年多时间里,我基本没有节假日和业余休息时间。在此感谢家人,是他们给予我的包容和全力支持让我得以专心写作。尤其要感谢我的爱人,除照顾我的生活外,还帮我做了大量的文章校对及内容梳理工作,没有她的支持和鼓励,我是无法完成本书的。
感谢电子工业出版社的董英老师和相关工作人员为本书的出版付出的努力。
李鑫在华为期间,参与了华为分布式服务化的系统设计和软件开发工作,引导了华为软件分布式服务化技术的进步。离开华为后,李鑫继续投入服务及微服务的探索和实践中,在国内各技术大会上积极分享微服务开发和实践的经验,向业界同行学习,与行业专家切磋。本书是李鑫在服务及微服务领域多年探索和实践的总结,是架构领域不可多得的一本好书,值得仔细研读。
——陈沂洲 华为中间件团队原研发总监▼
李鑫老师将在微服务治理领域多年实践的心得集结成书,填补了这方面技术图书的空白。他从业十余年,历经数个行业,在多个领域都拥有丰富的实践经验。本书专注于服务治理,内容系统而全面,涵盖发展历史、体系构建及实例详解。如果你的系统越来越乱,那么可以借鉴本书,重建治理体系,由乱而治。如果你的系统刚刚起步,那么本书能让你少走弯路,从一开始就兼顾治理,让一切尽在掌握中。
——史海峰 公众号“IT民工闲话”作者,贝壳金服小微企业生态CTO▼
微服务是现代系统中非常受关注的“焦点”,越来越多的分布式系统都纷纷采用微服务的设计理念来演进其架构模型。随着微服务应用规模的增长,治理膨胀的系统会越来越困难。比起微服务设计和拆分,如何能够更好地治理大规模的微服务,才是微服务落地的真正难点。本书站在治理的角度,从海量微服务出发,向读者展现了微服务领域的“深水区”。我相信,通过阅读本书,你能够更顺畅地迈进微服务的下半场。
——张亮 分布式数据库中间件Apache ShardingSphere创始人,*数科数据研发负责人▼
市面上讲解微服务的书籍不在少数,但是基本都聚焦在微服务架构设计上,罕有能够从微服务治理的视角来全面讲解微服务落地实践的。如果把微服务架构比喻成一碗能够让企业快速交付业务价值的“鸡汤”,那么微服务治理就是能够让企业顺利喝下这碗鸡汤的“汤勺”,而本书的作者李鑫就是我们的“掌勺人”。在本书中,他不仅从历史发展的维度给我们介绍了微服务治理的前世今生,还从“看”和“管”两个维度深入探讨了微服务治理的实践,*后给出了一个完整的实例。这是近年来我所读过的难得一见的好书。
——茹炳晟 Dell EMC 中国研发集团资深架构师,腾讯云*价值专家▼
从SOA到当今的微服务历时十多年,其中不乏服务治理的身影。但服务治理的概念、内涵和实践,在业界一直无法统一,更无法形成行业标准。随着系统的复杂程度越来越高,服务治理的需求越来越紧迫,并已成为一大痛点。李鑫老师长期在互联网领域从事架构设计和研发工作,面临各种技术挑战,从线上、线下与度量三个维度沉淀出“三位一体”的服务治理体系,为服务治理标准化的漫长道路点亮了“一盏明灯”。本书能给读者带来体系化的服务治理理念,并使其在实践中发挥作用。
——李远鑫 中邮消费金融有限公司资深架构师,华南理工大学软件工程博士▼
评论
还没有评论。