点击围观!腾讯 TAPD 助力金融行业研发提效、敏捷转型最佳实践! 了解详情
写点什么

AppDynamics 赵宇辰:硅谷 APM 独角兽,打造 DevOps 领域的智能大脑

  • 2016-07-20
  • 本文字数:5380 字

    阅读完需:约 18 分钟

近来,关于机器学习的报道很多,国内外的大型互联网企业都在着手对机器学习的研究。对应用性能的高效管理,首先要了解应用的一手数据,通过传统的数据获取方式已经不能满足企业的发展和市场环境,这就需要借助机器学习的技术手段,来更智能、更迅速、更准确的找到所需要的信息,快速解决问题。

2016 年 8 月 18-19 日,由极客邦、InfoQ 和听云联合主办的 APMCon2016 中国应用性能管理大会将在北京举行(现在报名,享6 折优惠),聚焦当前最为关键的移动端、Web 端和Server 端的性能监控和管理技术。

本届大会,我们有幸邀请到了AppDynamics Principal Data Scientist,Machine Learning Engineering 赵宇辰,前来分享《下一代数据驱动的智能APM:痛点,趋势及解决方案》的内容,讲述他在AppDynamics 一直研究的机器学习技术在用户数据挖掘、应用性能分析领域的实践及宝贵经验。

InfoQ:能不能介绍一下之前作为 Scissorsfly 联合创始人的这段历史?对您之后选择的数据领域是否有很多帮助?

赵宇辰:相对于纯数据研究,我的经历可能相对丰富一些。本科清华毕业,在美国读博期间,我选择数据挖掘和机器学习作为我的主要研究方向,在该领域先后发表了多篇学术论文,至今仍然是顶级数据科学会议 KDD 的委员会委员,同时还兼任很多杂志和会议的审稿人。除了理论研究,我还将机器学习的方法应用到实际的产品中,从大公司到小的创业公司都有,比如 IBM Research,Linkedin,eBay Research,Sumo Logic 等等。

还曾任 General Assembly 的首席数据科学讲师,在硅谷教授数据科学的相关课程。中间也曾有过一段创业经历,从 BD 到 Marketing 甚至客服都要自己去做。每一段的经历都让我能跳出自己的 comfort zone,学习到很多不同的东西,这些对于我做数据产品以及理解其相关需求,都非常有益,毕竟我们的目标是做用户喜欢的产品,给用户带来价值。

InfoQ:同时,作为 LinkedIn Intern Hackday 裁判,让你看到了国外学生的哪些优势是让你有所感触的?

赵宇辰:骇客大赛 (hackday) 由 LinkedIn 公司主办,所有在硅谷地区的学生和实习生都可以参加。比赛的条件可以说是既宽松又“魔鬼”。宽松是指所有人,只要是在硅谷地区的都可以参加,主办方提供丰盛的美食和饮料,比赛的内容不限,你想做什么就做什么;“魔鬼”是指只有 24 小时去实现你的想法,那么意味着这 24 小时就不停地工作,没有休息时间。这个主办思想从活动的标语就很清晰地体现出来:eat,hack,but no sleep。

我有幸和 Linkedin 的工程 SVP Kevin Scott,Rapportive 的 CEO 兼 Tindie 的工程副总裁 Julia Grace 一起作为比赛的裁判。在经过 24 小时的“hack”后,一共有 50 多个团队展示出了作品。看了所有的 demo 后,有三点让我印象非常深刻:

  • 年轻:几乎所有的参赛者都是本科在读,甚至是高中生。然而从他们的作品和展示里,不乏听见创业、用户体验、商业以及各种最新的技术词汇。美国的创新和计算机教育确实是从小抓起的。
  • 高效 & 高质量:虽然参赛者很年轻,但是作品的质量却不低。很多作品都有自己的特色,甚至都可以作为一个小的单独创业项目。虽然时间有限,但从实现的角度,小到后台架构和页面细节都一丝不苟。
  • 创新:展示的 demo 五花八门,涵盖了各种最新最 cool 的技术和想法,从机器学习、图像识别到各种 IoT 设备,想法之多、思维之广确实让人大开眼界。

通过短短的 24 小时的 hack 行为,我由衷地佩服参赛者们的聪明才智、创造力、动手能力、想象力。透过他们,我明白了为什么硅谷能数十年一直是全世界传奇式的创新发源地,从他们身上,仿佛能看到硅谷的未来。

InfoQ:介绍一下您目前在 AppDynamics 作为首席数据科学家的主要工作职责吧!

