APM市场冰火两重天,或许只是行业无处安放的焦虑
近两年来,无论从国内还是到国外,市场出现一种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市场冰火两重天,或许只是行业无处安放的焦虑的更多相关文章
- 创业的游戏 明星APP上市前后的冰火两重天
明星APP上市前后的冰火两重天" title="创业的游戏 明星APP上市前后的冰火两重天"> 当下,似乎只有创业才是能够实现笑看风云变幻的那条"黄金通道 ...
- [APM] 解读2016之APM国内篇:快速增长的APM市场和技术
前言 2016年是APM技术和市场快速发展的一年,在这一年里APM市场特别是国内的市场取得了极大的增长,用户对APM价值的认识和接受度也有了很大的提升,国内市场已基本完成了用户教育和市场培养的阶段.与 ...
- luoguP6619 [省选联考 2020 A/B 卷]冰火战士(线段树,二分)
luoguP6619 [省选联考 2020 A/B 卷]冰火战士(线段树,二分) Luogu 题外话1: LN四个人切D1T2却只有三个人切D1T1 很神必 我是傻逼. 题外话2: 1e6的数据直接i ...
- POJ 1475 Pushing Boxes 搜索- 两重BFS
题目地址: http://poj.org/problem?id=1475 两重BFS就行了,第一重是搜索箱子,第二重搜索人能不能到达推箱子的地方. AC代码: #include <iostrea ...
- POJ-2689 Prime Distance (两重筛素数,区间平移)
Prime Distance Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 13961 Accepted: 3725 D ...
- 2018/7/31--zznu-oj-问题 G: 方差 普拉斯--【两重暴力循环求方差即可!】
问题 G: 方差 普拉斯 时间限制: 1 Sec 内存限制: 128 MB提交: 94 解决: 17[提交] [状态] [讨论版] [命题人:admin] 题目描述 方差(样本方差)是每个样本值与 ...
- hdu3400 两重三分
题意: 题意给你两个公路 A-B C-D 和三个速度V(ab) V(cd) 和 V(两条公路之间) 问你从A到D的最短时间是多少. 思路: 一开始暴力了其中的一条边,每次加0.01,另 ...
- [省选联考 2020 A/B 卷] 冰火战士
一.题目 点此看题 二.解法 其实这道题也不是特别难吧 \(......\) 但树状数组上二分是我第一次见. 我们把冰人和火人都按温度排序,那么考虑一个分界线 \(x\) ,问题就是求冰数组 \(x\ ...
- 对logistic回归分析的两重认识
logistic回归,回归给人的直观印象只是要求解一个模型的系数,然后可以预测某个变量的回归值.而logistic回归在应用中多了一层含义,它经常应用于分类中.第一重认识:logistic是给真正的回 ...
- hdu 5104 Primes Problem(prime 将三重循环化两重)
//宁用大量的二维不用量小的三维 #include <iostream> #include<cstdio> #include<cstring> using name ...
随机推荐
- Nacos启动报错:Please set the JAVA_HOME variable in your environment, We need java(x64) jdk8 or later
可能原因: 1.JDK版本过低(应不低于1.8) 2.未设置jdk环境变量(可能性低) 3.jdk环境变量设置不适配nacos(博主就是这个原因) 解决方案: 1.直接在startup.cmd文件中设 ...
- ORA-01008:并非所有变量都已绑定-解决办法
近期批量处理数据,后台用JAVA编写,连接Oracle数据库,程序运行报ORA-01008问题.解决这个问题时遇见的坑较多,下面复盘现象.问题提出解决办法,希望能帮到遇见同类问题的你. 调试问题: 后 ...
- win11系统无法解决的死结
如果需要使用网上银行.win11一定不能使用. win11已经取消了,对于IE浏览器的支持和安装. 但是大部分网银都是要求IE浏览器.或者IE内核.实际过程当中.虽然所有的浏览器都说兼容IE有IE内核 ...
- [ABC205E] White and Black Balls 题解
White and Black Balls 题目大意 将 \(n\) 个白球,\(m\) 个黑球排成一列,要求满足 \(\forall i\in[1,n+m],w_i\le b_i+k\),问存在多少 ...
- 使用VSCode新建解决方案,添加ClassLib类库工程
最近准备全面转向VSCode开发C#代码,所以第一件事就是使用VSCode新建解决方案,添加工程. 通过ChatGPT找到的大致的实现方案: 首先,打开VS Code的终端,然后导航到您想要创建解决方 ...
- js性能优化解决办法
1. 减少http请求次数:CSS Sprites, JS.CSS 源码压缩.图片大小控制合适:网页 Gzip,CDN 托管,data 缓存 ,图片服务器 2. 前端模板 JS + 数据,减少由于HT ...
- 天上掉 Pizza
实在不知道错哪了... 对着 std 检查了好几遍了QAQ 题解见注释(不过估计题解也是错的,不然为什么写错啊QAQ #include<bits/stdc++.h> using names ...
- synchronized 解决方案
4.2 synchronized 解决方案 为了避免临界区的竞态条件发生,有多种手段可以达到目的. 阻塞式的解决方案:synchronized,Lock 非阻塞式的解决方案:原子变量 本次课使用阻塞式 ...
- [Python急救站课程]温度转换程序
华氏温度转换为摄氏度的温度转换程序共有三种写法 一.简单的温度转换程序 TempStr = input("请输入带有符号的温度值: ") # TemStr表示命令,表示占位符.=为 ...
- 文心一言 VS 讯飞星火 VS chatgpt (128)-- 算法导论11.1 3题
三.用go语言,试说明如何实现一个直接寻址表,表中各元素的关键字不必都不相同,且各元素可以有卫星数据.所有三种字典操作(INSERT.DELETE和SEARCH)的运行时间应为O(1)(不要忘记 DE ...