清华计算机系副教授裴丹 - 智能运维中的科研问题

曾湛英

2017/11/14 发布于 技术 分类

结合我在AT&T的工作经验,以及百度、阿里、腾讯、滴滴、搜狗的合作经验,我将总结目前阻碍智能运维高速发展的核心挑战:工业界有数据、有应用,但是欠缺定义科研问题的经验和算法经验; 学术界不了解智能运维的应用场景,也很难获得训练算法必需的数据;工业界与学术界的一对一交流效率低、见效慢。 在这次分享中, 我将提出一个新的思路。 首先,我将系统地把运维生产环境中的应用难题分解成若干切实可行的科研问题,并公布在我们实验室即将启动的一个智能运维算法大赛网站。 在这个网站上,各个企业可以为自己关心的、已经分解好的具体科研问题上传可供公开访问的脱敏数据;学术界基于公开的科研问题和数据,贡献算法,并与其他科研工作者的算法进行性能比较。就像ImageNet网站对图像识别机器学习算法的大力推进一样, 我相信这个智能运维算法大赛网站也将成为智能运维算法高速发展的一个有力催化剂。

文字内容
1. 智能运维中的科研问题 清华大学 裴丹 微信: peidanwechat
2. 报告主旨 智能运维落地的核心挑战: 工业界:有数据、有应用,但是欠缺算法经验 学术界:有理论算法, 但没数据、不熟悉智能运维场景 工业界-学术界合作:一对一交流效率低、见效慢、不开源开放
3. 报告主旨 智能运维落地的核心挑战: 工业界:有数据、有应用,但是欠缺算法经验 学术界:有理论算法, 但没数据、不熟悉智能运维场景 工业界-学术界合作:一对一交流效率低、见效慢、不开源开放 解决思路:科研问题为导向 把应用难题分解定义成切实可行的科研问题 企业提供脱敏数据作为benchmark 学术界贡献算法
4. 智能运维发展历程 手工运维 自动运维 DevOps 智能运维
5. 智能运维发展历程 手工运维 自动运维 DevOps 智能运维 分析决策 (人工->规则->机器学习) 监测 (海量日志) 控制 (自动化脚本)
6. AIOps in Gartner Report
7. 工业界:AIOps AIOps: Artificial Intelligence for IT Operations 7
8. 工业界:AIOps AIOps: Artificial Intelligence for IT Operations Platforms 8 AIOps全球部署率 30% 25% 20% 15% 10% 5% 0% 5% 2016 25% 2019
9. 智能运维前景光明 机器: 基础性和重复性的运维工作 为复杂问题给出决策建议 向运维专家学习解决复杂问题 运维专家: 处理运维难题 基于机器建议给出决策 训练机器徒弟 运维工程师: 逐渐转型为大数据工程师 开发数据采集程序和自动化执行脚本 搭建大数据基础架构 高效实现基于机器学习的算法 机器学习科学家: AI的一个落地应用 尚未开采的金矿和低垂的果实 9
10. 智能运维科研门槛较高 – 工业界 行业领域知识 互联网、电信、金融、 电力网络… 机器学习 聚类、决策树、卷 积神经网络… 智能运维 运维场景领 域知识 瓶颈分析、异常 检测、故障预 测… 10
11. 智能运维科研门槛较高 – 工业界 行业领域知识 互联网、电信、金融、 电力网络… 机器学习 聚类、决策树、卷 积神经网络… 智能运维 运维场景领 域知识 瓶颈分析、异常 检测、故障预 测… 11 • 熟悉行业和运维场景 • 熟悉生产实践中的难题 • 有数据 • 不熟悉如何把实际问题转化为 算法问题 有时一个实践难题需要分解为 多个算法问题一个个来解决 • 不熟悉科研参考文献 特别是跨行业的文献
12. 降低工业界门槛的努力:“智能运维前沿”公众号 科普世界范围内智能运维的前沿进展;推动智能运维算法在实践中的落地 《智能运维前沿》课程课件(英文): http://netman.cs.tsinghua.edu.cn/courses/advanced-network-management-spring2017/ 12
13. 学术界已有工作 智能运维文献中较为常见的算法: 逻辑回归、关联关系挖掘(事件-事件、事件-时序数据、时序数据-时序数据) 、聚类、决策树、随机森林、支持向量机、蒙特卡洛树搜索、隐式马尔科夫、多示例 学习、迁移学习、卷积神经网络,递归神经网络(RNN),变分自动编码(VAE)。 发表于如下学术顶会: ACM SIGCOMM, ACM IMC, ACM/USENIX NSDI, ACM MobiSys, ACM CoNEXT, ACM MobiCom, ACM SIGMETRICS, IEEE INFOCOM, ACM KDD, SIGMOD, VLDB, ICSE …… 13
14. 来自Conviva/CMU 的一系列案例 通过机器学习,提升视频流媒体用户体验和观看时长 相关分析 信息熵增益 线性回归 SIGCOMM’11 决策树 SIGCOMM’13 强化学习 NSDI'17
15. 智能运维科研门槛较高 – 学术界 • 算法能力强 • 不熟悉行业和运维的领域知识 • 领域知识门槛高 • 没有数据 • 虽然有相关算法,但是不了解 其在智能运维领域的应用 行业领域知识 互联网、电信、金融、 电力网络… 机器学习 聚类、决策树、卷 积神经网络… 智能运维 运维场景领 域知识 瓶颈分析、异常 检测、故障预 测…
16. 降低学术界门槛的努力 应邀在CCF(中国计算机学会)会刊发表专栏文章, 向学术界大同行介绍智能运维科研问题 16
17. 如何落地: 从去年开始号召工业界学术界密切合作 • 工业界与学术界应该在运维领域密切合作 • 工业界获得算法层面的深度支持 • 学术界获得现实世界的前沿问题及数据,有利发表论文和申请国家项目 新的合作 微信公众号文章累计1w+阅读 17
18. 工业界-学术界合作 1.0: 一对一交流合作 问题A 运维 问题A 运。维 。 。 教授 。 。 。 问题A 运维 问题B 教授 运维 • 交流合作效率低、见效慢 • 智能运维算法不幸成了特权: • 仅限于少数大公司与部分合作紧密教授 之间 • 国外:Google, Microsoft, LinkedIn, Facebook, Yahoo! • 涉及知识产权,不符合开源大趋势 • 数据不公开 • 代码不公开 18
19. 工业界-学术界合作 2.0:开源开放 工业界学术界合作开源开放大趋势: 代码: Hadoop EcoSystem (工业界) TensorFlow (工业界) Spark (学术界) 算法: arXiv.org 数据: ImageNet 算力: 各大公司的AI云 人才: 美国学术界批量向工业界流动 运维 运维 。 。 。 运维 19 运维 智能运维 问题库 A B 。 。 。 教授 。 。 。 教授
20. 受 “普世化AI”启发 李飞飞 斯坦福大学副教授、人工智能 实验室与视觉实验室主任 ImageNet 创始人 谷歌机器学习部门负责人 20
21. 普世化智能运维算法 运维 教授 问题库 运维 数据集 。 。 。 。 云计算资源 。 。 竞赛 运维 运维 教授 21 目标: 让所有公司都能用上最 好的智能运维算法 解决智能运维普世化的如下问题: • 数据 • 算法 • 算力 • 人才
22. 分解定义智能运维中的科研问题 22
23. 分解定义科研问题 Gartner报告中的问题描述太宽泛 科研问题要求: • 清晰输入;数据可获得 • 清晰输出;输出目标切实可行 • 有high-level 的技术路线图 • 有参考文献 • 非智能运维领域的学术界能理解 能解决 23
24. 已经定义出的科研问题 (即将公开发布在一个网站上) 24
25. 落地智能运维科研算法 • 相对独立算法 ->直接可落地 • 依赖其它算法 -> “庖丁解牛” • 数据等条件不成熟 -> “退而 求其次” 25
26. 科研问题定义之“基础模块” (即将公开发布在一个网站上) 26
27. KPI瓶颈分析算法 面向问题 • 从多维属性数据中挖掘引发KPI瓶颈的条件 输入 • KPI数据及瓶颈阈值 • 可能影响KPI的属性测量数据 输出 • 导致KPI瓶颈的属性(组合) 27
28. KPI瓶颈分析算法 典型应用场景 • Web 应用首屏时 间 • 移动应用加载时间 • 软件报错数 • 视频传输质量 常见算法 • 决策树 • 聚类树(CLTree) • 层次聚类 28 应用挑战 • 瓶颈可能为多种属性 和数值的组合 • 不同属性之间可能存 在依赖关系 • 避免重叠表示 • KPI可为单、双、多类 别
29. 故障预测算法 面向问题 • 在互联网服务运行时,使用多种模型或方法分析 服务当前的状态,并基于历史的经验判断在近期 是否会发生故障 输入 • 当前服务的运行状态(Syslog日志、SNMP数据) • 历史故障案例 输出 • 近期是否会发生故障/发生故障概率 29 测量数据 预测 当前时刻 故障
30. 故障预测算法 典型应用场景 • 硬盘故障预测 • 服务器故障预 测 • 交换机故障预 测 常见算法 • HSMM • 随机森林 • SVM 30 应用挑战 • 故障案例少 • 日志量大 • 有益信息少
31. 科研问题定义之 “庖丁解牛” KPI异常检 测 根因分析 故障传播链 构建 异常事件关 联挖掘 事件-KPI关 联挖掘 KPI关联分 析 KPI聚类 全链路模块 调用链分析 KPI趋势预 测 异常标注优 化 相似异常查 找 31
32. 故障根因分析算法 面向问题 • 当前应用服务发生异常时,分析导致服务异常的 根本触发原因 输入 • 服务相关的指标异常状况 (包括客户端,网络,服务 端等) • 故障传播关系图 输出 • 根因(排序列表) 32
33. 故障根因分析算法 典型应用场景 • 应用服务发生异常 时,快速诊断根因, 快速止损。 常见算法 • 基于故障传播链 • 概率图模型 33 应用挑战 • 数据收集不全 • 故障案例少 • 依赖故障相关的先 验知识 • 异常检测存在漏报 误报
34. 科研问题分解之 “庖丁解牛” KPI异常检 测 根因分析 故障传播链 构建 异常事件关 联挖掘 事件-KPI关 联挖掘 KPI关联分 析 KPI聚类 全链路模块 调用链分析 KPI趋势预 测 异常标注优 化算法 相似异常查 找 34
35. 科研问题分解之 “庖丁解牛”:异常检测 KPI异常检 测 根因分析 故障传播链 构建 异常事件关 联挖掘 事件-KPI关 联挖掘 KPI关联分 析 KPI聚类 全链路模块 调用链分析 KPI趋势预 测 异常标注优 化算法 相似异常查 找 35
36. KPI异常检测算法 面向问题 • 检测KPI的异常行为 输入 • KPI时序测量数据 • 异常区间标注 输出 • KPI是否发生了异常 36
37. KPI异常检测算法 典型应用场景 • 网络故障 • 服务器故障 • 配置错误 • 缺陷版本上线 • 网络过载 常见算法 • 基于窗口 • 基于近似性 • 基于预测 • 基于隐式马尔科夫模型 • 基于机器学习 • 基于集成学习 • 基于迁移学习 • 基于深度生成模型 •… 37 应用挑战 • KPI种类各异 • KPI异常行为难以定义 • 调整算法、参数费时费力 • 需要人工标注 • 人工标注不准确
38. KPI趋势预测算法 面向问题 • 通过分析历史数据,判断未来一段时间 KPI的趋势 输入 • KPI的历史数据 输出 • 未来一段时间KPI预测值 38 未来一段时间的趋势 历史数据
39. KPI趋势预测算法 典型应用场景 • 机器资源需求预测 • 订单量预测 • 作为异常检测、异 常定位、容量预测 等科研问题的输入 常见算法 • ARIMA • EWMA • Holt-Winters • 时序数据分解 • RNN 39 应用挑战 • 突发事件的影响 • 节假日,天气等因 素的影响 • 数据存在不规则的 变动
40. 科研问题分解之 “庖丁解牛”:异常检测->异常标注优化 异常标注优 化 KPI内相似异 常查找 相似KPI查找 (KPI聚类) 关联KPI查找 40
41. KPI相似异常查找 面向问题 • 面对一根较长KPI曲线的标注,根据已经标出的片 段作为模板,找到该KPI曲线上其它的相似异常, 减少重复标注的工作量。 输入 • 一根待标注的KPI曲线和一段已经标注出的异常片 段(模板) 输出 • KPI曲线上与模板相似的异常片段 41 模板 输入 输出
42. KPI相似异常查找 典型应用场景 •减少异常标注量 •KPI时间序列信息 挖掘 常见算法 •Matrix Profile similarity: DTW, Euclidean distance •Mueen-Keogh (MK) Best-matching Pair 42 应用挑战 •实时性要求高 •异常定义复杂
43. KPI聚类算法 面向问题 • 面对大规模KPI时序数据曲线,选取合适的 度量刻画曲线间的相似性,采用聚类与分派 算法快速确定曲线类别。 输入 • 大量KPI时序数据曲线 输出 • 每条曲线所属的类别 43 原始KPI数据 相似性判别 KPI聚类 KPI聚类簇
44. KPI聚类算法 典型应用场景 • KPI异常检测中的 迁移学习 • 相关异常查找,以 减少标注开销 常见算法 • DBSCAN • K-medoids • CLARANS 44 应用挑战 • 数据量大 • 曲线模式复杂 • 对类别的定义不同 • 缺乏ground truth
45. KPI关联关系挖掘算法 面向问题 • 互联网公司存在大量的各式各样的时序KPI 数据。KPI波动的相关性对于根因分析、故 障定位等可以提供很好的线索 输入 • 两条时序KPI数据 输出 • 两条曲线波动是否相关 45 两条KPI是否 相关
46. KPI关联关系挖掘算法 典型应用场景 • 根因分析 • 故障定位 • 异常预测 • 跨KPI寻找相关异常, 减少标注开销 常见算法 •Pearson correlation •Spearman correlation •Kendall correlation •Information gain •Granger causality 应用挑战 • KPI种类繁多 • 关联关系复杂 • 无标注无监督 46
47. 科研问题定义之 “庖丁解牛” KPI异常检 测 根因分析 故障传播链 构建 异常事件关 联挖掘 事件-KPI关 联挖掘 KPI关联分 析 KPI聚类 全链路模块 调用链分析 KPI趋势预 测 异常标注优 化算法 相似异常查 找 47
48. 故障传播关系图构建算法 面向问题 • 系统故障发生时,异常事件众多且具有相 互导致关系。借助精准故障传播关系图, 可以快速进行根因定位。 输入 • 历史异常事件,全链路调用链, 异常关 联,异常-KPI关联,KPI关联,KPI聚类 输出 • 故障传播关系图, 作为根因分析的输入 48
49. 故障传播关系图构建算法 典型应用场景 • 根因分析 常见算法 • Dapper: call graph • KPI 聚类算法 • KPI关联算法 • 事件关联算法: FP- Growth,Apriori • 事件-KPI关联算法 49 应用挑战 • 异常检测需要准确 可靠 • Ground Truth 难 以获取 • Call graph 不一 定有
50. 异常事件关联规则挖掘算法 面向问题 • 分析异常事件两两之间的关联关系 输入 • 近段时间发生的异常事件 输出 • 异常事件的关联规则 50 time 2014-10-29 06:09:10 2014-10-29 06:09:10 2014-10-29 06:10:10 异常事件 http port unreachable high cpu usage page view number< 500 2014-10-29 06:11:10 … 挖掘算法 mem usage … 关联规则 high cpu usage – mem usage high cpu usage– page view number< 500 high cpu usage err – http port unreachable http port unreachable – mem usage …
51. 异常事件关联规则挖掘算法 典型应用场景 •故障传播链构建 •报警压缩 常见算法 •FP-Growth •Apriori •随机森林 应用挑战 • 异常检测结果需要准确 • 关联的异常事件需要在历史 数据中一起出现多次 51
52. 事件-KPI关联关系挖掘算法 面向问题 • 对事件与KPI的关联关系挖掘 输入 • 一条KPI曲线,一条事件数据源 输出 • 是否相关,先后顺序,变化方向关系 52
53. 事件-KPI关联关系挖掘算法 典型应用场景 • 故障传播链构建 • 根因分析 • 服务事件诊断 • 系统故障定位 常见算法 •Pearson Correlation •J-Measure •Two-sample test 53 应用挑战 • 事件和KPI种类繁多 • KPI测量时间粒度过 粗,导致判断相关、 先后、单调关系困 难 • 算法参数调整
54. 科研问题分解之 “庖丁解牛” KPI异常检 测 根因分析 故障传播链 构建 异常事件关 联挖掘 事件-KPI关 联挖掘 KPI关联分 析 KPI聚类 全链路模块 调用链分析 KPI趋势预 测 异常标注优 化算法 相似异常查 找 54
55. 科研问题定义之“退而求其次” 根因分析 异常定位 智能熔断 报警聚合 故障定位 趋势预测 异常检测 55
56. 异常定位算法 Traffic flow Traffic flow 面向问题 • 多维属性KPI指标的总量发生异常时, 需定位到根因所在的具体的属性维 度(或维度组合) 输入 • 多维属性KPI的粗细粒度的KPI监控 数据 输出 • 导致异常的原因所在位置 56
57. 异常定位算法 典型应用场景 • 各类多维属性KPI(PV, 销售额,在线用户数, 登录请求数…)的异常定 位 常见算法 • Adtributor (explanatory power, surprise) • iDice(Isolation Power) 应用挑战 • 多维度指标搜索空间巨 大 • 关键指标受多指标、多 因素共同影响 • 历史异常信息数量不足 • 受异常检测准确度影响 57
58. 智能熔断提示算法 面向问题 • 软件升级或配置变更后智能地提示是否应该回 滚此次升级(变更) 输入 • 软件升级或配置变更 • 关联KPI时序数据 输出 • 是否应该回滚此次升级(变更)的建议 58
59. 智能熔断提示算法 典型应用场景 • Web应用软件升级 • Web应用配置变更 • 数据中心网络设备 软件升级 • 数据中心网络配置 变更 常见算法 • CUSUM • 奇异谱变换(SST) • Difference in difference 应用挑战 • KPI数量巨大 • KPI类型多样 • 要求低检测时延且 高鲁棒性 • 其他因素干扰 59
60. 异常报警聚合算法 面向问题 • 监控KPI太多,粒度细,导致异常报警冗 余度大 输入 • 异常检测的原始异常信息 输出 • 把相关报警聚合精简后的报警信息 60 报警聚合示意图:
61. 异常报警聚合算法 典型应用场景 • 报警压缩 常见算法 • 基于拓扑层级关系 (如:服务-机房集群-主机) • 频繁项集挖掘 FPGrowth,Apriori • 基于故障传播链 61 应用挑战 • 拓扑层级关系自动 挖掘 • 要求异常检测准确 性较高、历史异常 信息数量较多
62. 故障定位算法 面向问题 • 当前应用服务发生故障时,确定根因所在的 大致位置(主机、数据库、网络、前端、客户 端等)。 输入 • 客户端,网络,服务端等性能指标 输出 • 根因所发生的位置 62
63. 故障定位算法 典型应用场景 • 服务发生故障,需要定位 根因大致位置,加速止损 常见算法 • 故障模拟 • 随机森林 • 故障指纹构建 • 逻辑回归 • 马尔可夫链 • 狄利克雷过程 63 应用挑战 • 历史故障案例少 • 需要对案例进行人工标注 • 无法有效定位历史上没发 生过的故障
64. 落地智能运维科研算法 • 相对独立算法 ->直接可落地 • 依赖其它算法 -> “庖丁解牛” • 数据等条件不成熟 -> “退而 求其次” 64
65. 总结与前瞻 65
66. 智能运维算法竞赛网站 66
67. 诚邀在座各位共同参与! • 付出: • 参照科研问题提供脱敏数据 • 资金赞助感兴趣的算法竞赛 • 建议新的科研问题 • 参与社区讨论 • 回报: • 根据本公司实际问题,查询试用相关算法 • 根据网站建议,优化本公司数据采集和清洗工作 • 寻找潜在合作教授 • 在竞赛参与学生中招聘 67
68. 正在确认首批数据赞助商 官方已经审批通过 口头意向:五家大厂 欢迎贵司参与! 68
69. 感谢工业界合作伙伴 。。。。。。。 69
70. 感谢清华NetMan团队
71. 总结 智能运维前景光明 - 具有丰富的数据和应用场景 - 将极大提高运维领域的生产力 - 是AI领域尚未充分开采的金库和低垂果实 智能运维科研需要工业界-学术界密切合作, 但是目前仅限于一对一合作: -合作效率低、见效慢 -还是少数大公司和教授的特权 -涉及知识产权,不符合开源大趋势 解决思路:科研问题为导向, 促进工业界-学术界合作 2.0 -把应用难题分解定义成切实可行的科研问题 -企业提供脱敏数据作为benchmark -学术界贡献算法 71
72. 与君共勉 关于科研成果落地,我最推崇的 Albert Greenberg的两句名句: • “如何赢得学术顶会Test of time 奖?论文发表后再花五年时间把 论文里的算法变成产品。” • “人们往往高估两年内能完成的 成果;同时又往往低估五年内能 完成的成果。” 72
73. 谢谢! 清华大学 裴丹 微信: peidanwechat 《智能运维前沿》课程课件(英文): http://netman.cs.tsinghua.edu.cn/courses/advanced-network-management-spring2017/ 73