近两年来,无论从国内还是到国外,市场出现一种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市场依旧在那里,或衰或荣并不由个人意愿决定。

APM市场冰火两重天,或许只是行业无处安放的焦虑的更多相关文章

  1. 创业的游戏 明星APP上市前后的冰火两重天

    明星APP上市前后的冰火两重天" title="创业的游戏 明星APP上市前后的冰火两重天"> 当下,似乎只有创业才是能够实现笑看风云变幻的那条"黄金通道 ...

  2. [APM] 解读2016之APM国内篇:快速增长的APM市场和技术

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

  3. luoguP6619 [省选联考 2020 A/B 卷]冰火战士(线段树,二分)

    luoguP6619 [省选联考 2020 A/B 卷]冰火战士(线段树,二分) Luogu 题外话1: LN四个人切D1T2却只有三个人切D1T1 很神必 我是傻逼. 题外话2: 1e6的数据直接i ...

  4. POJ 1475 Pushing Boxes 搜索- 两重BFS

    题目地址: http://poj.org/problem?id=1475 两重BFS就行了,第一重是搜索箱子,第二重搜索人能不能到达推箱子的地方. AC代码: #include <iostrea ...

  5. POJ-2689 Prime Distance (两重筛素数,区间平移)

    Prime Distance Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 13961   Accepted: 3725 D ...

  6. 2018/7/31--zznu-oj-问题 G: 方差 普拉斯--【两重暴力循环求方差即可!】

    问题 G: 方差 普拉斯 时间限制: 1 Sec  内存限制: 128 MB提交: 94  解决: 17[提交] [状态] [讨论版] [命题人:admin] 题目描述 方差(样本方差)是每个样本值与 ...

  7. hdu3400 两重三分

    题意:      题意给你两个公路 A-B C-D 和三个速度V(ab) V(cd) 和 V(两条公路之间) 问你从A到D的最短时间是多少. 思路:    一开始暴力了其中的一条边,每次加0.01,另 ...

  8. [省选联考 2020 A/B 卷] 冰火战士

    一.题目 点此看题 二.解法 其实这道题也不是特别难吧 \(......\) 但树状数组上二分是我第一次见. 我们把冰人和火人都按温度排序,那么考虑一个分界线 \(x\) ,问题就是求冰数组 \(x\ ...

  9. 对logistic回归分析的两重认识

    logistic回归,回归给人的直观印象只是要求解一个模型的系数,然后可以预测某个变量的回归值.而logistic回归在应用中多了一层含义,它经常应用于分类中.第一重认识:logistic是给真正的回 ...

  10. hdu 5104 Primes Problem(prime 将三重循环化两重)

    //宁用大量的二维不用量小的三维 #include <iostream> #include<cstdio> #include<cstring> using name ...

随机推荐

  1. 【RocketMQ】事务实现原理总结

    RocketMQ事务的使用场景 单体架构下的事务 在单体系统的开发过程中,假如某个场景下需要对数据库的多张表进行操作,为了保证数据的一致性,一般会使用事务,将所有的操作全部提交或者在出错的时候全部回滚 ...

  2. How to parse OR AND within text

    假设你有一行 String condition = "A or B and C"; 语句,请问怎么做才能变成一行真正的逻辑表达式(能在计算机中运行计算)? Resolution 声 ...

  3. 俄罗斯版IDM安装与破解以及解决B站视频网站不弹出下载浮窗

    IDM 全称 Internet Download Manager,是一款非常优秀的多线程下载和视频嗅探工具,不仅可以显著提高文件下载速度,配合IDM浏览器扩展插件,还可以嗅探并下载YouTube.知乎 ...

  4. Android dumpsys介绍

    目录 一.需求 二.环境 三.相关概念 3.1 dumpsys 3.2 Binder 3.3 管道 四.dumpsys指令的使用 4.1 dumpsys使用 4.2 dumpsys指令语法 五.详细设 ...

  5. RLChina理论三:强化学习基础

    强化学习基础 马尔可夫决策过程就是在,环境自发做出转变,是个随波逐流的过程,At是智能体的行动,在St环境状态下加入At动作,c才进入下个状态S(t+1),即环境有自己的变化,也加入了智能体的决策. ...

  6. 【慢SQL性能优化】 一条SQL的生命周期

    一. 一条简单SQL在MySQL执行过程 一张简单的图说明下,MySQL架构有哪些组件和组建间关系,接下来给大家用SQL语句分析 例如如下SQL语句 SELECT department_id FROM ...

  7. parallel-comparator-200

    直接上来就是c代码,这种题还是第一次做,直接写代码逆向回去就行了 但是奈何水平太低写不回去... 分析 需要下面的两个字符串相等才能得到正确的程序,若要相等就只能让result等于0 那就意味着亦或的 ...

  8. 推荐一个 AI 绘图工具!将草图变成精美的图片!

    大家好,我是 Java陈序员. 要说 2023 年科技圈什么最火,当属 ChatGPT!自从 ChatGPT 爆火之后,各种 AI 工具层出不穷.AI 对话.AI 写文案.AI 写代码..... 今天 ...

  9. 升级到 Pulsar3.0 后深入了解 JWT 鉴权

    背景 最近在测试将 Pulsar 2.11.2 升级到 3.0.1的过程中碰到一个鉴权问题,正好借着这个问题充分了解下 Pulsar 的鉴权机制是如何运转的. Pulsar 支持 Namespace/ ...

  10. Net 高级调试之十:轻量级代码生成的调试

    一.简介 今天是<Net 高级调试>的第十篇文章.说起来,高级调试,调试的内容还是挺多的,技巧也不少,但是,要想做一个合格的高级调试人员,还需要掌握如何调试动态生成的IL代码.今天要探讨的 ...