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

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

\\

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后,有三点让我印象非常深刻:

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

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

\
\\

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

\\
\

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

\\

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

\\

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

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

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

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

\
\\

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

\\
\

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

\\
  • Scalability:系统是否可以扩展,能处理多大的数据量。如果一定要有取舍,哪些地方可以通过采样、聚合和压缩的方法来提高系统的吞吐能力。在数据量突然增多的情况下,能否快速的扩展现有的系统等等。\\t
  • Usability:在设计一个机器学习系统的时候,首先考虑的问题并不是技术,而是应该先想想具体我们需要解决什么问题,所设计的系统是否能给用户带来价值,能否尽量简化用户的操作和工作量。确定了这些之后,再考虑用哪些方法和技术来实现这个系统。\\t
  • 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:感谢赵宇辰接受我们的采访!

\\

关于受访者

\\

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/260999.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

江苏有保障的计算机应用技术,2022年江苏单招计算机应用技术专业公办学校名单...

2021年高职单招升学一对一咨询蒲善婷:18983252108(微信)很多考生都存在一个疑问,到底该选择什么样的单招学校和专业?其实啊,我们在选择时首先要了解学校的办学情况和招生专业,看看有没有是不是符合自己的选择条件,是否…

mybatis一对多查询

18 <!-- 19 方式一&#xff1a;嵌套结果&#xff1a;使用嵌套结果映射来处理重复的联合结果的子集 20 封装联表查询的数据(去除重复的数据) 21 select * from class c, teacher t where c.teacher_idt.t_id and c.c_id1 22 --> 23 …

如何选购集成吊顶

吊顶对比-选购-经验篇:集成吊顶顶行业作为一个新兴的行业类别&#xff0c;同时也是一个高速发展的行业&#xff0c;使得集成吊顶市场牌混乱不堪&#xff0c;为大家介绍 正确的选购之法。以下内容由买购网整理&#xff0c;提供给您参考。现在市场上扣板已经有很多品种了&#xf…

php - preg_match

任务&#xff1a;匹配一个函数名或者变量名&#xff0c;如果碰到alpha&#xff0c;numeric&#xff0c;_以外的全部不允许通过。 实验1&#xff1a; <?php //第一个字符不符合就直接退出正则匹配 $str %abcscript%d; var_dump(preg_match(/^(\w*)$/, $str, $matches)); va…

wp网站链接不带html,解决WordPress网站带与不带WWW网址跳转问题

我们在用wordpress搭建网站的时候是不是有些时候发现在输入WWW与不带WWW的地址都可以打开&#xff0c;以前我在配置的时候直接用WWW或者不带WWW只需要在后台设置两个统一的地址就可以。这几天在遇到一个网站发现并不是这样的&#xff0c;即便都设置了WWW的域名&#xff0c;然后…

Android环境搭建遭遇Unsupported major.minor version 52.0

为什么80%的码农都做不了架构师&#xff1f;>>> 首先&#xff0c;个人在windows 10下配置Android的开发环境。由于之前在开发Java web,所以安装了eclipse&#xff0c;MyEclipse,jdk 1.7 等。由于希望开发 android 5.1&#xff0c;早在之前也有开发过Android&#x…

[转] 实战 SSH 端口转发

http://www.cnblogs.com/napoleon_liu/articles/2020759.html转载于:https://www.cnblogs.com/GenghisKhan/archive/2012/02/09/2343468.html

标准用户如何打开计算机管理,WIN7标准账户怎样开启Administrator账户

Win7 标准用户安装软件时需要管理员权限&#xff0c;那么WIN7标准账户怎样开启Administrator账户呢?下文学习啦小编就分享了WIN7标准账户开启Administrator账户的方法&#xff0c;希望对大家有所帮助。WIN7标准账户开启Administrator账户方法一、将标准用户升级为管理员账户。…

linux删除、读取文件原理

linux删除文件原理 LINUX的文件名是存在父目录的block里面&#xff0c;并指向这个文件额inode节点&#xff0c;这个文件的inode节点再标记指向存放这个文件的block的数据块。我们删除一个文件&#xff0c;实际上并不是清楚inode节点和block的数据。只是在这个文件的父目录里面的…

delphi 窗体的释放

