微服务治理: 体系、架构及实践¶
简介:
作者: 李鑫
评分:8.5()
出版年: 2020-05
页数: 436
短评:
todo
内容简介:
在微服务技术流行的当下,企业在实施微服务架构的时候,会对整个研发体系,包括开发、运维、团队组织、协同都带来冲击。
因此必须构建起一整套以服务治理为核心、从线下到线上的新的能力体系来支撑这套新的架构技术,否则很难保证微服务架构的顺畅落地。
本书是作者多年服务治理经验总结,希望能够给仍在(微)服务治理迷局中夺路狂奔的计算机技术人员一点启发和指引。
在本书的第一、二两章中,作者将全面阐述服务治理的发展历程,以及 “大平台、微服务” 架构下服务治理的难点及特点。
在此基础上,提出由微服务的度量、管控及管理构建起一个三位一体的闭环体系来综合解决微服务全生命周期的现实治理需求。
并阐述治理体系所涉及的相关细分领域及技术能力。
在第三、四两章中,重点介绍微服务的线上治理能力。
通过微服务治理的度量指标体系及指标采集、存储、分析手段构建微服务度量能力,
并在此基础上进行微服务的健康度分析、故障定界定位、容量规划、根因分析、趋势预测等来构建针对微服务的 “看” 的能力。
通过限流、降级、容错、弹性伸缩、安全管控等管控手段来构建微服务的 “管” 的能力。
同时通过应急预案、故障演练、混沌工程等稳定性能力建设来来提升线上微服务的可靠性。
第五章将介绍通过 APM 及动态调用链跟踪来提升微服务的监控及度量能力。
第六章是微服务深度治理能力构建,将微服务的治理延升到架构、开发、测试、运维、团队协同等各个领域,
从而实现微服务架构在组织中从 “用的了” 到 “用的好” 的提升。
同时将服务治理能力反哺给业务,实现技术和业务的良性互动。
本书的七、八、九章是是实践部分。
通过一个指标采集、传输、存储、分析度量的完整演示案例来引导读者深入理解微服务治理技术的应用。
作者简介:
目前在金融行业负责基金直销平台整体技术架构和研发团队管理。
曾任华为六级技术专家,主导了华为软件多款云计算产品和服务的设计规划和构建工作。
曾在当当网任运作产品平台部门的技术负责人,负责电商仓储、物流、客服等系统的整体技术架构和研发团队管理。
更早之前曾在航空、导航、金融、电信等领域从事企业级应用的架构设计和技术管理工作。
乐于技术分享,曾在 QCon、ArchSummit 等技术大会上做技术演讲,多次获得 “明星讲师” 及 “优秀出品人” 荣誉称号。
目录:
第 1 章服务及服务治理发展简介
1.1 IT 治理与服务治理的关系
1.2 服务治理发展历史
1.2.1 单体架构及治理
1.2.2 企业 SOA——EAI/ESB 及治理
1.2.3 分布式服务及治理
1.2.4 微服务及治理
1.3 微服务治理的范畴
1.3.1 微服务是一种研发模式
1.3.2 微服务的架构模式及治理
1.3.3 研发治理
1.3.4 测试治理
1.3.5 运维治理
1.3.6 管理治理
第 2 章微服务治理技术概述
2.1 微服务架构
2.1.1 服务端发现
2.1.2 客户端发现
2.1.3 服务网格发现
2.1.4 直连模式的架构特点
2.1.5 微服务全生命周期整体架构
2.2 服务度量
2.2.1 服务开发质量度量
2.2.2 服务测试质量度量
2.2.3 服务运维质量度量
2.2.4 服务线上性能度量
2.3 服务管控
2.3.1 微服务的内部管控
2.3.2 微服务生命周期管理
2.4 三位一体:通过度量、管控、管理实现微服务治理闭环
2.4.1 治理指标体系
2.4.2 治理度量与分析
2.4.3 通过管理将治理举措落地
2.4.4 微服务治理整体架构
第 3 章通过服务度量提供治理依据
3.1 线上微服务度量核心指标及分析手段
3.1.1 点:单次请求指标采集
3.1.2 线:单服务一分钟指标叠加统计
3.1.3 面:单服务时间维度汇总统计
3.1.4 体:服务及资源指标聚合分析
3.2 服务关系维度
3.2.1 治理目标
3.2.2 服务基础视图
3.2.3 服务调用关系视图
3.3 应用关系维度
3.3.1 治理目标
3.3.2 应用调用关系视图
3.3.3 以应用为中心的运维统一视图
3.4 服务性能维度
3.4.1 治理目标
3.4.2 调用耗时分区分布统计
3.4.3 调用耗时分时分布统计
3.4.4 调用量 / 并发量分时分布统计
3.4.5 性能横比
3.4.6 性能纵比
3.4.7 综合性能分析
3.4.8 容量规划
3.4.9 动态阈值
3.4.10 趋势预测
3.4.11 ARIMA 模型
3.5 服务异常维度
3.5.1 治理目标
3.5.2 实时异常报表
3.5.3 异常分布报表
3.5.4 异常列表及查询
3.5.5 故障定界定位
3.5.6 智能根因分析
3.5.7 业务异常分析
3.6 资源维度
3.6.1 治理目标
3.6.2 网络资源
3.6.3 数据库资源
3.6.4 其他资源
3.7 服务综合度量
3.7.1 服务重要性度量
3.7.2 服务健康度度量
第 4 章通过服务管控实现治理闭环
4.1 分布式服务鲁棒性的架构保障
4.1.1 冗余
4.1.2 弹性伸缩
4.1.3 单点无状态
4.1.4 不可变基础设施
4.1.5 故障传导阻断
4.1.6 基础设施即代码
4.2 服务负载
4.2.1 随机策略
4.2.2 轮询策略
4.2.3 最近最少访问策略
4.2.4 黏滞策略
4.2.5 一致性 Hash 策略
4.2.6 组合策略
4.3 服务限流
4.3.1 概念
4.3.2 限流模式
4.3.3 限流的难点及注意事项
4.4 服务集群容错
4.4.1 服务集群容错的概念
4.4.2 快速失败
4.4.3 失败安全
4.4.4 失败转移
4.4.5 失败重试
4.4.6 聚合调用
4.4.7 广播调用
4.5 服务降级
4.5.1 概念
4.5.2 屏蔽降级
4.5.3 容错降级
4.5.4 Mock 降级
4.5.5 熔断降级
4.5.6 延伸阅读:广义降级操作
4.6 服务授权
4.6.1 自主授权
4.6.2 注册中心授权
4.6.3 第三方服务授权
4.1.6 基础设施即代码
4.2 服务负载
4.2.1 随机策略
4.2.2 轮询策略
4.2.3 最近最少访问策略
4.2.4 黏滞策略
4.2.5 一致性 Hash 策略
4.2.6 组合策略
4.3 服务限流
4.3.1 概念
4.3.2 限流模式
4.3.3 限流的难点及注意事项
4.4 服务集群容错
4.4.1 服务集群容错的概念
4.4.2 快速失败
4.4.3 失败安全
4.4.4 失败转移
4.4.5 失败重试
4.4.6 聚合调用
4.4.7 广播调用
4.5 服务降级
4.5.1 概念
4.5.2 屏蔽降级
4.5.3 容错降级
4.5.4 Mock 降级
4.5.5 熔断降级
4.5.6 延伸阅读:广义降级操作
4.6 服务授权
4.6.1 自主授权
4.6.2 注册中心授权
4.6.3 第三方服务授权
6.1.1 治理目标
6.1.2 微观架构治理
6.1.3 宏观架构治理
6.2 研发治理
6.2.1 治理目标
6.2.2 开发质量治理
6.2.3 测试质量治理
6.2.4 综合调测能力构建
6.3 运维治理
6.3.1 治理目标
6.3.2 多环境建设
6.3.3 通过 DevOps 为微服务架构提供工程能力保障
6.4 管理维度治理
6.4.1 治理目标
6.4.2 小步快跑,高频发布
6.4.3 通过数据驱动的精益看板优化协同管理
6.5 业务治理
6.5.1 治理目标
6.5.2 业务指标采集框架
6.5.3 业务指标实时监控及分析
6.5.4 风控及反欺诈
6.5.5 通过数据稽核发现分布式架构下的业务风险
第 7 章构建轻量高效的数据采集能力
7.1 整体架构
7.1.1 功能架构
7.1.2 系统架构
7.2 日志采集
7.2.1 使用 API 接口拦截器采集服务性能日志
7.2.2 使用 DAO 拦截器采集数据库访问性能日志
7.2.3 定时采集系统性能日志
7.2.4 自定义采集业务日志
7.3 日志预处理
7.3.1 日志缓存
7.3.2 指标预处理
7.3.3 定时指标发送
7.4 日志发送
7.4.1 基于 Netty 的 NIO 通道
7.4.2 消息发送
第 8 章构建支持高并发的高效的数据收集及存储能力
8.1 整体架构
8.2 数据接收
8.2.1 NIO 服务器
8.2.2 消息接收
8.2.3 消息处理
8.3 扩展能力
8.3.1 数据定期统计汇总
8.3.2 服务监控台
第 9 章指标可视化及度量能力构建
9.1 系统架构
9.1.1 整体架构
9.1.2 技术选型
9.2 服务监控
9.2.1 服务错误 TopN 监控
9.2.2 业务错误 TopN 监控
9.2.3 性能最差 TopN 监控
9.2.4 调用次数最多 TopN 监控
9.2.5 总资源占用最多 TopN 监控
9.2.6 服务调用时间纵比
9.3 DAO 监控
9.3.1 错误最多 TopN 监控
9.3.2 性能最差 TopN 监控
9.3.3 调用次数最多 TopN 监控
9.3.4 总资源占用 TopN 监控
9.4 系统监控
9.4.1 一小时系统负载变化曲线图
9.4.2 一小时 JVM 使用内存变化曲线图
9.4.3 系统时点指标监控
9.4.4 JVM 垃圾收集统计
9.5 自定义业务监控
9.5.1 图表配置
9.5.2 图表展示