2016年9月22日-23日,由CSDN重磅打造的大数据核心技术与实战峰会、互联网应用架构实战峰会将在杭州举行。
SDCC 2016大数据技术&架构实战峰会(杭州站)是由CSDN主办的顶级技术盛会,大会目的是促进更加深入的业内同行技术交流,传播先进技术理念。SDCC 2016·杭州站为期两天,主要面向对大数据/架构技术感兴趣的中高端技术人员,将秉承干货实料(案例)的内容原则,聚焦技术实践,结合业务,邀请业内顶尖的架构师和技术专家,共同探讨海量数据下的应用监控系统建设、异常检测的算法和实现、大数据基础架构实践、敏捷型数据平台的构建及应用、音频分析的机器学习算法应用,以及高可用/高并发/高性能系统架构设计、电商架构、分布式架构/微服务等话题与技术。
大会前夕,游族网络运维开发经理姚仁捷接受CSDN记者专访。发现问题,解决问题,是运维永恒不变的两个主题。而如何发现问题,是其中的难点和重点。运维收集的数据可能数以百万计,如何从其中快速、准确的发现问题(即异常检测)?这是本次演讲要讲的内容。
游族网络运维开发经理 姚仁捷
姚仁捷,游族网络运维开发经理,负责游族运维数据方面的工作。希望能结合大数据和机器学习,帮助数据化运维体系的建设。之前曾就职于唯品会,PPTV和eBay,主要负责实时计算和监控系统相关。目前更多关注机器学习和异常检测。毕业于华中科技大学,获得数学学位和计算机学位,在业余时间,爱好健身,网球,也会玩玩吉他。
以下为采访实录
CSDN:请简单介绍下自己以及目前的工作重点。
姚仁捷:我现在在游族网络(SZ:002174)担任运维开发经理,主要负责数据化运维的工作,主要工作在于将大数据技术落地,与传统的运维技术结合,将自动化运维转向数据化运维。目前的工作重点在于海量日志的实时计算,Metrics存储以及监控数据的机器学习算法;除了这些计算和基础架构方面的工作,还有一块是数据的可视化开发,让工程师能够更快、更便捷的发现数据的价值。“Use Data to Speak”是我推崇的理念。
CSDN:时下热门的异常检测方法有哪些?其对应的适用场景是怎样的?难点以及解决方法有哪些?请简要谈谈。
姚仁捷:异常检测其实就是我们工作每天都要遇到的监控报警中如何发现问题的一个环节。我们最常见的异常检测的方法就是阈值法。阈值法非常简单,它根据监控数据的输入,进行一些逻辑判断,然后输出True或者False。Zabbix应该是大家目前最常用的监控系统,它本身提供了非常完善的阈值法监控,我举个简单的例子,我们监控了cpu load,然后可以定义一个阈值的规则,“当load大于5”的时就报警。或者我们也可以定义一些更复杂的异常检测规则,比如“当load大于5,并且磁盘空间小于100G”的时候报警。这个规则包含了两条阈值规则。Zabbix提供了非常丰富的阈值规则配置。阈值法的优点是易于理解,易于配置。但它的缺点也很明显,对于数据的波动,阈值法会有非常多的误报,阈值的设定也会耗费工程师大量的精力。
除了传统的阈值法,还有阈值法的改进,叫做“脉搏法”,这个最早是由Netflix提出的。Netflix将它们的“点击Play按钮的次数”作为监控数据的对比值。这个针对一些业务数据是非常有效的。比如我们有一些业务数据,比如用户充值的次数,用户登陆数,这些业务数据都会和“点击Play按钮的次数”的关系很强。从理论来说,用户登陆数和“Play次数”的差值应该维持在一个比较稳定的值。就好像Netflix把“Play次数”作为业务数据的“脉搏”。“脉搏法”的优点在于不需要再配置额外的阈值,缺点是它并没有解决“阈值法”对于波动数据的无能为力。
目前我们在研究的是基于机器学习来进行异常检测。机器学习是当前大数据非常流行的趋势,我希望将机器学习和异常检测相结合,解决阈值法碰到的问题。我们将一周的数据进行训练,得到误差数据的一个概率分布模型。当有新数据进入系统的时候,将误差和误差模型进行比对和计算,从而得到是否是异常的信息。
具体的内容和进展,比较复杂和繁多,我会在大会的分享中和大家分享,到时候大家可以一起沟通。
CSDN:目前,机器学习在大数据领域的地位是怎样的?机器学习如何和运维相结合?您如何看待它未来的发展?
姚仁捷:大数据前两年在国内的发展,主要在于Hadoop的技术革新以及实时计算的引入,简单来说,就是计算速度的大幅度提升。从Alpha Go和李世石的大战中,机器学习展现出令人着迷的巨大力量。大数据的发展已经从传统的数据收集,数据计算转向了从海量数据中挖掘出数据价值的时代。如何挖掘数据的价值,是数据科学家的首要任务。机器学习最重要的一点,它可以使得计算机也可以像人类一样思考。
运维,一向是技术领域比较传统、标准比较完善的领域。机器学习能够为传统运维带来巨大的变革,异常检测正是机器学习切入运维的一个切入点,由点及面,机器学习在运维的容量规划,事件关联都会有很大的舞台。
CSDN:您是如何安排自己的技术学习、研发团队管理、编程、生活等时间的?
姚仁捷:驱动我学习新技术的不是我工作的需要,而是我本身对于技术的热爱。如果只是把技术当做吃饭赚钱的工具的话,是很难保持一颗学习的心的。只有把技术当做自己的兴趣爱好,才真的能做到stay hungry,stay foolish。在工作中,我一直把团队的成员当做自己的好朋友,在大家碰到技术问题时候,尽自己所能提供帮助。并且着重注意培养团队成员解决问题的思路,而不是仅仅告知解决问题的方法,授之以鱼不如授之以渔。因为互联网技术的发展是非常快的,一个人不可能掌握所有的技术,而解决问题的思路是通用的,即“sense”,我觉得,培养一个人的“sense”比解决问题更加重要。
我们团队有个习惯,每天中午是我们的健身时间。作为IT人,健康的身体是非常重要的,健身是我们的团队文化之一。健身也使得团队的关系更加紧密。在生活中,我还喜欢网球和吉他,目前也在学习日语。我对于团队成员强调的是,在上班时间认真工作,按时下班。在下班时间找自己感兴趣的事情去做,这才是良性循环。常态化的加班不但不会提高工作的产出,更加会限制自身的发展和成长。我开玩笑说,下班越晚的人,KPI考评就越低。
CSDN:在本次SDCC 2016(杭州)大数据峰会上,您分享的话题是?
姚仁捷:在这次SDCC 2016(杭州)大数据峰会上,我分享的话题是“Machine Learning in Anomaly Detection”,主要会和大家分享异常检测的各种方法的优缺点,以及机器学习能够给我们带来的帮助。其中,会根据我们工作中的真实数据,和大家分享我们机器学习的进展,问题,解决的思路和计划。
温馨提示:在9月4日24点前购票并完成付款将享受六折特惠,5人以上团购更享有折上折,欲购从速。更多详细内容,请持续关注SDCC大会官网。