爱生活,爱编码,微信搜一搜【架构技术专栏】关注这个喜欢分享的地方。
本文 架构技术专栏 已收录,有各类视频、资料以及技术文章。
APM (Application Performance Management) 即应用性能管理(应用性能监控)git
APM主要是针对企业 关键业务的IT应用性能和用户体验的监测、优化,提升企业IT应用的可靠性和质量。
旨在确保最终用户得到高质量的体验,下降IT总拥有成本(TCO)数据库
TCO (Total Cost of Ownership ),即总拥有成本,包括产品采购到后期使用、维护的成本。 这是一种公司常常采用的技术评价标准。后端
目前市面的系统基本都是参考 Google 的 Dapper(大规模分布式系统的跟踪系统)来作的。
跟踪业务请求的处理过程,完成对应用系统在先后端处理、服务端调用的性能消耗跟踪,提供可视化的界面来展现对跟踪数据的分析。
经过汇聚业务系统各处理环节的实时数据,分析业务系统各事务处理的交易路径和处理时间,实现对应用的全链路性能监测。浏览器
APM工具与传统的性能监控工具的区别在于,不只仅提供一些零散的资源监控点和指标,其主要关注在系统内部执行、系统间调用的性能瓶颈分析,这样更有利于定位到问题的具体缘由。
APM致力于检测和诊断应用性能问题,从而能提供应用预期的服务水平。微信
目前APM的发展主要经历了前面的三个阶段:
第一阶段:以网络监控基础设施为主,主要监控主机 的CPU 使用率、I/O、内存资源、网速等,主要以各种网络管理系统(NMS)和各类系统监控工具为表明。网络
第二阶段:以监控各类基础组件为主,随着互联网的快速发展,为了下降应用开发难度,各类基础组件(如数据库、中间件等)开始大量涌现,因此这个时期应用性能管理主要是监控和管理各类基础组件的性能。架构
第三阶段:以监控应用自己的性能为主, IT 运维管理的复杂度开始出现爆炸性的增加,应用性能管理的重点也开始聚焦于应用自己的性能与管理上。app
第四节阶段属于正在发展的阶段:
云计算方兴未艾,而DevOps以及微服务的兴起对传统APM产生了很大的冲击,传统厂商也在作一些革新,也作一些微服务方面的尝试和云计算方面的尝试。
随着Machine Learning、AI的技术的兴起,对定位故障、定位问题,也会起到一些帮助,基于大数据的分析的手段也会有一些帮助,目前市场上正在初步尝试阶段。运维
2016年Gartner对APM的定义分为三个维度机器学习
DevOps(Development和Operations的组合词)是一种重视“软件开发人员(Dev)”和“IT运维技术人员(Ops)”之间沟通合做的文化、运动或惯例。
DevOps能够简洁的理解为“开发团队与运营团队之间更具协做性、更高效的关系”。
是两个相关趋势碰撞中出现的新术语
更多信息见:https://zh.wikipedia.org/wiki...
在应用服务各节点相互调用的时候,从中记录并传递一个应用级别的标记,这个标记能够用来关联各个服务节点之间的关系。
好比两个应用服务节点之间使用 HTTP 做为传输协议的话,那么这些标记就会被加入到 HTTP 头中。
可见如何传递这些标记是与应用服务节点之间使用的通信协议有关的,经常使用的协议就相对容易加入这些内容,一些按需定制的可能就相对困难些,这一点也直接决定了实现分布式追踪系统的难度。
随着公司业务的与日俱增,各个系统也愈来愈复杂,服务间的调用,服务的依赖,以及分析服务的性能问题也越棘手,所以引入服务追踪系统尤其重要。
现有的APM,基本都是参考Google的Dapper的体系来作的。经过跟踪请求的处理过程,来对应用系统在先后端处理、服务端调用的性能消耗进行跟踪(每一个请求的完整调用链路,收集调用链路上每一个服务的性能数据),方便工程师可以快速定位问题。
总的来讲,一个优秀的APM系统应该知足如下五个条件
爱生活,爱编码,微信搜一搜【架构技术专栏】关注这个喜欢分享的地方。
本文 架构技术专栏 已收录,有各类视频、资料以及技术文章。