目前,微软云在世界五大洲的上千个数据中心里,部署了上千万台物理服务器,运行着上百万用户的应用和服务,其中包括 95%以上的《财富》500 强企业。微软云每年甚至每个月都要使用新的硬件,每天甚至每分钟都有新的软件更新部署到云上。
对于像微软云这样的规模庞大、高度复杂并承载大量客户应用的云计算系统,很难运用传统非智能的软件开发和运维技术进行高效开发、部署、运营和管理,解决这一问题的关键就是 AIOps。
什么是 AIOps
AIOps 一词由Gartner在 2017 年创造,其给出的定义是:
AIOps 平台利用大数据、现代机器学习和其他高级分析技术,通过主动、个性化和动态的洞察力直接和间接地增强 IT 运营(监控、自动化和服务台)能力。AIOps 平台支持同时使用多个数据源、数据收集方法、分析(实时和深度)技术和表示技术。
微软亚洲研究院对 AIOps 的研究来自于对软件领域的科研探索。2008 年左右,微软亚洲研究院成立了 Software Analytics Group(软件分析组),希望从数据驱动角度研究软件领域。在软件场景下最重要的问题有三个:运行系统问题、用户体验的问题和开发效率的问题。随着云计算成为运行软件的主要形式,其软件分析的焦点也集中到了云计算系统,并逐渐延伸出了云智能/AIOps 。
“AIOps 是一个交叉领域,涵盖了 AI、系统和工程知识,通过创新 AI、ML(机器学习)技术,提供高效设计、构建、运营大规模复杂的云服务。”微软亚洲研究院常务副院长、微软杰出首席科学家张冬梅在 1 月 13 日微软亚洲研究院“智能运维”媒体沟通会上表示。
张冬梅,微软亚洲研究院常务副院长、微软杰出首席科学家
AIOps 具体有哪些应用场景
张冬梅介绍,AIOps 主要包括服务/系统(AI for System)、工程(AI for DevOps)和客户(AI for Customer)三个方面。
“服务/系统”要求开发者能从运行的系统角度看问题,比如系统异常检测不只是找出出现问题的地方,最好还可以提前预警。
以硬盘故障预测为例,开发者可以通过分析已经发生改变的数据或状态,来预测出该磁盘是否有故障。这是机器学习领域的问题,系统在学习了大量硬盘的历史数据后,对照目前磁盘的状态,预测将来是否可以及时采取措施。此外,除了发生故障的硬盘,还需要考虑其邻近的磁盘情况。
“通常在机器学习里面不均衡的问题可能是 1:20、1:50 或 1:100,但在实际环境中的硬盘里是一比好几万。”微软亚洲研究院首席研究员林庆维说道。为此,微软亚洲研究院研发了邻域-时间注意力模型(NTAM)。该模型包含了邻域感知组件、时间组件、决策组件,在时间和空间上都能够捕捉更多的信息。林庆维表示,通过与过去 10 年、20 年最前沿的期刊或者会议上的论文方法对比,该模型从精确度和召回率方面都有很好的效果,预测能力很强。
林庆维,微软亚洲研究院首席研究员
“工程”项主要针对的是开发和运维人员的生产效率。比如出现问题时,快速恢复正常并不等于解决问题,真正问题的解决需要大量的检测、诊断工作,如何更快、更高效地完成这些工作就是一个问题。
部署通常从非常小的规模开始,然后逐步扩大规模,在确认每一步都安全后才能部署到云平台。整个部署过程中需要检测所有的健康信号,包括各种资质、传感器信号、状态等等。当任何一方面的问题出现时,开发人员首先会查看是不是某个部署问题导致的,同时根据部署做关联性排查。如果是部署方面出现的问题,那么该部署就会被立即停掉,然后回归到安全的系统中。
针对“开发/运维”方面的安全部署诊断问题,微软亚洲研究院提出了主动迁移学习异常检测(ATAD)方案。该方案通过迁移学习把从别的数据上学到的知识转化为目标领域,同时通过主动学习让工程师给出优先项,最后得到更好的学习效果。目前该方案已经直接用到了微软云平台中。不过,这个方案通常很难获得高质量的标签数据,所以需要工程师有非常强的见解才能作出判别。
最后,云平台系统主要是为客户提供服务,因此用户体验非常重要。
林庆维以智能虚拟机预配置为例子,介绍了微软亚洲研究院在这个方面所做的部分研究工作。云平台申请虚拟机需要时间,解决这个问题的方案之一便是预先装好软件和系统的配置,当用户有需求时可以直接用。但虚拟机池的容量有限,每种类似的机型不可能配置很多。那么,预测用户会配置什么类型的虚拟机可达到最优配置就是很好的解决方式。为此,微软亚洲研究院提出了一个预测和优化框架,对比此前 10 年、20 年在顶级期刊、会议上的算法,该框架的性能都达到最优。
尚处发展阶段
AIOps 是一个必然趋势。目前,微软亚洲研究院的 AIOps 研究成果已经应用到了微软 Azure、Skype、OneDrive、Office 365 等诸多在线服务中。
微软云计算与人工智能事业部首席数据科学家党映农介绍到,在与微软亚洲研究院的合作过程中,微软云已经在智能运维方面积累了很多重要的技术创新,包括云服务系统的智能化和管理的自动化、云开发和部署的智能化以及智能化客户响应等。另一方面,人工智能和机器学习技术也已经深度集成到了微软云的基础设施的管理软件站,包括智能监控、智能预测、智能修复等。
虽然 AIOps 十分重要,但目前仍只是处于发展阶段,距离自动化、自主化、通用化的实现还有很大的距离,大规模落地也需要一段时间。由于云平台非常复杂、规模又十分庞大,AIOps 的发展主要面临着以下挑战:
检测方面,面临着差异化需求、噪音数据、缺乏标注数据等挑战。
诊断方面,面临着服务依赖复杂、知识分散等问题。
预测方面,面临着系统演进速度快、各类别间高度不平衡等问题。
优化方面,面临着数据规模庞大、线束条件和权衡取舍复杂等问题。
林庆维介绍,微软亚洲研究院未来的 AIOps 研究方向将主要包括三个方面。首先是更加自动化、自主化。目前 AIOps 更多是给用户提供一定的建议和推荐,但是未来的 AIOps 希望能够自动地帮助用户作出最优决策,而不需要人工干预。其次是更加主动化。本质上讲就是防患于未然,不能等到问题出现了才想起来解决问题,应该将问题扼杀在萌芽状态。最后是更加通用化。以后跨平台的 AIOps 应用不仅是服务云平台,而是服务所有平台。
评论