关于窗体的释放:Close&#xff08;&#xff09;方法是将窗体隐藏&#xff0c;即form.hide; 释放窗体或是控件的标准用法是Form.Free&#xff0c;其实Free方法只是调用了Destroy&#xff08;&#xff09;方法&#xff0c;在窗体不为nil时进行资源的释放&#xff0c;但并不将窗体…

Java数字、货币格式化

广州疯狂软件学院拥有三大课程体系包括&#xff1a;java课程&#xff0c;android课程&#xff0c;ios课程&#xff0c;本月基础强化营(可先就业后付款)火热报名中&#xff0c;欢迎有志之士电话或者咨询。 package com.tq365.util; import java.text.NumberFormat; import java.…

您没有足够的全新为该计算机所有用户安装,我用的是admin管理员身份可安装软件弹出你没有足够的权限为该计算机所有用户完成此安装.请以管理员的身份登...

匿名用户1级2012-05-13 回答估计你的是WIN7的系统。这个很正常的&#xff0c;你是用管理员账号登陆的&#xff0c;但是没有取得完全管理权限。WIN7拥有管理员权限的使用方法&#xff1a;1.右键单击“计算机”&#xff0c;进入“管理”找到“用户和组”2.找到administrators&…

eclipse 3.7安装扩展心得

最近因为突然对android发生兴趣了&#xff0c;所以就安装了eclipse来进行android开发学习。在安装过程中&#xff0c;突然想顺便把php的扩展也安装好&#xff0c;以方便以后使用&#xff0c;百度了很多下&#xff0c;很失败&#xff0c;网络上的文章要不是千篇一律的错误&#…

【心得】Ctrl+Z、\n、\0、eof的区别和用法

从scanf谈起&#xff1a; 一&#xff1a;scanf的返回值&#xff1a;读入的域的个数 int scanf( const char *format [, argument]... ); int _scanf_l( const char *format, locale_t locale [, argument]... ); int wscanf( const wchar_t *format [, argument]... ); int _ws…

MVC-05 Model(1)

在开发应用程序的过程中&#xff0c;经常需要处理许多大大小小的数据&#xff0c;例如&#xff0c;SQL Server数据库存取、连接AD(Active Directory&#xff09;数据库进行验证、调用外部Web Service取得数据等。除了访问数据外&#xff0c;也经常需要对数据做成格式验证、逻辑…

计算机 数据库知识点,数据库知识点总结

实体&#xff0d;联系模型基本概念实体和属性实体是客观存在并且可以相互区分的任何事物属性是实体所代表事物具有的某种特性每个属性都有一定的取值范围&#xff0c;成为该属性的值域实体集和码实体集是具有相同属性的实体的集合实体的值是该实体诸属性值的列表实体集的值是该…

计算机网络课程思政教学设计,信息与网络工程学院成功举办第一届课程思政教学设计大赛...

为有效贯彻全国高校思想政治工作会议精神&#xff0c;强化课程思政建设&#xff0c;全面提高人才培养质量&#xff0c;根据《教务处关于举办第一届课程思政教学设计大赛的通知》要求&#xff0c;结合学院工作安排&#xff0c;7月18日&#xff0c;信息与网络工程学院在龙湖校区西…

Java 中参数传递是传值还是引用?

2019独角兽企业重金招聘Python工程师标准>>> 明确概念 值传递&#xff1a;指的是将变量的一个备份传过去&#xff0c;当该备份被修改后&#xff0c;不会影响原来变量的值&#xff1b; 引用传递&#xff1a;指的是将该变量的地址传过去&#xff0c;当值修改后&#x…

sencha touch 手势识别左右滑动

sencha touch 中添加手势识别非常简单&#xff0c;就是监听 dom 元素的 move 事件&#xff1a; 1. 为你的 view 注册 swipe 事件 // 为当前 view 注册手势滑动事件 Ext.get(myTouchView).on(swipe, onViewSwipe, this); 2. 判断滑动方向 // 手势滑动监听事件 onViewSwipe : fun…

比较两浮点数的方法

在工作中&#xff0c;我需要比较一系列数据&#xff0c;一方数据精度为两位小数,而另一方精度为三位小数。我需要将三位小数四舍五入成两为小数后进行比较。在操作的过程中&#xff0c;问题出现了&#xff0c;明明应该相等的数据却走了不等的分支。什么原因导致呢&#xff1f;一…