出品 | AI科技大本营
在过去的15年里,云计算实现了飞速发展,而这种发展也为诸多的前沿技术奠定了基础,AIOps便在此环境中获得了良好的发展契机。在数字化转型的浪潮下,云计算已经成为了整个社会的基础设施之一。当企业把服务建立在云上,云计算的平台性能、安全性等要求也在不断增加,这种情况下,运维的升级便已如箭在弦上。
为了进一步明晰AIOps技术发展的趋势,微软亚洲研究院常务副院长,微软杰出首席科学家张冬梅,微软亚洲研究院首席研究员林庆维两位专家为大家做出了明确的解析。
云时代下,AIOps的希望与契机
在云计算时代里,云平台的系统规模已然成为了一种大规模分布式且复杂度非常高的操作系统。系统之间存在各种问题,尽管工程师在设计时已经尽量将其模块化,但不改的依然是系统的复杂度。而要保证复杂系统的稳定、高效和安全等,就必须在整体设计、开发、运维等各方面完成模式转变。
张冬梅博士介绍称,云计算带来的范式转变主要包括了四个层面。首先是基于规则的系统,变成数据驱动的系统。以前开发模式基本上是凭借着经验和想象而来,难以预测运行状态如何,软件在运行的时候会发生很多事情,模式的转变就是希望把运行时产生和记录的数据进行分析,增加对整个系统状况的理解。基于此,整个系统在设计时将不再一成不变,而是有不断变化的思想,从基于规则到数据驱动。
第二则是从静态到自适应的发展。当系统不再是固定的,如CI/CD一样,系统可能随时开发,随时变化,并附带诸多检查,当新代码提交并构建后,经过测试会再进行部署,依赖部署策略,在更大的范围内部署到整个平台上去。整个过程从静态变成了动态,系统也需要在动态过程当中,根据外部环境的变化进行自身的调整。
第三则是从局部到整体的观念转化。在一个大的云计算系统中不能只看一点,应该把视野放大。比如在云平台里面肯定会有存储,但是当某块硬盘坏掉时,要考虑的不仅仅是换硬盘,还要考虑为什么它会坏?它坏了之后,是否旁边的也存在风险。
第四便是防患于未然。以往的被动式反应是等系统出了问题才去处理,但是云时代更要做的是防患于未然,要主动在其快出问题的时候,先行采取措施,让问题最好不要出现。而AIOps便是这样的一种机制。尤其是在大的云计算平台,其往往可以根据自身特点和期望,对其设计、实现、运维这三个方面实现模式转变。
事实上,微软亚洲研究院早在十余年前就开始对AIOps领域进行研究。那么到底什么是AIOps呢?张冬梅博士解释称AIOps是通过创新的AI、ML技术,让用户可以有效且高效地设计、构建、运营大规模复杂的云服务。
微软亚洲研究院常务副院长、微软杰出首席科学家张冬梅
关于现在,AIOps能够带来怎样的改变
微软亚洲研究院在尝试AIOps的更多可能,关于AIOps的定义,其主要有三个方面的研究。
第一是服务/系统,即AI for System。软件的源代码只有运行起来才是一个软件系统,而从运行的系统观点来看待问题,其便关系到系统的性能、稳定性、安全性等各方面的问题。
第二是客户,即AI for Customer。系统可以服务于个人,也可以服务于企业。那么为用户服务时便一定要注重用户体验。
第三是开发/运维的生产效率,即AI for DevOps。开发和运维主要是针对开发人员和运维人员,如果能够用智能技术帮到他们,提高生产效率,则可以让平时的工作能够变得更加顺畅。
那么AIOps的应用场景包含了哪些呢?在系统服务方面,会常常用于异常行为检测和预警,其可以基于数据采取机器学习的方法,再结合专业领域知识,实现较好的判断和预判。
在开发和运维方面,如CI/CD等。其不仅需要在不影响用户的情况下快速让系统恢复正常,还需要找出问题出现的原因,但是由于系统的复杂性导致很多时候很难发现问题漏洞,因此需要甄别如日志等各种信息并进行大量的诊断,从而可以通过智能的方法将诊断工作提高效率。
在客户方面,也需要让客户的体验提升。微软的云平台经过多年实践后,将AIOps方面的实践提炼成工具,并提供给客户。当客户自己构建服务和运维时,基于整个云平台,就能够帮助客户构建其他服务。
在整个运维系统里面,AIOps的研发难度可谓排名前列。在不同的场景中,有着不同的系统、客户和DevOps运维等。不同的场景会使得研究的角度不同,研究人员需要针对共性问题进行抽象,并从研究角度解决共性问题,找到可推广的算法或者解决方案,这样才能提高解决问题的效率。
在AIOps的研发过程中,其主要面对的挑战有四个领域。首先是检测,也就是需要知道问题能否及时知道;第二是诊断,要及时的找到问题在哪里,并了解根本原因;第三是预测,其需要防患于未然,而不只是出现问题才采取措施;第四是优化,面对多重约束等问题需要不断地将模型和产品进行打磨优化。
面向未来,AIOps还有哪些发展
微软亚洲研究院多年以来在AIOps方面进行了深入的研究工作。其在AIOps方向上起步非常早,早在2009年前后便已经成立了Software Analytics Group(软件分析组),并希望从数据驱动的角度研究软件领域。这其中包括了运行系统问题、用户体验问题、开发效率问题等。
云计算作为过去10到15年里整个软件和工业范式的转变,云计算系统也变成了运行软件的主要形式。因此,Software Analytics研究的焦点便集中到云计算系统,微软亚洲研究院也相应提出了云智能/AIOps。Software Analytics做的事情就像是软件行业的数字化转型。用数字化转型的观念来看,AIOps就像把整个云计算平台用最先进的AI技术,实现持续不断的创新。
张冬梅博士认为,AIOps的发展一定要落地,如果不能对软件工业进步做出任何贡献,那么技术就没有太大意义。因此微软亚洲研究院在研究的同时,也在寻找机会将其真正部署到微软的Azure云平台里面,从而对公司和社会做出一些贡献。
林庆维随后对微软亚洲研究院在AIOps方面的工作进行了补充。服务系统方面,检测异常行为很重要。现在硬件问题是虚拟机宕机的原因之一,在大型的硬件平台中,磁盘故障是造成硬件问题的主要原因。研究员们希望在出故障之前,系统能更早地意识到或者是能预测出磁盘故障并采取措施。如把用户的虚拟机迁移到别的机器上去,或者通过软启动等方式解决问题,让用户不会受到影响。其可以作为一个机器学习的问题,让模型从大量硬盘的历史数据中学习到知识之后,根据目前磁盘的状态,预测将来是否可以及时采取措施。
开发和运维方面,在云平台上不会像桌面软件那样很长时间才更新一次。云平台上,每时每刻都有非常多的新的部署产生,需要时时刻刻检测其安全性,避免任何一个部署出问题,进而导致整个云平台宕机。因此,这就需要通过AIOps的方法,以智能的方式来解决问题,在中间阶段将问题抑制,回归到安全状态。针对安全部署诊断问题,在云平台上面的部署,需要确保从小规模部署到大规模的每一步都是安全的,最后才能部署到云平台。在整个部署的过程中需要检测所有的健康信号,包括各种资质、传感器信号、状态等,必须精确评估是否与部署相关。
因此,微软亚洲研究院提出了迁移学习方案和主动学习方案,即主动迁移学习异常检测ATAD。该方案在云平台上的挑战主要集中在难获得高质量的标签数据,所以微软亚洲研究院采用了迁移学习的方式将其他数据学到的知识转化为目标领域。并通过主动学习,让工程师给出不同的优先级,得到最好的学习效果。通过迁移学习和主动学习,其能够实现较好的效果。用少于0.1%的人工标注,得到了非常好的准确率。目前这一方案已经用于云平台中,达到了高效的准确度和召回率,且没有大的遗漏。
微软亚洲研究院首席研究员林庆维
在AIOps未来的研究方向上,微软亚洲研究院希望其能够更加自主化,帮助用户做出最优的决策,而不需要人工干预;再比如希望其能够更加主动化,不能等问题出现才想起来解决问题,应该在问题出现之前,就将其扼杀于萌芽状态;第三则是希望其能够更加通用,希望以后跨平台的AIOps应用,不仅是服务于云平台,而是服务于所有平台。