APM指“端到端应用性能管理”,可以对应用的传输链进行统一、实时深入分析

标签:存储移动应用云计算电商移动互联网

访客:27009  发表于:2014-12-23 10:50:21

近几年,互联网、移动互联网行业飞速发展,人们以App的形式将软件应用在生活的每个方面。应用的使用者遍布全球的各个角落,而且大多数新用户使用移动设备来访问应用程序,各类应用之间也要求相互协作;同时,随着虚拟化和云计算技术的发展,应用的后台可能部署在全球的各个数据中心。以上的一切,都让应用管理的复杂性持续上升,需要出现能对整个应用传输链(其中包括移动应用、第三方应用和云应用)进行统一、实时地深入分析的应用性能管理软件。

APM,即“端到端应用性能管理”(End-to-End Application Performance Management),高德纳咨询对APM及其相邻行业进行了定义,一般来说,APM软件应该具备的功能有以下几点:

  • 体验(Experience):捕捉应用或服务的终端用户体验;
  • 依赖性(Dependency):发现并模式化应用的拓扑结果;
  • 深潜(Deep Dive):捕捉与依赖的组件相关的丰富统计数据;
  • 剖析(Profiling):跟踪整个基础架构内的交易流。APM的全称是Application Performance Management。关于APM的用途,我们不妨先从App构成的角度来看。一般来说,一款Complex Application由4-5个部分组成,包括客户端(或浏览器)、Web层、App层、持久化层、数据库存储等。当这些层串联执行,整个App便可以实现用户的业务逻辑,也可以说,用户的业务逻辑不是在一个地方执行,而是由每个层分别去执行的(有时一个App还会去调用其他App)。这时应用的调用关系就会变得非常复杂,如果出现Bug很难去定位。所以APM本身是为了解决这一问题而产生的一种软件,主要提供四类功能。一为感知,感知可分为:1. 在用户察觉到问题之前,自己先行预测;2. 对真实用户的使用体验进行感知。二为隔离,对于电商或团购类应用,它的每一层都是一种服务,APM需要先去在这些服务间做实时建模,防止其在相互调用时出现问题。三是检查,相当于对每一行代码做诊断,查出故障的原因。最后是修复,根据以往的性能表现或知识库,去自动修复这类故障。这就是传统APM的概念。

          而现在随着移动互联网及互联网产品交易化特点的转变(即不仅是卖广告,而是有各种交易跑在上面),传统的APM提供商(如Wily)要提供服务给客户,需要派销售、售后,及安装,周期往往非常长。所以现在的APM都在往SaaS层迁移。

          APM已贯穿应用的整个生命周期?从你写下第一行代码到整个持续的运维,APM都是不可或缺的工具。在美国,APM至少导致了以下几个明显的变化。首先是APM已成为IT Operation的核心。过去应用都放在IDC下,运维主要是对主机性能、网络性能、数据库性能、缓存性能等进行监测。而现在这些因素都不再是关键,主要原因在于软硬件的高速发展,网络性能越来越可靠,会使你应用本身的脆弱随着功能的复杂度凸现出来。第二,随着Devops的诞生,过去Development和Operation是两个不同的工种,而现在在逐渐融合。第三,运营人员过去是不接触最终用户的,而现在,通过APM提供的用户体验管理工具,他们可以实时监控到最终用户体验,也能掌握业务层面的动态。这将运营的重要性一下子提高到了与生产同等的位置,它可以影响生产的效率、营收以及用户的体验。

评论(0)

您可以在评论框内@您的好友一起参与讨论!

<--script type="text/javascript">BAIDU_CLB_fillSlot("927898");