写点什么

解读 2016 之 APM 篇:快速增长的国际市场和前沿技术

2016 年 12 月 26 日

前言

2016 年是 APM 技术和市场快速发展的一年,在这一年里特别是国内的 APM 市场取得了极大的增长,用户对 APM 价值的认识和接受度也有了很大的提升,国内市场已基本完成了用户教育和市场培养的阶段。

和国内市场正处在培养、教育阶段不同,海外 APM 市场相对成熟,传统 APM 厂商和新兴 APM 厂商互相竞争,且各有优势。本文作者 Wood 和赵宇辰分别从国内、国外视角,来分享 2016 年 APM 领域的一些技术突破和新变化。

一、2016 APM 市场发展

2016 年,APM 在国内及亚太范围内呈现了很大的变化。首先是技术上变革巨大,这里面的诱导因素不排除移动市场规模暴增、云计算的落地、社交的火爆,以及微服务及 Docker 的兴起和发展。

其次就是更多玩家进入到这个市场也引起了第三方市场的洗牌,1996 年,Tivo 与 HP 公司从应用程序层面出发,认为网络就是应用的速度。至 1998 年,面向以组件为中心基础建设监控的 APM 产品出现,再到 2011 年,移动设备的普及和 App 应用市场的爆发,让用户对移动端的性能体验要求也越来越苛刻。

再者,产业扩张明显,移动互联网的爆发和兴起,OTA、电子商务、支付网关、O2O、移动 OA 等一批与移动相关的行业的快速发展,利用 APM 技术提升用户体验成为了移动互联网时代的必需品。而且在年初,总理在政府报告中提出制定“互联网+”,这一概念作为技术领导战略的提出,驱动了无数企业朝着组合业务模式转型:传统+互联网。而这,对于 APM 市场来说无疑是个新的机会。

国外,从技术运维转到商业核心业务,在过去的几年,国外 APM 厂商主要把重心放在 IT 和技术运维上,包括服务器端和客户端的性能监控、可视化和系统优化等等,同时监控的指标和 IT 系统也紧密相关。在 2016 年,一个很显著的特征是新兴的 APM 厂商逐渐从技术运维向商业核心业务拓展。2015 年底,New Relic 把分析云整合进网页端、手机端和后端的各个产品线;在 2016 年 11 月,New Relic 又推出了 Digital Intelligence 平台,旨在用云平台帮助商业用户更快的解决问题,提供更优的客户体验和带来更好的商业价值。AppDynamics 在 2015 年 12 月更新了整个分析产品线,重点放在帮助企业在数据化的转变阶段成功;2016 年 11 月 AppDynamics 更是直接推出了 Business iQ 平台,从名字就不难看出其在商业相关的核心业务上发展的决心,该平台将性能平台和商业平台结合到了一起,为数字化的企业提供实时的商业智能。

二、技术发展一览

从 APM 技术的成熟度和发展历史来看,2016 年的 APM 技术依然处于 2.0 的发展阶段。APM 1.0 时代,大概在 90 年代末到 2010 年前,领军公司是 Wily 和 Precise 这一类的老牌 APM 公司,而过去的几年算是 APM 2.0 的时代,领军的公司都是 07、08 年崛起的新 APM 企业 Dynatrace,Appdynamics,New Relic 等等。

技术成熟度曲线(The Hype Cycle)

2016 年的 APM 技术虽然还是处于 2.0 时代,但是却有了快速的发展。从 Gartner 今年的 IT 基础设施可用性和性能管理技术成熟度曲线的最新的评估结果来看,APM 套件技术在过去一年的发展中,已经从之前几年所在的泡沫低谷期(Trough of Disillusionment)进入了稳步爬升的光明期(Slope of Enlightenment),正处于从第二代产品向第三代产品(APM 3.0)的快速发展过程中。

纵观 2016 年 APM 技术的发展在以下几方面有着显著变化:

1. 从 APM 套件到统一监控:2015 年 Gartner 首次将 APM 魔力象限的名称修改为 APM 套件魔力象限,表明了 APM 技术发展的一个重要特征,那就是为了得到从完整的应用性能视图和快速定位问题,需要的是从端到端、多视角、多维度的数据采集和分析,需要更多 APM 工具的组合使用和数据关联,而不再是简单的一个 APM 工具可以解决问题了。2016 年这个趋势更加明显,一体化的统一监控正在成为用户的关注点。在统一监控体系中,APM 套件将承担着最重要的角色,同时又需要将传统的基础设施监控,动环监控,网络性能监控,日志监控等等整合起来,在性能可视化、根因分析和运维自动化等方面发挥更关键的作用。