赵宇辰:因为是专注于美国和欧洲市场的 2B 软件公司,很多人可能不知道,我来简单介绍一下。

AppDynamics 是一家主攻 APM 企业软件的独角兽公司。在 APM 领域,AppDynamics 近几年在 Gartner 的魔力象限 (Magic Quadrant) 上一直是 Top 3 的厂商。在今年 Gartner 的报告中,AppDynamics 在所有的 APM use cases 里排名都是第一。

我在 AppDynamics 主要负责数据科学和机器学习的产品战略和研发工作,大致分为两块。

  • 第一块是战略研究。因为机器学习对于企业软件相对来说是比较新的方向。所以在产品研发之前,首先要从战略的角度研究接下来的 5 年内,哪些是我们需要投资的领域。这就需要和销售、市场以及产品等部门进行布道和沟通,也就是说把我们想做的数据产品首先“销售”给公司的内部团队和决策层。
  • 第二块是具体的产品架构设计和研发工作,内容涉及到阅读相关的论文,机器学习算法的研究、工程实现、实验和系统整合等。

InfoQ:目前,机器学习技术在 AppDynamics 的应用场景有哪些?

赵宇辰:目前为止,我们已经将机器学习和数据挖掘的技术应用在不同的数据类型上,包括日志、Business Transaction (BT),Real User Monitoring (RUM) 等等。简单来说就是如何更智能、更迅速、更准确的帮用户找到所需要的信息。

举个例子,突然某天一部分用户反映不能用 iOS 的设备登录了,可是运维人员发现所有测试正常,用浏览器和 Android 客户端的用户都没有问题,甚至很多用 iOS 的用户也可以正常登录。我们如何从数百上千台服务器中的海量信息里发现具体的根源?这是一个很常见的例子,因为日常运维最常见的并不是整个系统都不工作了(complete failure),而是一小部分服务不能正常工作(partial failure)。到底这种 partial failure 在哪里,找到具体的根源通常需要运营团队很多个小时,甚至很多天才能手工排查到。现在,我们利用机器学习的技术,成功可以将这个 MTTI (Mean time to investigate)降低到几分钟甚至几秒钟。运维人员只需点击一下鼠标,系统自动分析出我们认为最有可能出错的根源。

InfoQ:在数据挖掘和机器学习技术的研究上,您踩过哪些坑又是如可解决的?有什么心得体会?

赵宇辰:从社交网络的机器学习到电商再到运维 APM 的数据挖掘,中间踩过的坑太多了。把任何一个机器学习技术应用到具体的产品中,上线到 production,都是非常不容易的,可以说这是一个非常复杂的系统工程。其中可能只有不到 5% 的时间是在具体的算法研究上,其余的很大一部分精力需要放在如何让系统更稳定、更 scalable 上,同时还要考虑到和系统其它部分的集成以及用户体验的设计上。

这其中的心得体会是有很多的,各个部分如何取舍,这些足以再做一个专题,希望可以找个机会和大家分享。

InfoQ:能不能结合实践案例展现一下 AppDynamics 的各种机器学习评分算法的有效性?

赵宇辰:最近大家都知道 Google 的 AlphaGo 下围棋战胜了李世石,这成了一个很经典的机器学习案例。

在 APM 领域,我再举个例子。日志信息对于 APM 和运维是非常重要的,但是日志同时又是非结构化的文本信息,这就需要用户手动的写正则表达式 (regular expression)去提取有用的信息。但通常写复杂的正则表达式是一个既费事又费力的工作。

我们最近的一个工作就是让用户用鼠标选取他们想提取的信息,系统智能的生成最有效的正则表达式,这样即使用户从来没有学过正则表达式也可以顺利提取日志中的有用信息。虽然这和围棋的应用场景不同,但一样是利用机器学习的技术,同时这个任务并不简单。我们每次的搜索空间在 10^26 这个量级,这是什么概念呢,对于任何一个用户请求,如果把系统生成的每个合法的正则表达式放在一个米尺上,然后将这些米尺连起来,那么它们将可以横跨目前科学可以观测到的整个宇宙,这仅仅是对于用户的一个请求。对于千变万化的日志来说,这个数量级是非常非常巨大的。目前我们可以做到在 100ms 内返回最优最高效的正则表达式,这样大大提高了系统效率,同时降低了使用日志工具的门槛。据我所知,我们此项技术在所有同类产品中是最领先的。

InfoQ:为什么说 App 的复杂性越高,对 App 的管理、诊断和根源分析就越具有挑战?

