智能化运维(AIOPS)是近些年特别热门的话题,不过目前绝大多数智能化运维系统都还处于较为初级的阶段,能够适用于通用环境的智能化运维系统更是凤毛麟角。这是为什么呢?实际上,我们的智能化算法所依赖的基础能力仍然有很多短板,我们对信息系统的理解也依然不够全面。曾经和一些做智能化运维算法的人交流过一个容量预测方面的算法问题。他们总是觉得通过数据拟合出来的模型只是在某些场景下有效,又找不到问题出在哪里。经过深入的探讨,我发现原来他们做的是一个全链路的容量预测算法,但是他们对这个全链路环境下的各个组件并不了解,甚至不知道如何优化中间件、数据库等组件,仅仅通过一些历史数据与 压测数据去建模分析。这种黑盒的做法,注定是无法获得真正的容量模型的,因为在这个复杂的环境中,因为排队效应的问题,存在大量的调参优化的问题,而这个团队中几乎没有能够对这些组件进行优化的专家。
实际上,在智能化运维的各个细分领域,或多或少都存在着类似的问题,算法工程师总是希望通过数据和高效的算法就能够把运维领域复杂的问题都解决了,但是不幸的是,IT系统太复杂了,黑盒方法并不能解决复杂环境下的混沌问题。真正的要让AIOPS走向实用,甚至替代专家来运维我们的IT系统,不能总想着一蹴而就,必须先踏踏实实的构建好基础能力,然后才能实现我们的目标。
上图画的是一些基础能力,只是智能化运维中所需的能力中的一部分,不是全部,只是一些最为基础的能力。算法能力我们不展开说了,这是目前做智能化运维平台的几乎所有的团队都已经在重点投入的领域,而且这方面的成果也是最多的。不过可能有朋友会觉得奇怪,数据不是最为基础的东西吗,怎么还拿出来说,难道一个已经做了十多年运维自动化的企业,连数据能力都还不具备吗?事实上还真是的,虽然我们已经做了十多年二十多年的运维自动化系统,但是很可能我们的数据还是面向传统的网管系统的,对运维数据的采集依然不够充分,对运维数据的体系也依然是模糊的。我提个问题,你觉得一台集中式存储,要给他数字化建模,需要采集多少指标数据呢?可能你一下子回答不出来。那么把问题再说的简单一些,先不考虑具体到指标,而是说有多少个维度的指标或者数据,才能构建出一个集中式存储的数字化模型呢?可能你也回答不出来。这是因为以前的传统式网管系统,只需要知道这台存储是不是好的,有没有报错或者预警就可以了,不需要构建数字化的模型,因此我们只需要很少的数据就可以了。而在智能化运维时代,我们需要构建运维对象的全面的数字模型,然后才有可能实现对某个运维对象真正的智能化运维管理,这时候我们所需要的数据和网管时代是完全不同的。数据是一切数字化与智能化的基础,如果没有准确而全面的数据,那么智能化的算法再强大,最终能够实现的能力也就十分有限了。
运维知识图谱在目前绝大多数的AIOPS建设者眼中似乎还是一个很陌生的东西,不过运维知识图谱是构建AIOPS平台的最为关键的基础能力之一,也是最难建设的基础能力。信息系统是一个十分复杂的混沌系统,而不是简单的能够用算法来解析的规则性很强的系统。这一点决定了算法不能解决所有的智能化运维的问题,大量的问题依然需要依靠对信息系统内在规律的认知与专家经验的积累。这些积累的成果实际上构建了运维知识图谱的核心,当然运维知识图谱中还有大量的经验积累,随着信息系统的运行,大量的现实案例被不断地发现、抽象、建模,最终不断地丰富运维知识图谱,随着时间的推移,这个图谱会不断的丰富与完善,成为企业的核心价值。
数字孪生能力是智能化运维中的另外一种关键能力,信息系统太复杂了,我们构建的各种基础能力如何才能更为有效的发挥作用,必须借助数字孪生的能力。比如说,业务部门告诉我们,某天的某个业务负载可能是平时高峰期的10倍,让我们的IT部门做好准备。那么IT部门如何应对这个需求呢?找一个能够承受10倍业务能力的压测环境去压测可能是最好的解决方案,但是一方面我们是不是总能找到这样的压测环境,并进行科学的压测呢?我们完成压测所需的时间是否充足呢?因此,压测是一个解决方案,但不是 较优的方案,因为成本太高,耗时太长。数字孪生的能力能够把这部分工作在全数字化仿真的环境中很好的完成,当然要能够完成这样复杂的任务,对于企业信息系统监控体系的数字化程度要求很高。
今天时间关系,就简单的讨论这些内容吧。智能化运维目前只是处于十分初级的阶段,数据的完善与算法的提升帮助我们解决了一部分传统运维不能解决的问题,仅此而已。运维并没有因为目前的智能化运维能力而得到极大程度的提升,而这种提升在未来一定可以看得到。实现这个目标的基础是建设全数字化的运维支撑体系,数字化才是智能化的基础。