2. 终端用户体验监测的新挑战:2016 年 Gartner 对 APM 的定义从原来的 5 个维度定义修改成了 3 个维度,分别是数字体验监控(DEM),应用发现、追踪和诊断(ADTD)和应用分析(AA),其中 DEM 取代了之前的终端用户体验监测(EUEM)。最终用户的体验始终是 APM 最重要的任务,而现在,除了各类终端上的人类最终用户之外,还需要将各种数字代理、各类 IoT 设备以及社交媒体上的体验监控起来。2016 年随着摩拜单车等一系列新兴物联网项目的爆发,对物联网应用的性能监控将成为未来 DEM 最重要的关注点。

2016 年在移动应用的监控上,iOS 10 和 Android 7 两大移动平台最新版本的发布除了带来一些新的性能指标监测接口之外,也屏蔽了不少之前版本中可以使用的接口和方法,使得 APM 厂商们需要去寻找新的监测解决方案。

3. 商业分析、机器学习和人工智能:伴随着 APM 业务线拓展的同时,2016 年另外一个显著的特点是对人工智能和机器学习的强调。我们首先从权威分析机构对 APM 的理解来看:

  • Gartner 在 APM Magic Quadrant(魔力象限)里将 Application Analytics(应用分析)列为 APM 最重要且必要的三个维度之一,并对机器学习、统计推理等方法有了显示的要求。
  • Gartner 在 2016 年 APM 核心能力(Critical Capabilities)报告中列举了六大 APM 核心能力,其中一半和智能相关,包括商业分析(Business Analysis)、异常检测(Anomaly Detection)和工作量分配(Workload Planning)。
  • Forrester 在 2016 年第三季度的 APM 报告中,反复强调了随着应用和技术的复杂度增加,智能自动化系统和机器学习的引入将大大降低错误和人工手动操作的错误。

在 APM 领域应用机器学习要解决的一个先决条件是大数据的能力,其中包括打通各个产品线和数据源,存储、提取和处理大规模数据的能力等等。目前各 APM 厂商在人工智能领域还处于尝试和探索阶段。主要利用人工智能和机器学习解决的用例包括以下方向:

  • 商业智能(Business Intelligence)
  • 异常检测(Anomaly Detection)
  • 归因分析(Correlation & Root Cause Analysis)
  • 智能警报(Intelligent Alerting)
  • 未来预测(Forecasting & Prediction)
  • 能力分配(Capacity Planning)
  • 数据概要(Data Summarization)
  • 自动化(Automation)
  • 主动监控(Proactive Monitoring)
  • 等等

4. 业务分析:2016 年的 APM 技术除了关注应用性能数据之外,也逐渐开始关注应用的用户行为和业务数据了。得益于 APM 探针的自动埋码技术,APM 可以以相对低的成本(相比手工埋点)采集和分析用户行为和业务方面的数据,同时提供性能指标与业务指标的相关性分析,例如当一个事务流程的响应性能下降后会影响多少的业务订单量。通过业务分析,APM 套件产品也将目标用户群从纯技术线的运维和研发人员推广到了业务线的产品和运营人员,实现产品价值的极大提升。

5. 中小微企业 v.s 大客户:传统的 APM 厂商和部分新兴 APM 厂商(AppDynamics,Dynatrace)都主要将重心放在大客户上,尽管它们各自有面向中小企业的免费版产品。New Relic 则是另辟蹊径一直将重心放在中小微企业上,从开发者切入,采用 land-and-expand 的销售模式。2016 年一个比较值得关注的特点是 New Relic 加大了在大客户销售上的投入,从其招聘信息不难看出其在各个区域开始增加大客户的销售团队,并将客户范围锁定在世界五百强。在今后的几年,几家 APM 产商的目标客户将会有越来越多的重叠,唯有提升产品的质量才能立足于市场,这对广大的 APM 用户来说确实是件好事。

