近两年来,无论从国内还是到国外,市场出现一种APM批判的论调,甚至有“传统APM已经落后”的个别声音出现。

可放眼望去,国外主流APM厂商如:DataDog、 Dynatrace、New Relic等市值却在不断创着新高,甚至连Splunk这种大厂也在发力布局APM。国内赛道玩家同样深受资本市场的热捧,融资额屡屡逆市创新高,可以说当之无愧为二级市场的弄潮儿。

如此现实与舆论的一冰一火的反差,到底是意味着这个行业将面临的变革,还是仅仅只是业内人无处安放的焦虑?

细究之下,持这种看衰论调的人大多是用的一个依据——传统的APM将不再适应云原生时代。

我们不妨顺着这种思路来看一下,是不是如此。

新架构时代的确来了

之前很长一段时间里,对大多数公司而言云计算基本都停留在云资源层,而应用仍旧是传统的单体架构。那些设计成能上天入地的功能被辛勤的研发转化为成千上万行的代码,并牺牲睡眠时间和头发数量来保证进度,着实另人震撼。直到某一天,客户要求加个小功能模块时,我们有幸能够看到又一次堪比登月的工程重构。

做为公司的PM曾经是有理想有抱负的,“我曾经跨过山和大海, 也穿过人山人海”是经历过岁月沧桑留下的自信。但是面对这不知道换了多少架构和研发才完成的堆积成山的里三层外三层的代码堆,他们也不得不感慨:“谁能来救救我?”。

故事里通常都是这样,该拯救世界的英雄出马了,于是它真的来了。

微服务的出现可以说顺应了这个时代,它通过分布式的组件即容器来封装不同的功能并使用API通信,并能够在与之前面向服务的架构保持一致的前提下提供代码更新的灵活性,这怎么听着都像是拯救苍生来了。

这一项项的提升效果,谁能保证不心动?

  • 改善可扩展性
  • 提高生产力
  • 更快的定位问题
  • 提升系统的可用性
  • 最终提供最佳的用户体验

可是习惯理想主义的我们经常会这样,解决一些问题的同时又会制造另外一些问题出来。换成这个架构我该咋管理呀?

面对困难,我们其实早就习惯性焦虑

微服务很好很强大,但是这背后却带来了前所未有的复杂性。你所拆散成的微服务它们必须相互通信,而且还要保证将延迟降到最低,当管理一个由微服务组成的应用程序时,你实际上在管理的是一个相互关联的组件网络,还真是应了那句话“前门拒虎,后门进狼”

从人类历史看来,我们不擅长解决未知问题,甚至对未知有种本能的恐惧。大到国与国之间的外交,小到每个人的婚姻工作,仿佛不焦虑就对不起这个时代一样,尤其是这两年的疫情更是给了我们焦虑制造了快速发展的空间。

于是乎我们需要找个借口以避免显示自己解决问题能力上的不足,既然云原生是大趋势,那么凡是和它八字不合的东西统统可以说落后了,这样事情就变得简单了是吧?

以APM为例,反正APM发展了这些年也有一些积累的问题,应该也不算冤枉它,何况还有一批新兴的厂商也迫切的希望在这里做些文章呢。于是,几大罪状几乎板上钉钉。

APM的罪状:

  • 非全量采集带来的追踪数据遗漏,不具备基础资源的监控指标及系统日志的获取能力
  • 基于批处理的分析模式不满足快速定位要求
  • 专有探针模式难满足定制化采集需求,并且数据格式难统一
  • 定价模式限制了用户业务增长所需的必要的扩容
  • 难以和其它监控工具联动提升可观测性

确实不错,至少是有理有据,而且都说到点子上了。结果自然也是成功的把自己的难题推给了别人,于是焦虑神奇的转移了。

只有直面才能解决问题

既然罪状有了,APM圈总得有个应对办法吧,否则岂不是欺我无人么。于是一波聪明人聚到一起,思想的碰撞有了结果,灵光一现就是它:可观测性。

这个看似神秘的“可观测性”其实并不复杂,它定义使用新的方法来提高对应用程序的性能的洞察能力,目前主要提供三类的数据:指标(Metrics)、追踪(Traces)、日志(Logs)。

是不是很熟悉?没错,这不就是市面上多如牛毛的厂商一直在各自做的事情么?原来是众人独自闯江湖,现在需要变成有帮派了,不管是直觉还是幻觉都在告诉所有人,这对大家来说是件好事。

