写点什么

专访 OneAPM 创始人何晓阳:APM 将是开发者必备服务

  • 2015-04-17
  • 本文字数:2995 字

    阅读完需:约 10 分钟

总编访谈”是InfoQ 推出的一个高端访谈栏目,由总编辑

崔康主持,致力于深入采访国外内顶尖技术力量,报道最前沿、最有深度的内容,分享干货和经验。

本期采访嘉宾是OneAPM 创始人何晓阳,他应邀接受了InfoQ 专访,就APM 的发展历史、现状、技术细节、未来趋势做了深入的分析。

InfoQ:感谢晓阳接受专访,对于国内的开发者来说,APM 是个比较新颖的概念,能给大家介绍一下 APM 吗?是如何发展起来的?

何晓阳:从 IT 的发展史来看,一般来说,关键技术的变化经常会引起某个具体行业领域的变革。APM 市场就是其中很好的例证。APM 是 Applicaiton Performance Management 的缩写,也就是应用性能管理,在国外已经流行多年,这个市场是如何发展起来的呢?其中最关键的是 Application(应用)的变化。如果相比以前,我们可以发觉现在 Application 已经无处不在了,比如看看我们的手机,上面的应用非常多,包括 O2O、电商等。随着应用数量的快速膨胀,APM 也从一个很小的细分市场成长为一个涵盖面很广的领域。这就是技术变化带来的巨大影响。

那么,有些读者可能会有疑问,APM 和传统的代码分析有什么区别呢?这和应用的变化紧密相关。现在随便一个应用的用户数可能就是海量的,像“足记”这样的应用,一夜之间就是上百万用户;第二个特点,云计算已经落地,原来集中式的应用部署方式,现在部署到云平台比如几百台虚机上,导致整个业务逻辑的执行路径变长。而且现在 SOA 很热,一个应用后端被切成几个不同的 service(服务),被应用调用,各种跳转,在这种情况下,IT 企业和工程师很难通过测试或者模拟来发现大部分问题。只能通过生产环境的实时监控做到。以前,我们可以通过一些测试工具跑 500 个或者 1000 个 virtual user 来测试性能,但现在几百万的访问量导致生产环境和测试环境产生了巨大的差异。正是在这种情况下,APM 市场才慢慢壮大起来。

InfoQ:APM 本身可以分好几块,比如监控、分析、优化等,现在 OneAPM 主要关注哪些领域?

何晓阳:APM 行业本身在飞速发展。APM 在上一代,强调的是监控,也就是把所有的生产环境信息收集起来,交给客户,但是并不判断问题存在哪里。而现在新一代的 APM,也就是 OneAPM 所关注的、所强调的是分析,比如性能瓶颈在哪里?异常交易在哪里?现在无论是敏捷还是 Devops,强调的都是快,所以对于开发团队来说,想立刻知道异常问题出现在哪里,这是新一代 APM 正在做的事情。

以 OneAPM Application Insight 为例,它针对应用性能管理领域定义了五个功能维度:真实用户体验管理、应用拓扑的发现和可视化、用户自定义业务分析、应用组件深度监控、IT 运营分析。

InfoQ:有了 APM 厂商和工具,是否意味着软件公司不再需要性能测试工程师了?

何晓阳:按照我的理解,性能测试应该是一个过去的概念,而 APM 是一个与时俱进的概念。现在,大多数公司可能都没有性能测试,而专业的测试工具收费比较贵,可以说,200 人以下的创业公司没有考虑过这个岗位,如果是这种情况,那么创业公司可以直接用 APM 服务来代替性能测试工程师。对于大公司,我认为还是需要性能测试工程师,不过应该把 APM 服务和工具引入到正常的性能测试工作中,成为测试人员的工具箱,APM 可以帮助测试人员监控和发现问题。

InfoQ:OneAPM 代码级的探针所采用了哪些关键技术?

