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(微信)很多考生都存在一个疑问,到底该选择什么样的单招学校和专业?其实啊,我们在选择时首先要了解学校的办学情况和招生专业,看看有没有是不是符合自己的选择条件,是否…

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

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

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

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

linux删除、读取文件原理

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

eclipse 3.7安装扩展心得

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

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

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

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

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

IIS8托管WCF服务

WCF服务程序本身不能运行,需要通过其他的宿主程序进行托管才能调用WCF服务功能,常见的宿主程序有IIS,WAS,Windows服务,当然在学习WCF技术的时候一般使用控制台应用程序或WinForm程序进行托管。本文将详细介绍如何使用I…

Cesium应用篇:3控件(3)SelectionIndicator InfoBox

假设这样一个场景,用户在Cesium球上加载了一个GeoJson文件(DataSource),里面是全美国所有州的Geometry信息(Entity),叠加到球面后,你自然会有一种冲动,点击某一个州&…

字符串入门

暴力 字典树总结:字典树的功能就是map字符串得到编码或者查询前缀关系套模板的时候注意t,s,-‘a’,[26],sz0的初始化还有一个问题,到底字典树开多少内存比较合适,反正至少是要开字符总长度*2hdu1251 http://acm.hdu.edu.cn/showpr…

C++ 的基础概念(3)——多态详解。

最近两次面试都问到了多态,我也不得不重视起来了,最近最大的收获就是:基础知识很重要,就算你很会写代码,但是面试官问你基础知识答不上来的话,也很难被人赏识和录用,所以还是要多补补基础概念&a…

.NET Forms身份验证

.NET表单身份验证 ASP.NET Forms 身份验证的简单实现&#xff1a;1&#xff09;在Web.config文件中配置应用程序使用 Forms 身份验证&#xff1b;2&#xff09;创建登陆页面&#xff0c;将用户身份验证票证添加到Cookie集合。1.配置文件中设置为Forms验证<authentication mo…

计算机对口升学可以报考的学校,对口升学可以报考的学校都在这里,赶快来收藏吧...

对口升学指对口高考&#xff0c;在平常又叫对口单招&#xff0c;对口升学&#xff0c;是从中等职业学校毕业生招生&#xff0c;强调中等职业学校毕业生对口升高职的专业技能考试&#xff0c;以专业技能成绩为主要录取依据的招生办法。报名条件具有正式学籍的中等职业学校毕业生…

Visual Studio 常用快捷键 (二)

想不到上一篇 【Visual Studio 常用快捷键】 受这么多人的欢迎。看来大家对Visual Studio的用法非常感兴趣。 接下来我准备写一个 “Visual Studio使用技巧 ” 一个系列的博客。 希望对大家有所帮助 本篇继续介绍几个常用的快捷键 阅读目录 按两下Tab键回退到光标的上一次位置…

企业邮箱收发信息服务器怎么设置,网易闪电邮企业邮箱收发设置教程(IMAP)...

网易闪电邮企业邮箱收发设置教程(IMAP)发表时间 2019-05-30人气 73(1)启动闪电邮后&#xff0c;点击“邮箱---新建邮箱账户”菜单&#xff0c;如下图&#xff1a;(2)输入“邮箱地址和密码”&#xff0c;点击下拉箭头继续设置&#xff0c;设置完成后点击下一步&#xff0c;如下图…

订餐系统之Excel批量导入

批量导入现在基本已经成为各类系统的标配了&#xff0c;当前&#xff0c;我们订餐系统也不例外&#xff0c;什么商家呀、商品呀、优惠码之类的&#xff0c;都少不了。毕竟嘛&#xff0c;对非开发人员来说&#xff0c;看到Excel肯定比看到很多管理系统还是要亲切很多的。这里&am…

oracle数据库之数据导入问题

2019独角兽企业重金招聘Python工程师标准>>> 在oracle数据库中建立好数据库以后&#xff0c;需要使用PLSQL进行用户创建&#xff0c;打开PLSQL&#xff0c;使用时需要使用最高权限进入PLSQL。如下图&#xff1a; 不需要使用用户名和密码&#xff0c;进入数据库操作。…

win服务器创建文件夹命令,Win10系统如利用命令提示符或WSL创建任意大小空白文件...

要测试网盘或服务器的上传&#xff0c;下载速度&#xff0c;需要指定大小的文件用来测试。创建的空白文件虽然没有任何内容&#xff0c;但是有大小&#xff0c;可以用来测试实际传输速度、覆盖已删除数据等用途。这篇文章是本站教大家在Win10中用命令或WSL创建任意大小空白文件…

计算UILabel带行间距的行高

为什么80%的码农都做不了架构师&#xff1f;>>> //设置lab的行间距 NSMutableAttributedString *attributedString [[NSMutableAttributedString alloc] initWithString:_doubletStr]; NSMutableParagraphStyle *paragraphStyle [[NSMutableParagraphStyle alloc…

关于farpoint公司的控件:SPREAD for .NET Windows Forms Ed.的一些简单方法.

View Code using System;using FarPoint.Win.Spread ;using System.Drawing;using System.Windows.Forms;namespace DFO010{/// <summary>/// Fpspread的相关函数.2006/4/12 制作:Chouka/// </summary> public class Classspd {public Classspd() { }/// <su…