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