华为高级技术专家多年经验分享微服务治理体系、架构及实践文档
前言
任何系统的可持续发展都需要与之相匹配的治理能力 。在人类文明演进的过程中 ,技术第一生产力,管理则是不可或缺的软实力,两者刚柔相济,从而使得政治 经济、军事、社会形成高效可控的体系。进入 纪以来,软件代码借由互联网、云计算、人工智能、 VR/AR 物联网等技术正在“吞噬”整个世界,大规模复杂系统成为社会运转的基础设施。随着应用的功能不断增强,服务粒度越发精细,系统规模更加庞大,技术架构更加复杂,技术团队持续“膨胀”,软件之熵急剧增长,相应的治理体系在实践中法代演进,日趋成熟。
大平台、微服务架构之下,服务治理能力至关重要。 衡量系统成熟度的主要标准是非功能性指标,如稳定性、安全性、可维护性、可扩展性等 系统架构从单体到分布式,再到微服务云原生,甚至混合云,管理复杂度显著提高。解藕分治的系统更需要全局维度的服务治理能力,且必须依靠系统管理系统,实现代码即文档 ,系统即规范。千里之堤溃于蚁穴,一旦有所忽视,不能以规范化、过程化、数据化有效地治理,系统就将迅速腐化,轻则留下技术债务,重则沉病难起,无药可救 软件系统固然有其生命周期,但因治理失效导致不可持续则无疑是一种失败。
本文专注于服务治理,内容系统全面,涵盖发展历史、体系构建、实例详解。如果你的系统越来越乱,那么可以借鉴本文,重建治理体系,由乱而治。
如果你的系统刚刚起步,那么本文能够让你少走弯路,从一开始就兼顾治理,让一切尽在掌握。诚然治理也有成本,需与实际收益匹配,合适的才是最好的,过犹不及。水火相济,阴阳相契,平衡乃中庸之道的最高境界 ,做系统须有系统化思维。
作为系统创造者,面对软件之恼, 当制之以衡、行之有度,使之增减有序,有为而治,方显能者本色!天高海阔,大有可为,而修齐治平,当身体力行,与诸君共勉 !
希望本文能够帮到大家的学习,本文将从目录、主要内容、面向的读者给大家进行介绍!!
目录
主要内容
第 1、2 章全面阐述服务治理的发展历程,以及“大平台、微服务”架构下服务治理的难点及特点;提出由微服务的度量、管控及管理构建起一个三位一体的闭环体系,从而综合解决微服务全生命周期的现实治理问题;同时阐述治理体系所涉及的相关细分领域及技术能力。
1.1 IT 治理与服务治理的关系
1.2 服务治理发展历史
1.3 微服务治理的范畴
2.1 微服务架构
2.2 服务度量
2.3 服务管控
2.4 三位—体:通过度量、管控、管理实现微服务治理闭环
第 3、4 章重点介绍微服务的线上治理能力;通过微服务治理的度量指标体系及指标采集、存储、分析手段构建微服务度量能力,并在此基础上,通过微服务的健康度分析、故障定界定位、容量规划、根因分析、趋势预测等来构建针对微服务的“看”的能力;通过限流、降级、容错、弹性伸缩、安全管控等手段来构建微服务的“管”的能力;同时通过应急预案、故障演练、混沌工程等来提升线上微服务的可靠性。
3.1 线上微服务度量核心指标及分析手段
3.2 服务关系维度
3.3 应用关系维度
3.4 服务性能维度
3.5 服务异常维度
3.6 资源维度
3.7 服务综合度量
4.1 分布式服务鲁棒性的架构保障
4.2 服务负载
4.3 服务限流
4.4 服务集群容错
4.5 服务降级
4.6 服务授权
4.7 服务线上生命周期管理
4.8 服务线上稳定性保障
第 5 章介绍通过 APM 及动态调用链跟踪来提升微服务的监控及度量能力。一个跨网络的业务调用请求涉及不同应用及服务节点的调用。我们虽然可以将这个请求在每个节点上的行为以日志的形式记录下来,但在传统的日志监控中,日志之间是没有关系的。就算这些日志被完全收集,也很难识别出这个请求所关联的日志,更别说基于这些关联日志还原出请求的全貌。离散、无关联的日志记录无法有效地帮助我们快速地进行分布式环境下的故障及性能问题的定界定位和关系梳理。
所幸的是,IT 技术领域很早就注意到分布式环境下的性能及调用关系梳理问题,并发展出了相关的应用性能管理(Application Performance Management,APM)技术体系。APM 是实现服务度量的一种非常重要并且有效的手段,本章将重点介绍 APM 及其核心技术:调用链跟踪。
5.1 APM 及调用链发展史
5.2 调用链跟踪原理
5.3 调用链跟踪实战
5.4 APM 及调用链落地策略
第 6 章介绍微服务深度治理能力的构建,将微服务的治理“延升”到架构、开发、测试、运维、团队协同等各个领域,从而实现微服务架构在组织中从“用得了”到“用得好”的提升;同时将服务治理能力反哺给业务,实现技术和业务的良性互动。
6.1 架构治理
6.2 研发治理
6.3 运维治理
6.4 协同管理治理
6.5 业务治理
第 7 章构建轻量高效的指标采集能力;通过前面 6 章的学习,相信读者已经对徼服务治理的整体技术架构有了一个相对完整的认识。但是,“纸上得来终觉浅,绝知此事要躬行”,理论和实践之间终究还有一定的距离。为了帮助读者学以致用,从本章开始的后 3 章将构建一个服务治理的演示实例。服务治理的技术及应用体系非常庞大,一个示例不可能覆盖所有的领域。本书一再强调,度量是治理的前提和基础,因此本实例不追求面面俱到,只重点聚焦于服务度量领域,构建一个集指标采集、分析、监控为一体的服务度量平台,帮助读者深入理解如何基于性能、异常和自定义日志采集来对服务的性能及业务状态进行监控。
本章主要聚焦于服务指标采集客户端 SDK 的构建,包含架构分析和必要的核心代码说明。
7.1 整体架构
7.2 指标采集
7.3 日志预处理
7.4 指标发送
第 8 章构建支持高并发的高效的指标收集及存储能力;第 7 章介绍了使用 Spring AOP、MyBatis Plugin 机制、JVM 的 ManagementFactory 来构建针对服务调用日志、DAO 调用日志、系统日志等的采集功能,采用 Netty NIO 来构建高性能的日志传输通道。本章将构建一个接收指标消息并落地存储的服务端应用,与第 7 章构建的指标采集客户端相对接,形成一个完整的“采集—接收”闭环体系。
8.1 整体架构
8.2 数据接收
8.3 扩展能力
第 9 章指标可视化及度量能力构建;通过前面两章的介绍,我们已经构建了基本完整的治理指标采集、收集、存储的技术框架和系统功能。本章将重点介绍数据的可视化及治理指标的度量分析。我们会构建一个可视化系统来承载这些能力。
9.1 系统架构 9.2 服务监控
9.3 DAO 监控
9.4 系统监控
9.5 自定义业务监控
这份【微服务治理体系、架构及实践】文档共有 438 页,需要完整版的小伙伴,可以转发此文关注小编,**点击这里,获得文档领取方式**
大牛对本文的评价以及所面向读者
从 SOA 到当今的微服务历时十多年,其中不乏服务治理的身影。但服务治理的概念、内涵和实践,在业界一直无法统一,更无法形成行业标准。随着系统的复杂程度越来越高,服务治理的需求越来越紧迫,并已成为一大痛点。
微服务是现代系统中非常受关注的“焦点”,越来越多的分布式系统都纷纷采用微服务的设计理念来演进其架构模型。随着微服务应用规模的增长,治理膨胀的系统会越来越困难。比起微服务设计和拆分,如何能够更好地治理大规模的微服务,才是微服务落地的真正难点。
本文站在治理的角度,从海量微服务出发,向读者展现了微服务领域的“深水区”。我相信,通过阅读本文,你能够更顺畅地迈进微服务的下半场。
本文适合技术管理者、架构师和有一定基础的技术人员阅读,尤其适合自己进入或即将进入服务化和服务治理领域的相关人员阅读。
希望本文能够为读者提供一些启发和指引,让大家少走弯路。
努力成就更好的自己,不断地提升自己的技术深度和广度,让自己变得更加有价值,希望本文能够帮助到大家的学习和喜欢!
评论