【51CTO.com原创稿件】搜狗以搜索和输入法为主,技术实现背后有大量的人工智能技术做支撑。搜狗运维在这样一家以人工智能技术为主的公司中,将面临哪些挑战?本文将与大家分享人工智能在运维中的实际应用,以及搜狗在智能运维方面的实践。
运维工程师遭遇的三大痛点
再讲智能运维之前,我们先来看看,运维工程师常见的三大痛点:操心成本、智商不够、烦人成本。
操心成本
所谓操心成本与相声《扔靴子》所表达的主题相似——你并不知道“第二双靴子什么时候扔下来”,同样你并不知道故障什么时候来临,所以你一直提心吊胆,惶惶不安。
7×24运维,半夜经常会有收到警报的情况,运维团队负责多个模块、机器、服务、业务等等,如何保障它们的可靠性?并且每个业务都有自己的指标,响应时间、请求量、磁盘容量、网络IO等等,这些指标都可能发生异常。
目前业界一些通用的监控手段,有时会铺天盖地报警,但这些报警不一定能反应真实的情况,真是让人操碎了心。
智商不够
当运维过程中遇到比较复杂的故障需要处理的时候,不能很快的找到出现故障的根源,很好地进行故障定位,感觉智商不够用。
烦人成本
在搜狗内部有一条明文规定,如果运维工程师不做运维开发,不予升职。所以搜狗的运维经理除了履行保障线上可靠性职责的同时还要做自动化研发。因为职责在身,线上一旦出现问题,无论大小,运维人员是首先被问询的,所以运维人员最容易被打扰。
可做研发大家都知道,是需要整块时间才能够保证效率且减少出错。这样一来,上班时间基本上不会有大块时间来做研发,这样的状况真的很烦人。
面对痛点 用“智能”来化解
针对这三大做运维最基本的痛点,搜狗运维选择用“智能”来化解:
-
针对操心成本,是智能熔断
-
针对智商不够用的情况,是智能故障定位
-
针对烦人成本,是智能问答机器人“维秘”
智能熔断的思路
作为运维人员所要面临的问题,往往是一张以时间为横轴的时序图,纵轴是响应时间、CPU占有率、网络IO、磁盘IO等一系列指标,这样的指标每个节点或机器都有一二十个。如果有上万台机器,上万个节点,那么就会有一百万张时序图,工程师需要对每张图做智能监控, 当发生异常,随时上报。
在股票、医学领域,基于时间轴的数据监控已被广泛应用。股市利用数据监控预测股票涨跌,医学可以利用数据监控预测疾病的发生时间,这些特点与运维有高度的相似性。
运维领域也是以时间轴为纬度分析,目前有很多监控和分析的工具,最简单如设定一个固定的阈值或者周同比,但这些工具还不够智能。
智能熔断系统。目前,搜狗运维正在研发智能熔断系统,是为应对操心成本而生,针对故障的根本原因进行分析和故障预测。
故障的原因有二:
-
代码变更或上线,这类的故障非常多,而且大多都是人为造成的 ,现在基本上可以实现智能上线平台做自动上线,完全自主。
-
就是机房、网络和硬件等。
当面对自主上线的情况,如何保证平台的稳定?
下图是智能熔断的实现原理,搜狗引入熔断机制,当某些指标有发生上线动作、发生异动的时候,系统自动判断并做熔断,比如做停止或者回滚操作。并和一些其他的智能设备相结合,如手机上可操作熔断、停止及回滚等功能。这个系统能解决大部分问题,如环境、代码、人为误操作等等。
还有一个问题,就是一些研发人员水平不高,写出的代码在上线的瞬间,指标出现异常,但重启一段时间就好了。同时研发人员表示,当前没有精力去处理,暂时忽略。面对这种情况,就要引入更深的人工智能话题,要对异常进行判断,是已忽视的正常异常,还是需要处理的异常,这里就涉及到对故障点分类的问题。
智能故障定位
搜狗搜索引擎的架构非常复杂,如下图只是架构的冰山一角。在如此复杂的前后连接关系的情况下,当故障发生时,如何快速故障定位、如何减少用时、如何判断报警的根本原因呢?
搜狗的做法是把问题抽离成一个规则的模板,即一个规则的集合,然后基于特定业务架构图去分析,最终定位故障具体原因。
大致的算法是每一个探针的请求都带一个ID,这个ID在各个模块都是打通的。运维工程师分析这个请求的ID在每个模块里面的具体表现,根据这些规则模板看它是否***设定规则模板,然后定位系统,再根据这些规则模板的***情况做一个决策,将故障定位。甚至可以定位它是属于哪个模块的哪个节点,这样就可以快速的去处理这个故障。
如下图,右上角是各种模板***的情况,根据***情况做最终的判断。
如果熔断系统是人工智能的话,故障定位就是人肉智能,可以看到核心功能都是由人肉智能编纂出来的。每当出现一类问题,就编入知识库和故障分析模块,避免下一个同样的故障发生。
但实际情况是,大家在操作某一个模块时, 不一定会去看之前存在的问题和解决方案。搜狗的做法是把这些问题与知识固化到系统里,让机器人发挥作用,如上图的最终结果展示,包括Web端和手机端,都可对接一些故障问题。
智能问答机器人“维秘”
这是一个问答系统,已在搜狗内部开始内测,也是为了解决运维的第三个痛点——烦人成本。运维工程师每天需要解答各种各样的问题,需要花费大量的琐碎时间,而这个工作完全可以交由智能机器人来解决。
智能问答机器人“维秘”
维密运维机器人,构建在搜狗内部的即时通讯工具中,类似微信公众号,可实现直接提问与回答。
它可以实现三项功能:
-
智能查单,在搜狗内部运维系统有很多工单,当咨询人员输入工单号,就能查到工单进行到哪一步了,类似于搜索快递单号,你输入快递单号就能显示快递状态。
-
智能找人,咨询人员提问后,可能并没有***知识库(上文中提到的知识库已由运维工程师提前编辑和整理),机器人没法回答,但机器人可以判断这个问题是属于哪个领域,然后推荐此领域的专家,如问到硬盘的问题,则会推荐一位硬件领域专家解答问题。而咨询人员与专家的对话又将得以保存,并作为机器进一步学习的资料。
-
是最为常见的智能问答,咨询人员提出问题,机器人直接根据知识库来进行解答。
在研究的过程中,如何低成本用人工智能武装运维,是值得思考的问题。个人建议运维工程师挖掘真正痛点,深入思考产生好想法、并用好实习生和用好 AI 云。
未来,搜狗运维的研究方式将扩展到基于决策树的故障根因定位、基于监控大数据和架构图的故障根因定位、故障处理过程的机器决策以及故障预测等。
以上内容由编辑王雪燕根据张博老师在 WOTA2017 “创新运维探索”专场的演讲内容整理。
张博现任搜狗运维保障部总监,负责搜狗所有业务线的运维保障及运维自动化开发,搜狗内部云平台的研发和运维,搜狗AI开放平台的建设。2006年加入搜狗,11年来一直在搜狗做运维相关业务;在业务可靠性保障、运维团队管理、自动化运维、云产品研发和运维、人工智能在运维领域的应用等方面都有所专长。
【51CTO原创稿件,合作站点转载请注明原文作者和出处为51CTO.com】