从2020年开始,微软开始着手在云计算运营中引入AI技术,借此提高服务质量,而在微软Azure中了部署端到端预测和故障缓解服务Narya,便是策略中的一环。Narya能预测可能发生故障的节点,并自动采取缓解方案解决潜在故障风险,并通过收集数据,改进预测和缓解模型,现在Narya已经成为Azure智能基础设施的关键部分。

Narya是以《魔戒》中精灵三戒之一的火之戒命名,在故事中拥有能够抵抗支配、绝望和疲劳的力量,而Narya在Azure中,能预测和缓解Azure主机故障,并衡量其采取的措施所带来的影响,通过自动反馈循环,智能调整缓解措施。

微软提到,Narya已经通过微软通用机器学习和预测服务系统Resource Central平台,部署到全球的Azure运算集中,已被用于生产环境一年多,降低26%的虚拟机器中断事件,使得Azure整体工作负载更加稳定顺畅。

过去微软预测故障和缓解的方法,虽然也是采用机器学习技术,但只会根据预测选择固定的缓解措施,像是当某个硬件被标记为存在风险,则系统会通知在其上面执行工作负载的用户,并阻止新的工作分配给该节点,接着使用即时搬迁服务,尽可能移走所有虚拟机,过几天后待所有虚拟机停止运作,微软便会停止该节点进行修复。

这个过程微软看到一些可以改进的点,像是部分时候因为硬盘损坏等过于严重的故障,无法等待几天才停止或是重新部署虚拟机,而且很多时候,节点被标记为存在风险,但其实只是很小的问题,甚至可能是误报,强制搬迁用户的虚拟机器造成不必要的麻烦,因此微软认为,更好的做法是让预测更加灵活,并且需要评估每个行动切确对用户产生的影响。

微软依照这些需求设计了新系统Narya,在采取缓解措施时,会考虑多种可能的办法,而不是仅对存在风险的预测。

Narya的故障预测和缓解措施分为三个阶段,第一阶段是预测故障,Narya会遥测数据,来预测主机的硬件故障,除了采用基于规则的预测外,Narya还会使用机器学习方法来产生准确的预测。微软提到,整合机器学习模型,就可以进行更长时间的分析,分析比规则预测更多的信号和模式,因此能更早地预测故障。

Narya不采用固定的缓解策略,而会视情况选择一些小步骤,将这些小步骤组合成缓解措施,像是其中一种缓解措施可能是将节点标记为不可用,并且尝试保存内容进行核心软件重新启动,如果成功了便将节点重新标记为可用,如果失败了,便会执行即时搬迁,并对该节点进行诊断,当发现存在问题的硬件,便会送维修更换硬件。

Narya采用更加灵活的方式应对风险情况,而且使用A/B测试框架和增强学习框架,持续最佳化缓解措施,尽可能减少虚拟机器中断的情况。

在采取故障缓解措施后,Narya会收集新数据,评估用户影响,以便在Narya框架中的每个步骤,持续改进模型,Narya会自动进行这个评估工作,更新专家规则和机器学习模型,在之后的决策中,提供更好的缓解措施。

微软仍在持续改进Narya,除了要让Narya能够处理更多种类的硬件故障之外,也希望能整合更多的缓解措施,响应广泛的故障预测事件。