6. 容器和微服务的机遇和挑战:2016 年公有云和移动互联网的增长依然是推动 APM 市场和技术快速发展的重要因素。而在这里面,微服务架构和微服务容器化作为 2016 年 IT 领域和云计算领域最受关注的技术趋势之一也给 APM 技术带来了新的需求和挑战。微服务架构和容器化让应用更具灵活性、弹性和扩展性,在提高应用的效率的同时,也让应用的拓扑架构和通讯变得更复杂,更难监控。针对微服务的流行趋势,现有 APM 技术和产品依然没有很好的解决方案来提供完全满足要求的足够细粒度的监控。APM 技术在未来 2 年内还需要支持更多的平台和组件、提供更多层面和更多维度的监控数据、使用新的监控数据处理方法来满足完整的微服务监控需求。

微服务的广泛应用将产生非常大量动态的实时数据,对 APM 收集和分析数据产生了极大挑战,并迫使 APM 更依赖于智能的解决方案。另外,微服务的实例(instance)可以动态调整,其生命周期和传统的软件架构不同,对应用和系统架构的依赖关系都带来了新的挑战。

微服务带来的另外一个特点是对分布式的 debugging,profiling 和追踪的要求大大提高。导致性能下降和软件事故的潜在可能原因很多,传统的 APM 解决方案不能很好的确认和隔离出错的根源,这在微服务的框架下显得更加的突出。如何能追踪信息链路和系统构架拓扑上导致性能问题并自动隔离成为了各 APM 厂商积极解决的问题之一。

7. 私有部署 v.s SaaS:私有部署(on-prem)还是 SaaS 模式在 2B 的企业中是个永恒的话题。从新兴的三家 APM 产商来看,他们的切入点也各有不同,

  • AppDynamics 采用私有部署和 SaaS 都提供的方式,从构架和产品设计上就考虑了两种模式并行的方式,同时保证私有部署和 SaaS 模式提供完全一致的功能,并允许客户在两种模式间切换。
  • Dynatrace 则是最初只提供私有部署的方式,并从 2014 年开始内部孵化了一个完全基于云的 APM 产品,并命名为 Ruxit。在 2016 年一个新的变化是 Dynatrace 将 Ruxit 改名为 Dynatrace SaaS,一方面表明了其对云产品的重视程度,另外将其正名使 Ruxit 成为官方正统的 SaaS 解决方案,并使其享有母公司的品牌。但值得注意的是 Dynatrace SaaS 云产品和私有部署产品采用了不同的框架和技术,所以它们的功能并不完全一致,各有其突出的地方。
  • 和前面两家不同的地方是,New Relic 则 all in cloud,从建立公司之初到现在都是彻底的 SaaS 模式,所有客户都必须在其云上。这样的优势是所有客户使用同一套标准化的产品,客户的维护和硬件成本都很低,同时能享用最新的功能。劣势是潜在的安全因素,同时它不能支持对私有部署有强需求的大客户,包括政府、银行、保险公司等等。

不难看出,AppDynamics 和 Dynatrace 都有私有部署的模式,满足那些对安全和隐私有需求的大客户,同时它们提供 SaaS 的云服务应对逐渐增加的公有云服务需求,特别是 Dynatrace 今年正式将孵化的 SaaS 产品确立为主产品线,甚至在市场里首推其 SaaS 服务。另外一方面,New Relic 继续 SaaS only 的模式,因为其服务的客户以中小企业为主(SMB),往往这些企业对私有部署的需求不强,但这在一定程度上限制了它们获取部分大企业客户的能力,这很自然延伸到我想说的下一个话题,是做中小微企业(SMB)还是大客户(Enterprise)。

8. 直播与 APM:2016 年的直播行业呈现出爆发式的增长,据统计国内目前为止就有两百多家直播平台,拥有超过两千四百万的每日活跃用户,除了新闻、娱乐、社交平台之外,各大电商也纷纷推出自己的直播频道。作为以终端用户视角的评估用户体验最有效的工具,APM 套件从主动式监测(Synthetic Monitoring)和真实用户监测(Real User Monitoring)等多种技术层面,从 RTMP,HLS,HTTP-FLV 等多种直播协议支持,从多种性能指标和多个维度为直播平台提供了实时的用户体验监控,并且通过监控数据的进行直播的优化和实时调度,以提升直播的用户体验。

三、APM 2017 未来展望

