APM 概述
APM 全称是 Application Performance Management, 是指对应用程序的性能和可用性的监控管理。狭义上的APM单指应用程序的监控,如应用的各接口性能和错误监控,分布式调用链路跟踪,以及其他各类用于诊断(内存,线程等)的监控信息,等;广义上的APM, 除了应用层的监控意外,还包括手机App端监控,页面端监控,容器、服务器监控,以及其他平台组件如中间件容器,数据库等层面的监控。
APM是近5年来伴随着云技术、微服务架构发展起来的一个新兴监控领域。在国内外,无论是云厂商(如AWS, Azure,等)还是独立的公司(Dynatrace, Appdynamics,等),都有着非常优秀的APM产品。
阿里云作为国内最大,世界排名前三的云厂商,其在APM领域也有很多优秀的产品提供,整个产品家族也比较全面。本文就以APM领域为例,给大家介绍一下阿里云在该领域的各个产品。
云时代应用架构简介
云时代典型的应用,如运行在阿里云的应用,其架构如下图所示。

其中:
- 应用一般对外提供两种客户端访问模式:移动端App访问,或基于浏览器的页面访问。客户端的监控在APM领域又被成为UEM(User Experience Management),即用户体验管理。
- 除了客户端访问意外,用户一般还会部署相应的业务探针,通过API来直接诶测试服务性能或进行健康检测。
- 对客户端直接提供服务的为后端应用服务程序。基于微服务的应用一般多个应用,分别运行在多个节点之上,应用和应用之间会有比较复杂的调用依赖关系。
- 后端应用一般运行在容器里,或者直接运行在(虚拟)操作系统之上,取决于用户是否进一步使用容器技术来优化开发和运维。
- 应用还会直接依赖各类的PaaS/SaaS云服务,如OSS,OTS, MQ, RDS等,对应用提供响应平台服务,简化应用的运维成本。
阿里云上APM领域各个产品最终目标是为了对以上各个组件进行有效监控。以下介绍对于各个组件,阿里云提供的相应的APM产品。
阿里云的APM解决方案地图
基于今天的云上的应用架构,阿里云的APM解决方案地图如下所示。

其中:
关于业务监控
关于APM领域的一些场景,还有一件事情,就是业务层面的监控,简称业务监控。为什么需要业务监控?
- 很多时候局部应用故障并不能直接反应对业务的影响,如某个重要级别的某些接口宕机,由于应用的一些熔断或者缓存机制,可能并不会对业务收入(交易,下单,等)造成直接大的影响。因此,IT系统监控和故障定级往往并不依赖于单个系统故障,而需要以业务指标为准。
- 业务层面的监控更能辅助IT系统反过来进行优化业务。如针对某个IT电商的运行分析,通过业务监控分析卖家的地域、运营商分布,以及卖家的动态库存,畅销类目实时统计,更能反过来帮助业务进行实时数据决策。
针对以上,阿里云的几款APM产品其实都不同程度支持业务层面的监控。其中:
-
业务实时监控的自定义监控功能可通过用户的应用日志数据,页面数据推送,甚至消息队列等不同的数据源,通过实时计算预聚合将不同维度的数据存放在时序数据库中,并为用户提供交互大盘动态可视化和报警策略,已知的用户场景包括航旅,电商,车联网的各类业务。
-
云监控的日志监控功能可通过对用户的日志服务中的日志内容做统计,为用户绘制出各类业务大盘。
-
移动数据分析的业务数据分析可根据移动端的上报日志统计移动端业务使用情况。
阿里云APM解决方案地图
以下表格对阿里云APM解决方案进行总结。

诚邀您关注阿里中间件微信公众号!
我们懂您的胃口:定期分享最前沿技术干货!
我们懂您的喜好:大量精品大会、沙龙、比赛为您量身定做!
我们懂您的情调:海量惊喜奖品随时放送!
你还不来加入我们吗?就现在!最in的程序圈子,由您创造!
