美文网首页AI智能运维
(即将开源)运维学件:没有算法专家,玩转 AIOps 的不二法宝

(即将开源)运维学件:没有算法专家,玩转 AIOps 的不二法宝

作者: AIOPstack | 来源:发表于2018-09-27 22:01 被阅读28次

作为运维,每天与代码和服务器打交道的你、是否有过这样的焦虑?

“扛机器、接网线、敲 shell 命令、背黑锅,这不是我想要的人生。”

半夜起来处理故障的人——是你

与开发吵得面红耳赤的人——是你

默默背锅的人——是你、还是你

别焦虑,AIOps 的时代已经到来,快收拾收拾情绪迎接它。

那么,没有算法专家,也能做 AIOps 么?

可以!答案是肯定的!

有学件!!运维学件!!

特大好消息:腾讯织云团队即将开源学件啦!!

说明:学件由南京大学周志华教授提出,运维学件由腾讯 SNG 赵建春先生提出并率先开源,云计算开源产业联盟和高效运维社区荣誉共同推广。以下内容由赵建春先生及其团队提供。

接触 AIOps 会发现很多问题,例如,我可能是一个小团队,或者说我缺乏算法专家,还有即使用了别人的算法模型,我还希望了解这个算法的原理。

以及,提供算法的一方和使用算法的一方,都不愿意提供数据,担心数据泄露给对方,那双方都有这样一个担忧,这是面临的困难。

对于以前的运维的环境里面规则来讲,其实你可以认为他是 API,或者是一些编写的逻辑处理,特点就是很少会变,因为是人编写的,所以容易理解,专家总结了,和数据无关,他写好就放在那里,类似 if-else,case swich等。

但是在 AI,前面讲了,其实是一组带有记忆能力的 API,这个记忆能力是从哪里来的,就是对数据有依赖的,从数据里面统计学习而来的,同时环境里面不断地在积累这个数据,可能不断有新的案例进来。

所以这个模型时刻地在变,它非常的复杂,它可能是决策树的决策路径、回归参数或神经网络的网络结构及路径权重。

因为它的各种的算法,决策算的神经网络的结构,以及他的权重,或者是回归参数相当复杂,这个不是人编写出来的,所以就难理解。

从 API 到学件

所以 AIOps 我们可以来一个从 API 到学件的转变,“学件”概念是南京大学的周志华老师提出来的,他是国内 AI 领域的泰斗级的人物,非常厉害,他提出学件是通过数据可以不断地学习,随着数据的不断地加入会更好,另外它的算法是公开的,你也可以了解它是怎么实现的。

你也可以拿过来用,通过我的数据训练好模型后给你,但没有把数据交给你,把参数、网络结构这些东西交给你,并没有把数据交给你,来解决数据安全问题。

你也可以用自己的数据重新去训练改进适应自己环境的模型,所以是可演进的。算法也是公开可了解的,拿来可以重用,来解决里面的一些问题。

这是我们前一段时间和业界同仁一起编写的 AIOps 白皮书的一个能力框架,我不展开来细讲。

我们大体的想法就是说最底层就是各种机器的学习算法,这个算法和我们的实际环境场景结合起来,通过训练一些单个的 AIOps 学件,单点场景也可以解决问题,之后把单点学件串联起来组成 AIOps 的串联应用场景,最终就可以形成一个智能调度的模型,去解决我们的运维环节的成本、质量、效率等运维关心的问题。

我们团队跟高效运维社区做了一些实践和理论方面的探索和尝试,今天也希望通过这几个单点的串联质量效率这些纬度跟大家分享一下。

关于学件的实践案例分享

1)单点案例:成本 - 内存存储智能降冷

单点第一个是成本,就是内存存储智能降冷,因为我们是社交网络业务,用户规模大,又有大量的访问,这样就导致团队喜欢用内存型的KV存储。

上线的时候,请求量可能很高,但是随着时间的推移,他的数据量不断地增长,访问密度反而在下降,对我们的成本造成很大的压力。

那大家会想到降冷,但是降冷之前大家都熟悉就是利用数据的最晚使用时间按规则处理,但是这个你想想其实只有一个指标,这个数据的最后使用时间,作为特征去分析,其实远远不够的。

我们对每一类数据做了非常多的特征的抽样提取,有几十个特征,如周期的热度变化这些,就是如图上这些,还有一些没有写出来的。

然后我们同学根据的经验,因为他们之前手工处理过很多,就会有一些经验,哪些数据条目是可以降冷的,把他标注之后,用逻辑回归和随机森林,去学习和训练,其实就是做分类,机器学习绝大部分都是做分类。