作为 APM 行业的从业者,我们依然看好 APM 在未来一年内的快速发展。在未来一年内 APM 的价值将得到更多的验证和认可,并且将在统一监控领域扮演更重要的角色。在 2017 年,我们将看到大数据和机器学习在 APM 领域开始发挥重要的作用,因为云计算、微服务和容器化让监控的数据程海量增长,已经不再适合人来进行数据的分析了,是时候把异常检测和根因诊断的工作交给机器了。另外,别忘了物联网和微服务架构、容器的挑战,希望在 2017 年有一个好的开端。

感谢薛梁对本文的策划及审校。

嘉宾介绍

Wood(陈靖华)作为听云联合创始人、听云 CTO,目前负责听云平台的产品开发、技术研发和运维工作。

赵宇辰目前就职于 AppDynamics,担任首席数据科学家一职。

2016 年 12 月 26 日 20:1011425

评论

发布
暂无评论
发现更多内容

[译] R8 优化: Lambda Groups

Antway

6 月日更

OnlyOffice基本组成及工作原理

一个需求

onlyoffice

Dapr:我不是Service Mesh!我只是长得很像

中原银行

Service Mesh istio Multi-Architecture 云原生架构 dapr

趣谈Java类加载器

程序猿阿星

Java ClassLoader 类加载器

Rust从0到1-函数式编程-迭代器

rust 函数式编程 Iterator 迭代器

AI框架中图层IR的分析

华为云开发者社区

mindspore IR

anyRTC视频连麦demo上线啦!

anyRTC开发者

音视频 WebRTC 直播 视频直播 直播连麦

[TcaplusDB知识库]查看TcaplusDB集群状态

TcaplusDB

nosql tencentdb TcaplusDB database

【TcaplusDB】世界青年联欢节| 让世界看到我们的光彩!

TcaplusDB

nosql tencentdb TcaplusDB

【源码篇】Flutter Provider的另一面(万字图文+插件)

小呆呆666

flutter ios android 前端 大前端

推荐一个MySQL宝藏网站

Simon

MySQL 网站

浪潮云说丨浪潮云智能对话,想你所想,无限畅聊

浪潮云

基于 BDD 理论的 Nebula 集成测试框架重构(下篇)

Nebula Graph

分布式数据库 测试 图数据库 BDD

【全球软件大会】华为前端工程师分享:华为云官网的智能化实践

华为云开发者社区

算法 智能化 华为云官网 全球软件大会 内容分发

我看 JAVA 之 线程同步(下)

awen

Java synchronized JOL 锁升级

毕业论文被不小心删除了,有什么方法可以恢复?

淋雨

EasyRecovery 文件恢复 硬盘数据恢复

项目案例--吃货联盟

加百利

Java 项目 案例 6 月日更

Test

bobcatzoo

如果非要在多线程中使用 ArrayList 会发生什么?(第二篇)

看山

Java 并发编程

【源码篇】Flutter Bloc背后的思想,一篇纠结的文章

小呆呆666

flutter ios android 前端 大前端

react native实践总结与思考

碗盆

android 跨平台 React Native

扩展ADO.net实现对象化CRUD(.net core/framework)

Spook

.net ORM ado

数据结构——顺序栈

若尘

数据结构 六月日更

[TcaplusDB]世界青年联欢节, 让世界看到我们的光彩!

数据人er

数据库 nosql tencentdb TcaplusDB

测量电压调节器输出纹波和开关瞬变的方法

不脱发的程序猿

硬件研发 输出纹波测量 开关瞬变测量 电源测试 测量电压调节器

一个小坑

IT蜗壳-Tango

6 月日更

内蒙古公安重点人员管控研判平台建设方案

13823153121

成为你想要看到的改变,首先就是让正确的事情持续的发生。

叶小鍵

研发管理工具 ONES 完成3亿人民币 B1 B2 轮融资,继续领跑研发管理赛道

万事ONES

项目管理 融资 研发管理工具 ONES

密码学系列之:twofish对称密钥分组算法

程序那些事

加密解密 密码学 程序那些事

百度关于EMP的探索:落地生产可用的微前端架构

百度Geek说

低代码的认知误区与落地实践

低代码的认知误区与落地实践

解读2016之APM篇:快速增长的国际市场和前沿技术-InfoQ