AICon 上海站|90%日程已就绪,解锁Al未来! 了解详情
写点什么

专访 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:255953
用户头像

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

关注

评论

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

我在京东做研发 | 揭秘支撑京东万人规模技术人员协作的行云DevOps平台

京东科技开发者

JumpServer & Windows 资产无法连接

coxi_vv

智能合约MetaForce佛萨奇系统开发详细(技术解析)

I8O28578624

MetaForce佛萨奇系统开发技术流程(成熟代码)佛萨奇2.0源码部署教程

I8O28578624

佛萨奇系统开发源码部署技术方案(MetaForce元宇宙)

I8O28578624

成为技术管理者之后,我们应该做出哪些转变?

石云升

极客时间 2月月更 技术领导力实战笔记

佛萨奇系统开发流程原理,2.0版?佛萨奇源码部署搭建方案程序解析

I8O28578624

软件质量因素的定义

JefferLiu

北京大数据培训中心怎么样

小谷哥

从实测出发,掌握 NebulaGraph Exchange 性能最大化的秘密

NebulaGraph

数据导入

1月书单 & 2月新书预告 | 百万册畅销书全新续作来啦!

图灵教育

书单推荐 科技书单 新书

前端培训学完课程后如何找工作?

小谷哥

5大移动应用开发平台推荐

FN0

移动开发 移动开发平台 移动应用开发 移动端开发

如何使用自己的 SSL 证书登录堡垒机?

coxi_vv

堡垒机如何测试Windows 资产可连接性

coxi_vv

java就业培训班怎么选?

小谷哥

图解华为云代码检查服务CodeArts Check

华为云PaaS服务小智

软件测试/测试开发 | app自动化测试(Android)-- 特殊控件 Toast 识别

测试人

软件测试 自动化测试 测试开发 appium

JumpServer 常用的 MFA 工具

coxi_vv

StarRocks斩获「2022 掘金引力榜」年度技术品牌传播案例 Top 10!

StarRocks

数据库

科班和培训出来的前端程序员的区别

小谷哥

VSCode 连接 JumpServer 资产

coxi_vv

JumpServer 审计录像

coxi_vv

天穹:一站式BizDevOps平台介绍

哈哈哈

云原生 后端 链路追踪 压测 网关

JumpServer 登录密码忘记及用户锁定如何处理

coxi_vv

1月书单 & 2月新书预告 | 百万册畅销书全新续作来啦!

图灵社区

书单推荐 新书

龙蜥开发者说:6 年前打开的开源“潘多拉盲盒”,如今都解了哪些未知数 | 第 15 期

OpenAnolis小助手

开源 操作系统 龙蜥社区 龙蜥开发者说 联通

如何使用 JumpServer 推送资产的系统用户?

coxi_vv

天穹-gateway网关系列1:Tesla网关整体介绍

哈哈哈

开源 云原生 后端 网关 #java

一文揭晓,我是如何在Linux中查找自如

C++后台开发

Linux 后端开发 linux开发 Linux服务器开发 C++开发

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