编者荐语:
专家系统和智能系统哪个更有效,这个问题对于很多人来说都很头大。面对不同的场景,不同的使用者,专家系统和智能系统的作用是不同的。
十多年前,一个客户和我说,你们这些专家分析问题的水平很高,我们的DBA没有可能达到你们的水平。你们能不能把分析问题的思路做成一个知识库,当我们的系统遇到类似的问题的时候,能够按照你们提示的分析方法一点点去分析。后来有朋友就组织了开发人员,为这个客户开发了一套专家系统。里面的内容有点像是一张张的思维导图,外加一些触发条件。当时这个客户如获至宝,系统也确实发挥了一些作用。不过随着他们数据库系统的升级换代,以及运维要求的不断提升,这套专家系统早就过时了。
前些年专家系统是比较高大上的,不过这些年已经没人提及了。这些年的运维自动化系统带上智能的越来越多了,好像做运维自动化系统的,不做出一个智能化的系统来都不好意思拿出来和大家见面似的。不过很多号称是智能化运维系统的,和传统的运维监控系统并没有本质上的区别,可能监控的内容更多一些,能够展示的数据也多了起来,展示数据的维度也比以前丰富。以前我们顶多用饼图折线图之类的来展示数据,现在我们可以把方差、标准差等以前大家不太看得到的数据也展现出来了。不过从本质上来看,这些依然还是数据的罗列。而事实上,运维人员更需要看到的不是这些数据,而是隐藏在这些数据之后的结论。
比如说上面这个IO分析的案例,虽然我们通过异常检测算法发现了上述的指标存在问题,似乎带上了“智能化”,但是这种智能化能力其实对我们的运维是完全不够用的。因为我们哪怕知道了哪些指标异常,如果没有强大的分析能力,依然对此无能为力。作为运维人员,我们除了希望看到罗列的指标,发现的指标异常,更需要的是告诉我们问题出在哪里了。
运维人员需要知道这些指标异常背后的知识,到底是什么引起了这些指标的异常。当然,要想十分准确地定位到上面的几个问题中的一个,还需要更深的智能化能力做支撑,我们的系统目前还达不到这个能力。不过从异常检测中发现系统问题的可能根因,已经可以为运维提供足够的支撑了。
我们再来看一个例子,优化工具中心能够为需要优化的运维对象提供工具指导,这是一个很好的专家系统,对于需要做优化的运维人员也是很有帮助的。不过专家系统如果能够带上一些智能化的能力,那就更好了。
同样是优化工具中心,智能化运维系统的实现方式是完全不同的,不仅仅能够根据专家系统预设的工具推荐PG可以使用的优化工具,并且能够自动根据当前的数据,自动对系统进行快速分析,发现其中可能存在的异常。当点击到某个运维对象的时候,可以根据专家系统推荐的优化工具,同时还会根据当前系统存在的问题,自动将可以用来检测这些异常的工具加亮后推荐给运维人员。
虽然在界面上仅仅多了几个加亮的工具条,不过隐含在这些加亮的背后,默默发挥作用的是运维知识图谱、泛路由智能知识点、社区发现算法、指标异常检测算法等专家系统+智能算法的组合体。
经常有用户问我,老白,你们号称是智能化运维工具,你们的工具的智能化体现在哪里?我怎么看不出来呢?我问他,什么样的系统才是他眼中的智能化系统。他说,你起码也得弄个卡通机器人,时不时的对上几句话,才更像是个智能化系统吧。
实际上,我觉得智能化运维系统中没必要弄的满屏都是智能化UI,也没有在系统中拉出一大屏幕的知识图谱让人来顶礼膜拜。把这些自动化,智能化的算法隐藏在一些UI的后面,让智能化的能力服务于运维人员就够了,没必要让智能化霸气侧漏到系统的每个界面上。
我和一些做投资的朋友聊过AIOPS,他们眼中的AIOPS都是以算法为核心的,而不是以专家系统为核心的。而我们建设AIOPS系统的途径和这些传统的AIOPS系统不同,我们的AIOPS系统是从专家系统起步的。首先我们把专家们积累了数十年的经验变成完全自动化的“运维知识自动化系统”,构建起第一张运维知识图谱。然后才逐渐在专家系统能力不足的地方用AI算法来补充,并通过“泛路由知识点”这种低代码的分析工具填充到知识图谱中,用以改善与提高智能诊断的能力。
专家系统和AI算法解决问题的方法是不同的,在一个企业的IT运维需求中,单单依靠某一种都是不够的。专家系统具有较为准确的深度定位能力,不过分析覆盖面不足,AI算法可以覆盖更广泛的场景,但是精准定位能力又不足。二者相结合才能弥补各自不足,获得相得益彰的效果。基于专家系统去开发AIOPS系统,可以让AIOPS系统站在巨人的肩膀上,从更高的起点出发,就像是二级火箭一样,可以飞的更高。