做一个分类之后,上面是 LR 和 逻辑的回归,下面是随机森林。那在随机森林,在30棵树的时候效果最好,因为随机森林本来就是一个 bagging 的方法,对稳定性效果有提高。

最终的效果就是说,我们把数据进行了一个下沉,把接近 90% 的数据,下沉到硬盘上,我们的访问量并没有下降,SSD 数据没有造成访问压力,可以看到下沉和下降是非常精准的。

而且这里面的数据延迟和成功率几乎没有变化,其实之前的同事通过人工的设置做下沉的设置,其实效率是非常的低,这个模块提升了 8 到 10 倍的下沉的效率,这是第一个案例是成本的。

2)单点案例:质量 — 统一监控去阈值

质量,大家可以看到统一监控去阈值是很有意义的一件事情。监控有两种情况,一种是成功率的监控,它应该是一个直线,正常应该在100%左右,但它会往下掉。

第二个就是类似于一个累计性的曲线,或者 CPU 的曲线,这个曲线监控其实是非常的千变万化的。

之前我们可能是通过设置阈值的方法,最大值最小值,阈值设置这样的方式,去设置告警。

这个曲线一直在变化,最大值和最小值也一直在变化,然后他的形式也非常的多变,也很难去设置这样的东西。

那我们做了两种的方式第一个是成功率的方式,我们使用了 3sigma 方式,来自于工业界,是来控制产品的次品率的,如果是 3sigma 是 99.7% 是正品,其实用这个方式我们统计出来的告警里面,超过正常值范围里面的多少多我们认为是多少个次品,把它找出来。

第二步用孤立森林,就是长的相似的一类的东西,是比较难分类的,要通过很多步才可以去到叶子节点上,所以看到这个 Gap,这一块就是说在比较浅的叶子的节点,就是异常的节点。

我们通过第一步统计的方式,第二步的无监督方式找到一场。目前最后一步我们还是加了一些规则,让告警更可靠。这个规则其实就是看到我在什么时候告警和恢复,这样一个逻辑既然是一个规则,在未来我们会进一步做一个 AI 化的改造。

那对于这个曲线型的监控,目前我们就是因为曲线不是属于正态分布的,一个曲线是一个曲线,所以极差很大。我们把它做了一个分段的 3sigma,就是一个小时一个段,过去 7 天进行一个采样。

还有曲线我们可以用多项式去拟合这个曲线,我们用 3sigma、统计方法、多项式拟合几种方法作为第一步,就是相当于推荐系统里的多路召回。

第二步依然就是孤立的森林,和前面讲的原理一致。

第三步就是有监督的人工标注,就是图上画圈的有些告警有一些不应该告警的标注,标注训练集后去训练自动地分类。

为了获得更多的样本库,同事们用这个叫相关系数的协方差算法,寻找更多的样本库。大家可以关注一下,就是说去找一些相似的曲线,对训练不好的模型,就再进行打包去训练。

总的方式,通过三级的过滤找到异常的告警。

我们有十万多台设备,超过120万个监控视图,其实之前我们70%以上都没有设告警,因为很难每个都设一个最高值最低值,所以说目前就把这些模块都纳入到这个监控里面去,百分之百覆盖,这是一个监控区域值,去设置的一个案例。

重磅:运维学件即将开源

10月20日、腾讯织云基于多年运维内部场景整合的 AIOps 利器 Metis 开源项目即将正式发布。

Metis 这个名字取自希腊神话中的智慧女神墨提斯(Metis),它是一系列智能运维的应用实践集合。腾讯织云 Metis 团队通过开源项目 Metis 打造智能运维的学件平台。

本次率先开源的时间序列异常检测学件,是从无监督+有监督学习的角度来解决时序数据的智能检测问题。时间序列异常检测学件是通过学习织云海量的时间序列样本,训练出一套智能检测模型,然后利用无监督和监督算法对时间序列进行智能检测。通过 Metis, 运维人员无需再去设置监控阈值,能复用经过织云海量业务样本训练而成的模型,同时跟根据个性业务场景生成新的测试模型,满足多种业务需求。

原文地址:https://mp.weixin.qq.com/s/9vNV0ldpqwrpjFGZKWaccw

相关文章

网友评论

    本文标题:(即将开源)运维学件:没有算法专家,玩转 AIOps 的不二法宝

    本文链接:https://www.haomeiwen.com/subject/givyoftx.html