AppDynamics赵宇辰
赵宇辰:相对于纯数据研究,我的经历可能相对丰富一些。本科清华毕业,在美国读博期间,我选择数据挖掘和机器学习作为我的主要研究方向,在该领域先后发表了多篇学术论文,至今仍然是顶级数据科学会议KDD的委员会委员,同时还兼任很多杂志和会议的审稿人。除了理论研究,我还将机器学习的方法应用到实际的产品中,从大公司到小的创业公司都有,比如IBM research,Linkedin,eBay research,Sumo Logic等等。
还曾任General Assembly的首席数据科学讲师,在硅谷教授数据科学的相关课程。中间也曾有过一段创业经历,从BD到Marketing甚至客服都要自己去做。每一段的经历都让我能跳出自己的comfort zone,学习到很多不同的东西,这些对于我做数据产品以及理解其相关需求,都非常有益,毕竟我们的目标是做用户喜欢的产品,给用户带来价值。
赵宇辰:骇客大赛(hackday)由公司linkedin主办,所有在硅谷地区的学生和实习生都可以参加。比赛的条件可以说是既宽松又“魔鬼”。宽松是指所有人,只要是在硅谷地区都可以参加,主办方提供丰盛的美食和饮料,比赛的内容不限,你想做什么就做什么;“魔鬼”是指只有24小时去实现你的想法,那么意味着这24小时就不停地工作,没有休息时间。这个主办思想从活动的标语就很清晰地体现出来:eat,hack,but no sleep。
我有幸和Linkedin的工程SVP Kevin Scott,Rapportive的CEO和Tindie的工程副总裁Julia Grace一起作为比赛的裁判。在经过24小时的“hack”后,一共有50多个团队展示出了作品。看了所有的demo后,有三点让我印象非常深刻:
虽然只是短短的24小时,我由衷地佩服参赛者们的聪明才智、创造力、动手能力、想象力,通过他们,我明白了为什么硅谷能数十年一直是全世界传奇式的创新发源地,通过他们,我仿佛也看到了硅谷的未来。
赵宇辰:因为是专注于美国和欧洲市场的2B软件公司,很多人可能不知道,我简单介绍一下。AppDynamics是一家主攻APM企业软件的独角兽公司。在APM领域,AppDynamics近几年在Gartner的魔力象限(Magic Quadrant)上一直是Top 3的厂商。在今年Gartner的报告中,AppDynamics在所有的APM use cases里排名都是第一。
我在AppDynamics主要负责数据科学和机器学习的产品战略和研发工作,大致分为两块。第一块是战略研究。因为机器学习对于企业软件相对来说是比较新的方向,所以在产品研发之前首先要从战略的角度研究哪些是下面五年我们需要投资的领域,这需要和销售、市场以及产品等部门进行布道和沟通,也就是说把我们想做的数据产品首先“销售”给公司的内部团队和决策层。第二块是具体的产品架构的设计和研发工作,具体要涉及到阅读相关的论文,机器学习算法的研究、工程实现、实验和系统整合等。
赵宇辰:目前我们已经将机器学习和数据挖掘的技术应用在不同的数据类型上,包括日志、Business Transaction (BT), Real User Monitoring (RUM)等等。简单来说就是如何更智能、更迅速、更准确的帮用户找到所需要的信息。
举个例子,突然某天一部分用户反映不能用iOS的设备登录了,可是运维人员发现所有测试正常,用浏览器和Android客户端的用户都没有问题,甚至很多用iOS的用户也可以正常登录。我们如何从数百上千台服务器中的海量信息里发现具体的根源?这是一个很常见的例子,因为日常运维最常见的并不是整个系统都不工作了(complete failure),而是一小部分服务不能正常工作(partial failure)。到底这种partial failure在哪里,找到具体的根源通常需要运营团队很多个小时,甚至很多天才能手工排查到。现在,我们利用机器学习的技术,成功可以将这个MTTI (Mean time to investigate)降低到几分钟甚至几秒钟。运维人员只需点击一下鼠标,系统自动分析出我们认为最有可能出错的根源。
赵宇辰:从社交网络的机器学习到电商再到运维APM的数据挖掘,中间踩过的坑太多了。把任何一个机器学习技术应用到具体的产品中,上线到production,都是非常不容易的,可以说这是一个非常复杂的系统工程。其中可能只有不到5%的时间是在具体的算法研究上,其余的很大一部分精力需要放在如何让系统更稳定、更scalable上,同时还要考虑到和系统其它部分的集成以及用户体验。其中的内容很多,各个部分如何取舍,这些足以再做一个专题,希望可以找个机会和大家分享。
赵宇辰:最近大家都知道Google的AlphaGo下围棋战胜了李世石,这成为了一个很经典的机器学习案例。在APM领域,我再举个例子。日志信息对于APM和运维是非常重要的,但是日志同时又是非结构化的文本信息,这就需要用户手动的写正则表达式(regular expression)去提取有用的信息。但通常写复杂的正则表达式是一个费事又费力的工作。
我们最近的一个工作就是让用户用鼠标选取他们想提取的信息,系统智能的生成最有效的正则表达式,这样即使用户从来没有学过正则表达式也可以顺利提取日志中的有用信息。虽然这和围棋的应用场景不同,但一样是利用机器学习的技术,同时这个任务并不简单。我们每次的搜索空间在10^26这个量级,这是什么概念呢,对于任何一个用户请求,如果把系统生成的每个合法的正则表达式放在一个米尺上,然后将这些米尺连起来,那么它们将可以横跨目前科学可以观测的整个宇宙,这还仅仅是对于用户的一个请求。对于千变万化的日志来说,这个数量级是非常非常巨大的。目前我们可以做到在100ms内返回最优最高效的正则表达式,这样大大提高了系统效率,同时降低了使用日志工具的门槛,据我所知,我们此项技术在所有同类产品中是最领先的。
赵宇辰:在2010年以前,传统的软件系统一般都不复杂,很多都是单机版,或者只是简单的几台机器组成的系统。现在随着micro-service的大行其道和逐渐增多的应用场景,App复杂性越来越高。针对App的管理、诊断和根源分析来讲,从数据上来说,我们就有各种不同的数据类型,比如:
每个数据类型都有自己的分析方法和模型,如何将这些方法和机器学习算法有效的结合到一起,成为一个统一的整体,同时给用户提供一个及其简单好用的产品,是非常有挑战性的。
赵宇辰:正如之前所说的,APM涉及到的数据类型非常复杂,同时数据量很大。一个用户在手机端简单的点击,很可能已经在后端服务集群中产生了大量半结构化的数据信息。对于一个end to end的数据分析系统,我认为至少要考虑到以下几点:
赵宇辰:面对消费者的公司在应用机器学习上走在了前列,比如我之前工作过的eBay和Linkedin都早早的将数据挖掘和机器学习应用到了产品中。相对来说,面对企业用户的公司在这方面略显滞后。随着数据量的越来越大,传统粗犷的分析方式已经逐渐不再使用,现在看到原来越多2B端的企业和创业公司对机器学习加大了投入,甚至很多已经将机器学习作为了企业的核心竞争力。
我一直认为,没有普世的机器学习方法。对于不同应用场景,也许最本质的算法类似,但是要对不同的应用做优化和个性化,比如feature engineering,算法的objective function调整,对于运行时间的要求,分布式的处理,在云上和on-premise的部署等等等等。正如之前所说的,在APM领域,数据类型非常复杂,同时它们又相互关联,在机器学习上我们这几年的投入和深耕筑起了有效的护城河,同时体现了产品的差异化优势。
赵宇辰:虽然APM领域有着数据量大,数据类型多样,应用场景复杂的特点,但是我们的目标是希望我们的产品尽量的简单、易用,一句话就是:打造devops领域的智能大脑(The Brain)。一般来说,devops需要对系统有很深入的理解才能有效的利用现有的APM工具管理app的性能,同时这些工具的学习曲线很陡峭。我们努力的方向是不让运维人员大海捞针的从海量数据中寻找所需要的信息,而是尽可能智能的将他们最需要的信息呈现出来。最理想的情况是运维人员不需要理解各种类型的数据以及复杂的应用场景,我们的The Brain智能大脑能从复杂的数据中快速的自动找出用户最需要的信息,解决他们的实际问题。
赵宇辰:随着越来越多的应用放到了互联网和移动端,对于软件系统性能的管理和监测已经成为了每个软件公司不可忽视的难题。很高兴得知有了APMCon这样在APM垂直领域的大会,这样让我们这些在APM领域的从业者有了很好的交流和沟通的机会,因为很多具体的心得体会和技术应用是APM这个领域所独有的,期待在八月的APMCon和大家交流。
赵宇辰博士 ,本科就读于清华大学,之后在美国伊利诺伊大学芝加哥分校获得博士学位!自2014年担任AppDynamics首席数据科学家,主导和负责下一代大规模数据挖掘、机器学习、异常检测和分析的APM产品构架和研发工作。他自2013年担任顶级数据科学会议KDD的委员会委员,还曾任General Assembly的首席数据科学讲师,同时在Sumo Logic,Linkedin,eBay,IBM Research有相关的工作经历。并且还在KDD,ICDM,ICDE,CIKM等国际顶级会议发表论文十余篇,在APM和log领域拥有多项国际专利。