近两年来,无论从国内还是到国外,市场出现一种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. .NET周刊【9月第3期 2023-09-17】

    国内文章 在.NET 8 RC1 版本中 MAUI.ASP.NET Core 和 EF8 的新特性 https://www.cnblogs.com/shanyou/p/17698428.html 从年 ...

  2. TTS背后的技术原理——前端和后端系统

        就解锁了一个温柔又风趣的「女朋友」萨曼萨.不过,在现实生活中,和语音助手谈恋爱还是一件十分遥远的事情--刨去现阶段的语音助手们双商水平还有限,语音助手的语言表达能力还远远达不到我们理想状态. ...

  3. 【Azure Key Vault】在Azure Databricks上获取Azure Key Vault中所存储的机密(secret)的两种方式

    问题描述 在Azure Databricks上获取Azure Key Vault中所存储的机密(secret)的两种方式? 问题解答 方式一: 在Databricks的Notebook 中,直接编写P ...

  4. .NET微服务系列之Saga分布式事务案例实践

    自从Wing正式发布以后,很多童鞋反馈对Saga分布式事务比较感兴趣,今天就跟大家分享一下"跨行转账"的分布式事务实践案例,入门使用教程请自行前往Wing官方文档. 假设自己名下有 ...

  5. 【IOC,AOP】spring的基础概念

    IOC 控制反转 对象的创建控制权转交给外部实体,就是控制反转.外部实体便是IOC容器.其实就是以前创建java对象都是我们new一下,现在我们可以把这个new交给IOC容器来做,new出来的对象也会 ...

  6. Linux 本地部署私有Stackedit Markdown编辑器远程访问

    StackEdit是一个受欢迎的Markdown编辑器,在GitHub上拥有20.7k Star!,它支持将Markdown笔记保存到多个仓库,包括Gitee.GitHub和Gitea.此在线笔记工具 ...

  7. 从零用VitePress搭建博客教程(3) - VitePress页脚、标题logo、最后更新时间等相关细节配置

    接上一节:从零用VitePress搭建博客教程(2) –VitePress默认首页和头部导航.左侧导航配置 五.默认主题相关细节配置 关于默认主题的标题,logo.页脚,最后更新时间等相关细节配置,我 ...

  8. 安装k8s

    完成安装k8s集群以后,推荐使用https://github.com/512team/dhorse发布应用. 准备环境 准备两台服务器节点,如果需要安装虚拟机,可以参考<wmware和cento ...

  9. shell脚本之语句(条件、循环)

    条件语句 1.测试 使用[]时要使用空格,注意格式  格式1:test 条件表达式  格式2:[ 条件表达式 ]#注意空格  注意[]空格,否则会失败  测试 是否成功使用 $?返回值来判断  [ 操 ...

  10. 栈源代码(c++)

    stack.h #ifndef STACK_H_ #define STACK_H_ #include<iostream> template<class T> struct No ...