赵宇辰:在 2010 年以前,传统的软件系统一般都不复杂,很多都是单机版,或者只是简单的几台机器组成的系统。现在随着 Microservice 的大行其道和逐渐增多的应用场景,App 复杂性越来越高。针对 App 的管理、诊断和根源分析,从数据上来说,我们就有各种不同的数据类型,比如:

  • Metric:例如 CPU 使用率,Java GC 内存,网络延迟,每分钟销售总量,活跃用户量等等。
  • Category:例如 IP,用户所在国家和地区,付款方式等等。
  • Hierarchy:一个大型的商业系统里有不同的 modules,分布在不同的 tiers 上面,同时每个 tier 里有数量不一的服务器,这就形成了一个分等级的树状结构。
  • Graph:系统的每一部分都和其他部分有交互,这自然就形成了一个有向图 (directed graph)。
  • Unstructured:系统会生成大量的非结构化信息,比如日志,stacktraces,错误信息等等。

每个数据类型都有自己的分析方法和模型,如何将这些方法和机器学习算法有效的结合到一起,成为一个统一的整体,同时给用户提供一个及其简单好用的产品,这是非常有挑战性的。

InfoQ:在通过构建强大的端到端机器学习系统来收集应用数据,并对数据分析研究和数据过滤上,您有什么独到的见解吗?

赵宇辰:正如之前所说的,APM 涉及到的数据类型非常复杂,同时数据量很大。一个用户在手机端简单的点击,很可能已经在后端服务集群中产生了大量半结构化的数据信息。对于一个 end to end 的数据分析系统,我认为至少要考虑到以下几点:

  • Scalability:系统是否可以扩展,能处理多大的数据量。如果一定要有取舍,哪些地方可以通过采样、聚合和压缩的方法来提高系统的吞吐能力。在数据量突然增多的情况下,能否快速的扩展现有的系统等等。
  • Usability:在设计一个机器学习系统的时候,首先考虑的问题并不是技术,而是应该先想想具体我们需要解决什么问题,所设计的系统是否能给用户带来价值,能否尽量简化用户的操作和工作量。确定了这些之后,再考虑用哪些方法和技术来实现这个系统。
  • Flexibility:这里的灵活性是多方面的。从算法上来说,如何设计一个机器学习算法,同样的算法是否可以用在别的地方;未来系统如果扩展和有新的数据类型加入的情况下,当前的设计是否也可以随之拓展。从系统架构上来说,所设计的机器学习系统是否方便维护,在部署和升级上有没有特殊的要求;是否要运行在云上,还是要以 on-premise 的方式部署,亦或是两者兼有等等。

InfoQ:互联网巨头目前都声称在研究机器学习,您认为 AppDynamics 的机器学习跟其他公司相比有什么独到的地方?

赵宇辰:面对消费者的公司在应用机器学习上走在了前列。比如我之前工作过的 eBay 和 Linkedin 都早早的将数据挖掘和机器学习应用到了产品中。相对来说,面对企业用户的公司在这方面略显滞后。随着数据量的越来越大,传统粗犷的分析方式已经逐渐不再使用,现在看到越来越多 2B 端的企业和创业公司对机器学习加大了投入,甚至很多已经将机器学习作为了企业的核心竞争力。

我一直认为,没有普世的机器学习方法。对于不同的应用场景,也许最本质的算法类似,但是要对不同的应用做优化和个性化,比如 feature engineering,算法的 objective function 调整,对于运行时间的要求,分布式的处理,在云上和 on-premise 的部署等等。

众所周知,在 APM 领域,数据类型非常复杂,同时它们又相互关联,在机器学习上我们这几年的投入和深耕筑起了有效的护城河,同时体现了产品的差异化优势。

InfoQ:AppDynamics 正在利用数据和机器学习来提供更精准、更有效的下一代 APM 解决方案,这其中会有哪些难点?希望达到怎样的预期效果?

赵宇辰:虽然 APM 领域有着数据量大,数据类型多样,应用场景复杂的特点,但是我们的目标是希望我们的产品尽量的简单、易用,一句话就是:打造 DevOps 领域的智能大脑(The Brain)。一般来说,DevOps 需要对系统有很深入的理解才能有效的利用现有的 APM 工具管理 App 的性能,同时这些工具的学习曲线很陡峭。我们努力的方向是不让运维人员大海捞针的从海量数据中寻找所需要的信息,而是尽可能智能的将他们最需要的信息呈现出来。

最理想的情况是运维人员不需要理解各种类型的数据以及复杂的应用场景,我们的 The Brain 智能大脑能从复杂的数据中快速的自动找出用户最需要的信息,解决他们的实际问题。

