和国内市场正处在培养、教育阶段不同,海外APM市场相对成熟,APM厂商众多,它们一般分为两大阵营:
传统APM厂商很多都有十几年的技术积累,很多从基于中间件和大型机的产品发展过来,APM套装产品已经非常稳定,在执行力和创新能力上会显得慢一些;而新兴的三家APM厂商每年会快速迭代自己的产品,继续在APM领域深耕。本文分享一下笔者观察到的海外2016年在APM领域的一些新变化。
在过去的几年,APM 厂商主要把重心放在 IT 和技术运维上,包括服务器端和客户端的性能监控、可视化和系统优化等等,同时监控的指标和IT系统也紧密相关。在2016年,一个很显著的特征是新兴的 APM 厂商逐渐从技术运维向商业核心业务拓展。2015年底,New Relic 把分析云整合进网页端、手机端和后端的各个产品线;在2016年11月,New Relic 又推出了 Digital Intelligence 平台,旨在用云平台帮助商业用户更快的解决问题,提供更优的客户体验和带来更好的商业价值。AppDynamics 在2015年12月更新了整个分析产品线,重点放在帮助企业在数据化的转变阶段成功;2016年11月 AppDynamics 更是直接推出了 Business iQ 平台,从名字就不难看出其在商业相关的核心业务上发展的决心,该平台将性能平台和商业平台结合到了一起,为数字化的企业提供实时的商业智能。
其实这个转变是一个非常自然的过程。在过去的几年各个 APM 厂商纷纷都将重心放在完善监控的产品线上,包括手机端(iOS,Android),浏览器端,服务器端(Java,.Net,Python,C++,PHP等多语言)、数据库端(SQL、NoSQL)、网络端(NPM)和基础设施端(infrastructure)等等,试图打造一个统一的性能监控平台。在这个过程中,各厂商积累了大量的在不同产品线打点和提供代码级监控的能力,并且实时处理、过滤和分析这些海量数据的技术。很自然的这些技术和数据不只在 IT 性能监控上可以利用,对于 IT 分析甚至整个商业业务都能发挥出极大的作用。所以,APM 里常说的健康状况不仅仅局限于 IT 系统的健康状况,甚至可以延伸至企业整个商业系统和生态环境的健康状况。我们注意到这个转变分为两个阶段,第一个阶段是从单独的 APM 到 IT 管理和分析(IOTM/ITOA)的过度,第二阶段是利用 APM 的技术和数据到商业智能、分析的拓展。
举个例子来说,除了 APM 常见的系统指标外,商业系统里常见的 KPI 和企业的财务、销售、客服等指标都可以被监控,并实时提供企业运行的健康状况。和企业息息相关的指标,例如、成单率、转换率、广告点击率等等以及它们的相关数据都能被提取和分析,同时它们反映了该数字系统和企业的商业效率。另外一方面,系统性能指标和商业指标还能有效地结合在一起,两者叠加提供更大的价值。比如一个电商网站,在完成订单的网页不能正常访问或者速度很慢的情况下,应用性能指标可以有效的发现软件系统和代码中的具体问题,商业指标可以精确定量的让商业决策者了解该事故具体给企业带来了多大的影响,损失了多少订单收入和降低了多少转化率等等。通过应用性能和商业两个不同的视角可以更全面、具体的了解分析数字软件系统,同时也将 APM 产品推广给了更多了受众群,包括企业决策人等等。将 APM 从技术、IT运维拓展到商业核心业务,大大增强了 APM 产品的商业价值和应用面,使 APM 不仅仅限定于企业的运维团队,这也不难理解为什么在2016年新兴的 APM 厂商纷纷将重心放在了这个方向上。
伴随着 APM 业务线拓展的同时,2016年另外一个显著的特点是对人工智能和机器学习的强调。我们首先从权威分析机构对 APM 的理解来看:
在 APM 领域应用机器学习要解决的一个先决条件是大数据的能力,其中包括打通各个产品线和数据源,存储、提取和处理大规模数据的能力等等。目前各 APM 厂商在人工智能领域还处于尝试和探索阶段。主要利用人工智能和机器学习解决的用例包括以下方向:
私有部署(on-prem)还是SaaS模式在2B的企业中是个永恒的话题。从新兴的三家APM产商来看,他们的切入点也各有不同:
不难看出,AppDynamics 和 Dynatrace 都有私有部署的模式,满足那些对安全和隐私有需求的大客户,同时它们提供 SaaS 的云服务应对逐渐增加的公有云服务需求,特别是 Dynatrace 今年正式将孵化的 SaaS 产品确立为主产品线,甚至在市场里首推其 SaaS 服务。另外一方面,New Relic 继续 SaaS only的模式,因为其服务的客户以中小企业为主(SMB),往往这些企业对私有部署的需求不强,但这在一定程度上限制了它们获取部分大企业客户的能力,这很自然延伸到我想说的下一个话题,是做中小微企业(SMB)还是大客户(Enterprise)。
传统的APM厂商和部分新兴 APM 厂商(AppDynamics,Dynatrace)都主要将重心放在大客户上,尽管它们各自有面向中小企业的免费版产品。New Relic 则是另辟蹊径一直将重心放在中小微企业上,从开发者切入,采用 land-and-expand 的销售模式。2016年一个比较值得关注的特点是 New Relic 加大了在大客户销售上的投入,从其招聘信息不难看出其在各个区域开始增加大客户的销售团队,并将客户范围锁定在世界五百强。在今后的几年,几家 APM 产商的目标客户将会有越来越多的重叠,唯有提升产品的质量才能立足于市场,这对广大的 APM 用户来说确实是件好事。
传统上来说 APM 厂商重点关注的对象是服务器端的程序和软件框架。近几年随着业务的拓展,各家分别将监控延伸到了前端,包括基于 iOS 和 Android 的 APM SDK 和基于浏览器和各种前端框架的 JS 脚本。在后端来看,数据库端和硬件构架端的监控也融入到了 APM 体系。所以,终端用户(End User)的定义不仅仅限于最初的应用程序,而是扩展到了广义的终端用户的概念。
从2016年起值得留意的是物联网(IoT)的兴起。越来越多的企业将连通互联网的设备接入企业内部和外部,同时它们产生了大量分布式的数据流。对这些新型且复杂的数据的处理、管理和监控对 APM 产品提出了新的挑战。在物联网的角度来看,根据实时数据提供有效且可靠的解决方案是必不可少的,已经有越来越多的 APM 厂商在广义的终端用户,尤其是物联网领域加大了投入。
近几年微服务(Micro-Service)的概念越来越深入人心,从前几年仅仅在测试环境中使用逐渐过渡到现在越来越多的企业在真实的生产环境中应用微服务技术。各种容器技术的发展也使微服务变的更容易和更可靠。明显能看出,企业的软件系统不断的复杂化和动态化促成了微服务的兴起,同时 APM 厂商也迅速跟进。AppDynamics 于2016年8月正式推出 Micro-Services iQ 产品线,用智能引擎帮助企业用户管理和监控复杂和大规模的微服务体系结构。New Relic 在2016年11月扩展了其监控功能至容器和微服务环境,帮助用户发现微服务中的性能影响因素。
微服务和容器技术在2016年发展迅速,同时笔者认为会在2017年达到企业级的成熟状态并且被更多客户所接受且使用在实际生产环境中。微服务的广泛应用将产生非常大量动态的实时数据,对APM收集和分析数据产生了极大挑战,并迫使 APM 更依赖于智能的解决方案。另外,微服务的实例(instance)可以动态调整,其生命周期和传统的软件架构不同,对应用和系统架构的依赖关系都带来了新的挑战。
微服务带来的另外一个特点是对分布式的 debugging,profiling 和追踪的要求大大提高。导致性能下降和软件事故的潜在可能原因很多,传统的 APM 解决方案不能很好的确认和隔离出错的根源,这在微服务的框架下显得更加的突出。如何能追踪信息链路和系统构架拓扑上导致性能问题并自动隔离成为了各 APM 厂商积极解决的问题之一。
赵宇辰目前就职于 AppDynamics首席数据科学家,以上观点仅代表个人,不代表InfoQ意见。