何晓阳:先从我最熟悉的 Java 说起吧。对于单机来说,应用运行在一个 JVM 上,对于开发者来说,基本的性能分析需求包括几点:方法的调用栈、方法的执行时间、线程锁是否异常、消耗 CPU 最多的线程、内存是否泄漏等等。从技术角度讲,JVM 的探针,就是利用了 Java bytecode instrument 机制,指的是在 Java 字节代码生成之后,对其进行修改,增强其功能。这种做法相当于对应用程序的二进制文件进行修改。对于 Java 来说,就是改变 JVM 在加载类文件时候的行为,在客户的代码中注入一些监控的语句,实现数据收集、分析的能力。对于分布式的架构来说,就是在多个 JVM 之间的调用的出入口记录 tag。

像.NET、Ruby、Python 等语言都是类似的机制。

这种探针都是经过精心设计的,非常轻量级,对于应用的性能影响都控制在 1% 以内,与很多应用服务器自带的沉重的 trace 机制完全不一样。另外,我们还使用了采样分析的技术,将性能影响降到最低。

InfoQ: 目前国内对 APM 的使用还处于初级阶段,你认为随着市场不断的成熟,开发者或者厂商是否会对 APM 采取更拥抱的态度?

何晓阳:是的,而且不用等太久。目前创业的趋势发生了变化,在去年以前,大部分数创业者是产品经理,关注的是商业模式的创新,从去年开始,更多的技术人开始创业,关注的也是技术创新,开始精细化运营,用技术的方式来解决问题。

第二个变化是人力成本变高了,也就是程序员越来越贵了。以前美国硅谷一个人的工作在国内可以招 10 个人,大家各负其责,可以承担大部分 APM 要做的事情,但是美国只有一个人,那么他自己搞不定 APM,需要使用第三方的服务。现在中国的 IT 人力成本也提高了,企业发现与其招聘几个人做 APM,不如直接购买线上的 APM 服务,性价比更高。像云计算、CDN 都是这样的例子。

通常只有火了的应用才会出现性能问题,不火的应用也没有那么大用户压力。最近有本书《创业小败局》,里面提到了 21 个创业失败的案例,我之前特意写过一篇文章,其中有 4 个案例是因为性能问题失败的,这是很遗憾的事情。

国外创业是抱着做成的心态,中国的创业赌性比较大。等用户量上来了,才引入 APM。用户体验是第一位的。国外是精细化运营的,人比较少,所以要留住每一个用户,国内不一样,只要增长率高于流失率就可以。很多行业初期是这样,后期则关注精细化运营,才想到 APM 的重要性。

InfoQ:客户对 APM 最强烈的需求有哪些方面?

何晓阳: 我认为主要有三个。首先是端到端的性能管理可视化。在分布式部署的复杂 IT 环境中,从前端浏览器到后端应用服务器、数据库,能够有效的监控和分析每一个交易环节的性能信息。第二个是用户体验,具体说面向真实的用户体验,实时的知道甚至预测何时出现问题,在用户还没有察觉之前,就由工程师来解决掉。第三个是,从业务的角度看 IT,通过 APM 分析数据,把业务信息、性能信息放在一起分析,进一步发现数据之间的关联。有点类似于 BI。

InfoQ:用户的性能问题最容易出现在哪些方面?

何晓阳:举三个典型例子吧。第一个是在数据库调用方面出现了严重的问题,循环几千次,对于其他的第三方服务也是类似的问题。第二个是,多个交易系统,其中某个不受重视的系统对资源的配置没有设置上限,结果该系统的用户在突然增加时,耗尽了关键的共享资源,其他交易系统无法正常工作。第三个则是配置方面,预分配了太多的资源,而实际使用率很低,导致性能问题。

InfoQ:OneAPM 刚搬到新办公室,据说又要换更大的地方?

何晓阳:是的,我们已经在旁边的写字楼预定了一块更大的办公空间。现在员工大约有 200 人,以后每年都会有 100 多人的招聘计划,现在我们的 SaaS 平台客户需求非常旺盛,需要补充更多的人才来满足业务。

InfoQ:上次参加 OneAPM 的“C to O”发布会,以应对 Compuware 退出中国的遗留问题,现在进展如何?