InfoQ:您个人对应用性能管理有怎样深刻的理解?您觉得参加 APMCon2016 垂直领域大会的意义是什么?

赵宇辰:随着越来越多的应用放到了互联网和移动端,对于软件系统性能的管理和监测已经成为了每个软件公司不可忽视的难题。很高兴得知有了 APMCon 这样在 APM 垂直领域的大会,这样让我们这些在 APM 领域的从业者有了很好的交流和沟通的机会,因为很多具体的心得体会和技术应用是 APM 这个领域所独有的。而且,我知道听云是国内 APM 厂商中唯一一家上榜 Gartner 魔力象限的,这次来国内参加 APMCon 也是期待能和大家进行更多的分享交流。

InfoQ:感谢赵宇辰接受我们的采访!

关于受访者

赵宇辰博士,本科就读于清华大学,之后在美国伊利诺伊大学芝加哥分校获得博士学位!自 2014 年担任 AppDynamics 首席数据科学家,主导和负责下一代大规模数据挖掘、机器学习、异常检测和分析的 APM 产品构架和研发工作。他自 2013 年担任顶级数据科学会议 KDD 的委员会委员,还曾任 General Assembly 的首席数据科学讲师,同时在 Sumo Logic,Linkedin,eBay,IBM Research 有相关的工作经历。并且还在 KDD,ICDM,ICDE,CIKM 等国际顶级会议发表论文十余篇,在 APM 和 log 领域拥有多项国际专利。

2016-07-20 03:024332
用户头像

发布了 130 篇内容, 共 51.0 次阅读, 收获喜欢 171 次。

关注

评论

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

与前端训练营的日子 --Week13

SamGo

学习

Why me, why now Jan 25, 2021

王泰

28天写作

当公元成了可以考古的年代「幻想短篇 17/28」

道伟

28天写作

大数据场景下Volcano高效调度能力实践

华为云开发者联盟

大数据 spark Kubernetes Volcano application

企业项目迁移go-zero全攻略(一)

万俊峰Kevin

微服务 microservice Go 语言

区块链钱包APP系统开发|区块链钱包软件开发

系统开发

[编程参考-连载] Snowflake 算法原理与对应的 Python 实现

穿甲兵

Python 算法

鸿蒙开发者beta!Github标星25K+超火的Android实战项目,赶紧收藏!

欢喜学安卓

android 程序员 面试 移动开发

产品训练营第二章作业(一)

Arnold

架构师训练营 - 第四周作业

Mark

管理的亲和力是怎么练成的?

一笑

管理 沟通与管理 28天写作

数据库性能调优之始: analyze统计信息

华为云开发者联盟

数据库 sql GaussDB 语义

Hive操作异常总结

小马哥

大数据 hive 数据仓库

文章类网站前端日期的显示该如何选择时区?

IT蜗壳-Tango

七日更 服务器时区

基于KubeEdge和Kuiper的边缘流式数据处理实践

华为云开发者联盟

spark 边缘计算 kuberedge kuiper 边缘流式数据

作业2

瑾瑾呀

PolarDB-X 并行计算框架

PolarDB-X

数据库 sql 大数据

架构师训练营第4周学习总结



在 ArrayList 使用冒泡法

sinsy

ArrayList 冒泡法

第二章作业(一)

LouisN

Redis为什么变慢了?一文讲透如何排查Redis性能问题 | 万字长文

Kaito

redis 性能优化 后端

MySQL 5.6.35 索引优化导致的死锁案例解析

vivo互联网技术

MySQL 数据库 死锁

区块链数字钱包APP系统开发|区块链数字钱包软件开发

系统开发

第九周学习总结

Binary

生活,在哪里都一样

熊斌

个人成长 28天写作

年会游戏:猜数字(前端特效)

德育处主任

CSS html 大前端 js 28天写作

循环?还是递归?

xcbeyond

Java 算法 递归 28天写作

android开发三大框架!国内一线互联网公司面试题汇总,终局之战

欢喜学安卓

android 程序员 面试 移动开发

聊聊 Git 的三种传输协议及实现

Zoker

git 架构 DevOps

碎碎念之「技术文档写作风格」

Justin

碎碎念 文档 28天写作 写作技巧

使用 external version 进行 Elasticsearch 并发控制

escray

elastic 七日更 28天写作 死磕Elasticsearch 60天通过Elastic认证考试

AppDynamics赵宇辰:硅谷APM独角兽,打造DevOps领域的智能大脑_语言 & 开发_薛梁Lucien_InfoQ精选文章