于是,APM就理所应当的需要修炼进化了,所谓“兵来将挡,水来土掩”也是屡试不爽的高招。

· 全量采集与数据整合
针对应用本身的性能监控,应提供全量Trace数据的采集能力,并能够支持标准化指标体系,提供对基础资源监控指标及日志的整合能力。

· 加强AI能力
通过机器学习/AI技术使用更高效的数据分析流程和算法模型来分析APM及其它数据的结果,以提供比人工监控更快的发现和解决问题的能力。

· 支持定制探针或兼容开源探针
客户能够对现有探针进行定制,或是客户自己遵循开源协议(如:OpenTracing)开发的探针,甚至现有的开源平台探针,如:SkyWalking、Pinpoint等。

· 针对微服务的新的定价方式
不再局限于探针数量的定制模式,提供更加灵活且高性价比的方案,如:按采集数据量计费、按采集时长计费等。

· 与企业现有IT系统的有效对接
对够对接已有监控系统如:基础资源监控、日志监控、网络流量分析,实现统一的监控平台。
与CMDB、ITSM、CMP系统对接的能力,提供从资源到应用的全维度管理视角的数据。
结合自动化工具,实现应用级的自动化运维能力。

总结起来其实就一句话:超越监控,向可观测性迈进。

知而不行是未知,善始才能善终

莎翁说过“一千个人眼中有一千个哈姆雷特”,即便是在这个行业里沉浸多年的人也未必看得通透。放眼整个APM江湖:有的人换了赛道不再说自己是这行了,有的人拉了关系来证明自己骨子里的基因已经变了,还有的人直接从之前的卖艺不卖身改成卖身不卖艺了。不可谓不是风起云涌,暗藏危机。

所以,豪言壮语的口号显得不那么重要了,重要的是能不能做到。“未有知而不行者,知而不行,只是未知”,阳明先生几百年前就给出过答案。对于一个行业来说这是一个蜕变的过程,会有人抵触改变,似乎改变总是伴随着推倒重来,这的确不够理性。

机遇和挑战并存的才是理性的市场,历史淘汰的始终都是不适应改变的人。改变本身并不可怕,可怕的是你根本不知道该怎么改变。“千招会不如一招绝,样样通等于样样松”,这在江湖里至少一直算是个至理名言,可以共勉。

谨以此文献给那些在自己行业里一直专注的人,因为他们始终相信“坚持初心,方得始终”。无论我们说什么,APM市场依旧在那里,或衰或荣并不由个人意愿决定。

  • 随着移动应用的蓬勃发展,用户对应用体验的要求也越来越高。如何准确了解并优化你的移动应用,以满足用户的需求?本文将向大家介绍一款备受推崇的移动应用监测工具——基调听云app,它可以为开发人员和经营者提供全方位的应用数据,助力优化与提升。

    2023-06-28

    继续阅读
  • 前段时间热播的电视剧《开端》想必不少人都看过的,其新颖的拍摄手法和不落俗套的剧情着实颇具亮点。为什么要说到这部剧呢?因为这部剧可以更好的帮我们理解什么是系统的可观测性,让你从一大堆技术概念中解脱出来。

    2022-02-24

    继续阅读
  • 系统可观测性设计是现代软件开发和运维中的关键概念,它指的是在软件设计阶段就考虑系统的可观测性,以便在运行时实时监测、分析和优化系统的性能和状态。

    2023-08-14

    继续阅读
  • 应用性能管理是一项关键任务,帮助企业确保其应用程序的高效运行和用户体验。在这篇文章中,将探讨怎么用应用性能管理来优化应用程序的性能,并提供几种关键策略和实践方法,以帮助大家实现优异的应用性能。

    2023-07-31

    继续阅读
  • 在这一互联网时代中,所生成的许多数据,都关系到了企业的经营与发展,通过了解这些数据,可以对业务进行优化、整合等多方面的操作,可以说,掌握对各项数据的了解,便是掌握了对业务的可持续发展。为了能够更好的对众多数据进行观察了解,现在已经出现了可视化监控系统可以使用,利用这种系统可以降低许多不必要的人力成本,同时在监测效果上大大提高效率与准确性。

    2023-03-21

    继续阅读