商灏
清华大学计算机系副教授裴丹博士,曾在美国AT&T研究院学习和工作,AT&T研究院前身是贝尔实验室的一部分,大概有200个博士,有C++发明者、防火墙之父,裴教授在此发表了23项运维相关的专利。之后他回到清华继续从事运维科研。
裴教授所在的清华大学NetMan实验室,做的科研基本上都是跟运维相关。他认为,工业界、学术界应该在运维领域里面能够密切合作,各取所需。工业界有很多实际问题,有很多经验,也有实际的数据,学术界有时间,有算法,有学生,大家一起结合,这样就会产生很好的效果。
作为一位运维专家,裴教授曾在美国一个30万人的大公司里面主要通过大数据分析的方法做运维,是基于大数据技术管理网络和应用的性能,各种网络协议、IPTV、Video等等;回到清华做科研后,开设的也是网络性能管理/应用性能管理相关的课程,所有的科研都是跟运维相关的,在国内工业界的合作伙伴包括百度、阿里、腾讯、滴滴、搜狗、微众银行、华为 等。
智能运维现在已呈现一个很清晰的趋势:从基于规则的智能运维自动化逐渐转为基于机器学习。那么,智能运维在中国落地和发展所必须面对的挑战是什么?思路是什么?要解决哪些关键问题?
智能运维今后几年将有长足发展
裴丹说,智能运维是指在互联网中的大型分布式系统不断处理海量用户体验、性能、稳定性、安全事件,从而达到如下效果:
能够准确的复现并诊断过去发生的事件;
能够及时准确的检测、诊断当前正在发生的事件,并确定最适合的应对方案;
能够相对准确地规划和预测将来可能发生的事件。
由此可以看出,智能运维是人工智能(机器学习)、互联网运维领域知识、工程开发的交叉领域,三者缺一不可。
裴丹介绍:智能运维常用到的机器学习技术包括相关性分析、回归、关联分析、聚类、决策树、随机森林、支持向量机、隐氏马尔科夫、卷积神经网络、LSTM(Long Short Term Memory) 等等。这些算法在各种(开源或闭源的)工具集中都有现成的代码实现。智能运维的一个主要挑战是根据具体需求评判应用哪些机器学习算法,并适配或改造。
基于如上机器学习技术的具体智能运维技术包括:
1.面向历史事件的: 批量根因分析、瓶颈分析、热点分析等;
2.面向实时事件的: KPI异常检测、日志异常监测、事件关联关系挖掘、报警聚合、快速止损、故障根因分析、止损建议分析;
3.面向未来的:配置管理、容量预测、趋势预测、故障预测、热点预测等。
智能运维呈现怎样的的发展趋势?其与APM(应用性能监控),操作系统性能监控,数据库监控,网络监控等技术是怎样的关系?裴丹称,智能运维正在经历由“基于人为指定规则”到“基于机器学习”的转变,我们将来会看到越来越多的科研成果和实际系统采用机器学习算法做为基础工具。目前机器学习在一个领域取得广泛成功有几个要素:可用的开源机器学习系统、实际应用场景、大量数据、大量标注,而智能运维恰好具备这几类要素。所以,他觉得基于机器学习的智能运维在今后几年会取得长足的进展。他强调,这些基于机器学习的智能运维技术是APM(应用性能监控),操作系统性能监控,数据库监控,网络监控等技术的底层基础技术,因此智能运维的发展会大大促使上述领域的发展。
自2016年以来运维行业蓬勃发展,新技术大规模推广,如容器与微服务,配置管理工具,DevOps,SRE这样的概念和思想的落地,还有很多运维方向的公司都拿到了大手笔的融资,怎样看当前运维行业的发展?
裴丹说:首先,上述新概念和思想的落地是运维行业的大好事儿,这标志着运维行业已经逐渐脱离了人工和经验(dark arts),而转向一个真正基于技术的行业。容器和微服务的不断落地,会使得一些过去可行的技术(比如基于人工置顶规则的根因分析)遇到瓶颈,需要新的智能运维技术来适应容器和微服务等底层技术的更新。同时,不少运维方向的公司都拿到大额融资,把大公司的运维系统及技术提供给中小企业使用,这也是一件大好事。更多的企业在应用运维技术的生产实践中,会不断的产生新的挑战,相应地会有新的技术和解决方案提出来,会对整个智能运维行业的发展产生强烈的促进作用。
他认为,用发展的眼光看,未来SRE这一职位除了目前强调的互联网运维领域知识、工程开发的结合以外,也会逐渐强调机器学习技术的应用。
裴丹还向笔者介绍了智能运维中,运维工作人员与机器的分工。他说,机器将成为运维人员的高效可靠助手,逐渐替代人力完成基础性和重复性的基层运维工作。对于较为复杂的运维问题,通过不断向运维专家学习,从而向运维人员自动提供决策建议。
他认为,将来的智能运维人员可能主要有三种:经验丰富的运维专家;熟悉运维场景的机器学习专家;智能运维系统开发者。
运维专家有三项职责:人工处理那些机器还不能处理好的运维难题,基于经验根据机器给出的决策建议作出最终决策,不断训练机器。算法专家不断应用最新的机器学习技术设计智能运维算法。 系统开发者不断实现和集成 算法、数据采集和自动化执行脚本。
裴丹曾在在美国做过很长时间的运维工作,对于中美运维行业发展的差别,他的看法是,总体来说,美国运维行业在运维理念和智能运维技术的创新比国内要多一些。
首先,美国的运维行业工作历史悠久,AT&T电信网络的运维在几十年前就开始了,并且依赖AT&T的科学家们,发明了很多智能运维算法,发表在计算机网络领域的顶级会议(如ACM SIGCOMM)和期刊(如IEEE/ACM Transactions on Networking)中,并引发了学术界的深度参与,这些算法的核心思想有不少在现代互联网中仍然适用。
互联网兴起后,大型互联网公司在生产实践中不断深挖运维问题的根源,提出或深入实践了微服务、容器、DevOps 等先进理念。国内运维业总体上来说还处于应用已有先进技术的阶段,但是在一些局部的技术点上(比如普适异常检测技术)也走在了世界的前列。
他表示相信国内的运维行业在国内互联网行业不断高速发展的促进下,在不断增多的国际交流的帮助下,一定能够逐渐自主提出并实践原创的理念和技术。
工业界和学术界应密切合作实现技术突破
展望未来几年的运维领域的技术发展,裴丹认为:在国际范围内,越来越多的先进机器学习技术会被应用到运维领域。一些智能运维的关键技术,会逐渐通过工业界和学术界的密切合作被突破,比如异常检测、异常定位、异常事件关联等。更多的预测型的智能运维技术会被提出并实际应用,比如故障预测、热点预测、容量预测等。
对国内的运维人员的发展,裴丹提出了几点建议:除了提升代码开发能力,希望国内运维人员有意识的提升应用机器学习技术的能力,并不断实践。国际上“基于机器学习的智能运维”的实践也只是刚刚兴起,因此,就像中国的人工智能被认为有可能实现对美国人工智能的弯道超车一样,裴丹说他相信国内的运维行业只要足够重视并不断尝试实践,完全有可能在“基于机器学习的智能运维领域”实现对美国运维业的弯道超车。
关于智能运维技术如何落地的问题,裴丹说,在目前这个阶段,智能运维科研想要继续往前推进并取得更好的成果,需要把智能运维里的一些关键算法定义好、分解好。这是智能运维落地的一个关键步骤和手段。
他表示,现在智能运维很热门、很火爆,大家都感兴趣。但智能运维落地的核心挑战是:从工业界的角度,我们有数据、有应用,但是缺乏一些算法和经验;从学术界的角度,我们有不少理论算法,但是缺乏实际的数据以支持科学研究,也不熟悉运维的场景。“尽管我已经工业界和学术界的合作方面有了很多实践,但我切身感受到,相对来说,这种一对一的交流效率比较低,且见效慢,特别不符合当前的开源开放的趋势。”
因此,裴丹提出的解决思路是,以科研问题为导向,将我们在智能运维领域需要解决的一系列挑战性的问题,定义成切实可行的科研问题。这样,就有明确的输入和输出。在这种情况下,如果我们的企业能够拥抱开源开放的趋势,把数据开源出来,就能让学术界更多的研究人员参与到研究智能运维有关的算法中来。
从智能运维发展历程看,最早出现的是手工运维;在大量的自动化脚本产生后,就有了自动化的运维;后来又出现了DevOps和智能运维。在运维的过程中,涉及到的步骤可以概括为:产生海量的监测日志,进行分析决策,并通过自动化的脚本进行控制。运维的发展过程,主要是分析决策步骤发生了变化:起初,由人工决策分析;后来,在采集数据的基础上,使用自动化的脚本进行决策分析;最后,用机器学习方法做决策分析。
根据Gartner Report(加特纳报告),智能运维相关的技术产业处于上升期。2016年,AIOps(基于算法的IT运维)的部署率低于5%,Gartner预计2019年AIOps的全球部署率可以达到25%。所以,AIOps的前景一片光明。
如果AIOps普遍部署之后会是什么样的?
裴丹分析说,从机器的角度来看,基础性、重复性的运维工作现在都交给计算机来做了;同时,机器通过机器学习算法为复杂的问题提供决策的建议,然后向运维专家学习解决复杂问题的思路。从运维专家的角度看,运维专家主要处理运维过程中的难题,同时基于机器建议给出决策和训练机器徒弟。运维工程师将逐渐转型为大数据工程师,主要负责开发数据采集程序以及自动化执行脚本,负责搭建大数据基础架构,同时高效实现基于机器学习的算法。机器学习科学家主要负责AI的落地应用。智能运维领域相对于其它AI应用领域的优势在于,我们不仅有大量的应用数据,而且有实际的应用场景和部署环境。因此,人工智能在计算机视觉、自然语言理解、语音识别之外,又多了一个落地应用——这是一座尚未开采的金矿。
裴丹说,智能运维科研门槛高。
从工业界的角度看,因为智能运维需要三方面的知识:
第一,要熟悉应用的行业,比如说互联网、电信或者相对传统的行业,如金融、电力等等。
第二,要熟悉运维相关的场景,包括异常检测、故障预测、瓶颈分析、容量预测等。
第三,虽然工业界熟悉运维行业和场景,熟悉生产实践中的挑战,也有数据。但是,工业界并不熟悉整个智能运维中最重要的部分——如何把实际问题转化为算法问题(后面会讲到如何把实践中的难题分解成多个算法并逐个解决)。同时,工业界也不太熟悉查阅科研文献,特别是跨行业的文献。因此,智能运维是一个需要三方面领域知识结合的高门槛领域。
所以,裴教授和他的团队正通过自己的一些努力,来降低工业界部署智能运维的门槛。比如,清华的实验室运营了一个微信公众号,叫做“智能运维前沿”。基本上两三周推出一篇公众号文章,介绍世界范围内智能运维的前沿进展。
智能运维算法需要在实践中更好的落地
在学术界中,很少有人做智能运维方向。这是因为,对于学术界来说,进入到智能运维这一科研领域具有很强的挑战性。为什么?
虽然学术界研究人员的算法能力相对较强,但是他们往往不熟悉行业和运维领域的相关知识。而智能运维处于三个领域的交叉部分。这就导致智能运维的门槛比较高,需要花大量的时间和精力才能进入智能运维领域。
在推动降低工业界进入智能运维的门槛的同时,裴丹的团队也在努力推动降低学术界进入智能运维领域的门槛。他还曾应邀在《中国计算机学会通讯》上发表文章,向学术界的同行介绍智能运维中的科研问题。 但仅仅宣传是远远不够的,还要实践。裴丹在第一届APMCon会议(由听云、极客邦科技与InfoQ联合主办的全球高水准APM技术盛会上)发表学术演讲,阐述了当时和百度合作的三个案例,包括异常检测、瓶颈分析以及智能熔断。这种公开的宣传带来了很多新的合作。除了与百度的合作,清华实验室相继与滴滴、搜狗、阿里巴巴、腾讯签署了正式的合作协议。他认为这验证他的一个观点:工业界可以获得算法层面的深度支持,学术界可以获得现实世界的前沿问题和数据,有利于发表论文和申请国家项目。
谈到工业界与学术界在智能运维方面的合作,裴丹表示,现在工业界跟学术界的合作方式,还处于1.0阶段,即一对一的交流。在这个过程中,遇到了诸多挑战:
1、交流合作效率低,见效慢。比如说我是这个教授,我跟A公司讨论一下,再跟B公司讨论一下。很多情况下,不同公司遇到的问题都是类似的,比如异常检测。但是,我需要跟每个公司梳理一遍这些问题。C公司可能不知道我,就找另外一位教授,他依然需要梳理这些问题。这就大大降低了交流合作的效率。而科研最难的部分,就是把一个实践中的问题定义好。当定义好问题之后,只要数据准备好,其他问题都可以迎刃而解。
2、智能运维算法不幸成了特权。因为很少有教授愿意去做这种一对一交流,而愿意或有渠道和学校科研人员沟通交流的公司也不多。这就导致,在国外,只有少数大公司和教授才能合作。比如,目前只有Google、 Microsoft、Linkedin、Facebook、雅虎等大公司发表过智能运维有关的论文。
3、涉及知识产权,不符合开源大趋势。因为一对一的合作需要签署涉及知识产权的协议,不符合开源的大趋势。
1对1交流效率低,那具体应该怎么做?裴丹说,我们希望拥抱开源开放的文化,形成工业界与学术界合作的2.0。
在他看来,开源开放的大趋势已经对工业界和学术界产生了巨大的影响。大家耳熟能详的Hadoop、Ecosystem、TensorFlow等,都是开源开放的产物。在算法层面,当前有arXiv共享算法(论文)平台,和Github代码共享;在数据层面,ImageNet等数据共享平台对机器学习算法的研究起到了巨大的推动作用;在计算能力层面,各大公司都建立了AI云;在人才层面,我们也可以看到,学术界和工业界的人才流动比原来顺畅多了。
所以,裴丹说,他的基本思路是,希望能够建立智能运维的问题库。“我们尝试把运维的常见问题梳理出来,并存储到一个问题库里。这样的话,对于缺乏智能运维背景知识的科研人员,在问题的输入、输出、数据集齐全的前提下,可以很容易地着手解决问题库中的科研问题。对于做运维实践的工业界的同学们,当遇到实际的问题时,可以查询问题库中的解决方案。”
裴丹的这一思路受到了斯坦福教授李飞飞的影响。李飞飞最近在宣传普世化AI的思路——让所有人都可以使用AI,在她建立的 ImageNet上面有1000多万张图片的分类标注数据。在2012年Hinton教授提出了一种基于CNN的图片分类算法,取得比以往最好结果高好几个百分点的结果, 引起了深度学习的复兴。现在,她同时兼任Google机器学习部门的负责人。她在宣传普世化AI思路时,提到普世化有四个基本点:计算能力、数据、算法、人才。这四个基本点跟裴丹他们要落地智能运维所遇到的挑战是一样的。 因为他们也需要用到机器学习和AI的技术来解决智能运维中的挑战性问题。
除了问题库,学术界还需要数据集。此外,工业界最好能提供云计算资源,让学术界提供的算法在云端跑。裴丹认为,数据公开后,学术界可以公布训练好的算法,工业界就可以直接使用这些算法。在人才方面,工业界可以与学术界合作。同时,那些参与我们的智能运维算法大赛且排名靠前的学生,也可以成为工业界的人才储备。“最终,我们希望所有的公司都能用上最好的智能运维算法。”
裴丹说,智能运维本身前景非常光明,因为它具备丰富的数据和应用场景,将极大提高智能运维领域的生产力,也是AI领域尚未充分开采的金库。智能运维需要工业界和学术界的密切合作,但是目前仍只限于一对一相对低效的合作,少数公司和少数教授的特权不符合我们大的开源开放的趋势。我们的解决思路就是以科研问题为导向, 从日常工作中找到相关的问题,然后把这些问题分解定义成切实可行的科研问题, 并汇总成智能运维的科研问题库。同时, 工业界能够提供一些脱敏数据作为评测数据集,这样学术界就可以下载数据,并贡献算法。裴丹的实验室NetMan已经在运营一个“智能运维算法竞赛”的网站,汇总智能运维的科研问题库,提供数据下载,并成功举办了首届 AIOps挑战赛。该届挑战赛由美国eBay公司、搜狗、腾讯、阿里、百度等公司提供了脱敏的运维数据, 吸引了几十只队伍正式参赛,并取得了不错的成绩。
在智能运维的领域,裴教授的团队从去年就开始推动智能运维算法在实践中的落地,他相信只要有更多的学术界和工业界的人士参与进来,一定能推动智能运维算法在实践中更好的落地。(主编商灏 编辑严葭淇)