何晓阳:主要三个方面吧。首先,大约 40% 的渠道商已经选择了与我们合作;其次,原来 Compuware 客户也都在与我们谈后续的合作;第 3 点,员工方面,我们已经招聘了一些原来公司的优秀的 APM 专家,包括研发、测试等职位,目前不少已经正式上班。

InfoQ:感谢晓阳接受专访。

2015-04-17 02:255710
用户头像

发布了 501 篇内容, 共 254.9 次阅读, 收获喜欢 59 次。

关注

评论

发布
暂无评论
发现更多内容

什么是反序列化?反序列化的过程,原理

网络安全学海

黑客 网络安全 信息安全 渗透测试 反序列化

Flink Sql Gateway的原理与实践

安第斯智能云

数据库 sql

1. 编译原理概览

书旅

Go 后端 编译原理 源码剖析

飞桨企业版重磅发布智能边缘控制台,5分钟零代码自动化模型部署

百度大脑

人工智能

微服务架构 | 如何优化日志链路追踪输出SQL的执行效率?

码农架构

微服务架构 链路追踪 SpringCloud

国内首次Feature Store Meetup回顾

第四范式开发者社区

机器学习 第四范式 OpenMLDB 特征平台

CurveFS预览版重磅首发,Curve加速迈向云原生软件定义存储

网易数帆

GitHub

管控一体化 | IM即时通讯构建企业协同生态链

WorkPlus

dart系列之:dart优秀的秘诀-隔离机制

程序那些事

flutter dart 程序那些事 12月日更 flutter for web

Java开发之命名规范

@零度

Java 命名规范

VUEX的store用法

CRMEB

Android C++系列:Linux Socket编程(四)多路IO转接服务器

轻口味

28天写作 12月日更

网络安全产品之堡垒机应用于教育行业案例讲解

行云管家

网络安全 教育 等保 等级保护

10个常见的前端手写功能,你全都会吗?

CRMEB

压测大师链路监控服务开放免费体验预约

WeTest

CRM报告如何改变您的业务

低代码小观

低代码 企业管理 CRM 企业管理系统 CRM系统

使用 Nocalhost 开发 Kubernetes 中的 APISIX Ingress Controller

CODING DevOps

Kubernetes 云原生 APISIX Nocalhost Ingress Controller

为什么我不怎么用调试器

Justin

软件开发 28天写作 调试工具

从直播硬件出发,浅析直播技术到物联网设备的智能化趋势

阿里云视频云

阿里云 物联网 直播 直播技术 视频云

3个步骤,4大平台,搞定大规模数据处理

百度开发者中心

大数据

再下一城!两大社区携手打造 API 日志监控新利器

API7.ai 技术团队

云原生 网关 日志管理 Apache APISIX Apache RocketMQ

前端布局中让子元素横向排列并自动换行

Changing Lin

Vue 前端开发 12月日更

LevelDB封装和功能拓展

FunTester

数据库 测试框架 测试开发 leveldb FunTester

重磅!博睿数据Go语言智能探针技术GoAgent国内首发

博睿数据

MySQL从入门到入魔(01)

海拥(haiyong.site)

MySQL 入门 28天写作 12月日更

十一月热点:BML预置模型调参添新利器;EasyDL图像分类上线免训练极速迭代模式

百度大脑

人工智能

数百名专家政要出席阿联酋区块链大会“DCS 2021 ” 虎符受邀亮相

区块链前沿News

Hoo 虎符交易所 区块链峰会 DCS 2021 全球分布式云存储峰会

Hybris commerce产品主数据的搜索API,批量返回若干主数据的值

汪子熙

28天写作 SAP 12月日更

阿里云李克:边缘云技术发展与实践

阿里云Edge Plus

CDN 边缘计算 CDN加速

12月17日技术大咖云集,云智技术论坛“年度收官”聚焦知识智能化

百度大脑

人工智能

从4K到8K,谁才是开启8K时代的钥匙?

郑州埃文科技

数据库 IP 8k

专访OneAPM创始人何晓阳:APM将是开发者必备服务_Java_崔康_InfoQ精选文章