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 ...
随机推荐
- .NET开发工作效率提升利器 - CodeGeeX AI编程助手
前言 2022年6月,随着GitHub Copliot正式面向大众发布.让许多开发者都感受到了AI辅助编程工具的魅力所在,Copilot实现了帮助开发者大大提高了编程开发效率,让程序员朝九晚五成为可能 ...
- vscode没有完全汉化怎么办? vs code部分内容没汉化的解决办法
- 一个简单的C4.5算法,采用Python语言
Test1.py 主要是用来运行的 代码如下: # -*- coding: utf-8 -*- from math import log import operator import treePlot ...
- 研发日常踩坑-Mysql分页数据重复
踩坑描述: 写分页查询接口,order by和limit混用的时候,出现了排序的混乱情况 在进行第N页查询时,出现与第一前面页码的数据一样的记录. 问题 在MySQL中分页查询,我们经常会用limit ...
- 9.26 多校联测 Day 5 总结
虽然比赛还没打完,但是因为又罚坐了,提前把总结写出来吧() 看 T1,构造了一会发现大概就是把 b 序列放在 a 的最后面,前面位置填几个数. 先码了暴力,再码正解.但求出来的方案显然不是同一种/fn ...
- Unity3D ConfigMan.cs For XML File
using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Tex ...
- SpringBoot+Redis实现接口级别缓存信息
本文主要讲述如何通过SpringBoot+Redis实现接口级别缓存信息 背景 近期因为一直在处理公司的老项目,恰好碰到产品说页面有一些信息展示慢,简单看了一下页面接口,发现查询的是系统中几张大表(数 ...
- JavaScript 语法:语法约定与程序调试
作者:WangMin 格言:努力做好自己喜欢的每一件事 JavaScript 语法约定 1.大小写的区分 1). JavaScript的关键字,永远都是小写的: 2). 内置对象,如Math和Date ...
- 中龙技术 | HSCSEC CRY + MISC WP
CRYPTO[HSC-1th] Easy SignIn 5445705857464579517A4A48546A4A455231645457464243566B5579556C7053546C4A4E ...
- Mac postman调分页接口,导出csv
准备后端接口 package com.ybchen.controller; import com.ybchen.utils.JsonData; import lombok.Data; import o ...