在如今的云计算时代,计算的云化和分布式应用给运维工作带来了很大的挑战,让人海战术在运维面前失灵,所以基于算法和机器学习的智能运维(AIOps) 必将是业务运维场景下的大势所趋。业界有个说法,公有云最后的竞争是基于运维能力的综合竞争。现在各大公有云服务商也都在积极探索 AIOps,此次我们采访了华为云应用运维域专家,为我们揭秘华为云的智能运维实践。
华为云的运维技术演进
华为云很早就在实践智能运维了,包括最早的 IaaS 运维,以及近几年的 PaaS 运维、服务洞察。只是之前的叫法不是现在谈论的“智能运维”,而是智能监控、应用分析、智能分析、自动诊断与调优、自动化运维等,华为云的 AIOps 在 SRE 和云服务中都有应用和实践。
前几年,华为云主要聚焦在企业云、私有云、混合云等建设,运维能力建设围绕数据中心,在统一运维架构、运维研发化的基础上,重点发展运维的标准化、自动化和智能化。
2017 年华为 Cloud BU 成立,正式进入公有云市场。在这个阶段,SRE 在统一运维架构基础上,整合了各种运维工具,形成了公有云管理面的统一运维。与此同时 APM、AOM、CES 等云服务直接面向云租户提供应用运维能力。
华为云专家认为,传统运维和 AIOps 是紧密联系的,在数据分析层面二者也有些重叠区域,并且 AIOps 也依赖传统运维的数据基础、计算处理等。二者之间的区别主要体现在数据规模和实时性上。当云实体的规模扩大、应用栈的多样化、应用架构的容器化、微服务化后,运维对用户体验管理和业务高可用性越来越不可知性。而云服务对监测的实时性、反馈控制的及时性、故障预测、故障自愈等要求也是 AIOps 所擅长的。
如何使用 AI 利器
在华为云专家看来,针对不同的产品或者项目,构建 AIOps 所依赖的关键技术有所不同,比如企业资源故障预测项目与公有云上的应用性能监测服务就有比较大的区别。以广义的 APM 为 IT 运维的范围,一般涉及到以下关键点:
在华为云的实践中,AI 技术主要应用在以下几个方面:
上面几个方面涵盖了运维闭环模型:监测感知 – 分析洞察 – 优化控制。
以传统运维中最常见的挑战——告警风暴——为例,静态阈值、多段式组合阈值、基线化阈值等基于统计计算的方法都难以满足应用运维的要求了。另一方面,云化后的应用所涉及计算节点,服务 endpoint、指标等更多,不可能完全依靠人工来设置。这时候基于动态阈值或时序数据行为模式分析的 AI 方法就派上用场了。
所以 AI 技术首先适合用于复杂的场景中,尤其是各种可能组合数量远远超越了人力所能企及的范围,还比如复合因素下的趋势预测(磁盘寿命、性能指标、容量)、故障定界定位、根因分析等。
其次 AI 技术在一些时效性要求高的场景中得到应用,比如基于指标、日志、事件的告警。应用或者系统出现异常后,是需要第一时间通知到运维值守人员的。还比如云服务的弹性伸缩 (auto-scaling),是需要根据一些监测指标、服务模型、规则以及算法智能地及时做出适当调整动作。
除了中心化的 AI 技术应用外,数据采集端侧(Agent)的智能化也是一个重要发力领域,也包括 IoT 场景下的边缘节点(edge node)。在万物感知、万物互联、万物智能的趋势下,我们可以把训练好的模型发放到需要的 Agent 端。Agent 智能化可以解决端侧更高的响应实时性要求,减少数据上传的网络带宽消耗、存储成本、计算成本等。
下图是华为云面向租户的立体运维平台,实际上是一个基于应用运维生态的大解决方案。这种统一、开放的云运维平台可以支撑华为云的底座运维、上百种云服务的 SLA 保障和运维,帮助客户监测管理部署在华为公有云上的业务应用。
在运维工具和平台的构建过程中,华为云大量采用了开源项目,比如 ELK、调用链有关的 PinPoint、Zipkin、OpenTracing 等规范、StatsD 和 Prometheus 等数据接口规范、Spark、TensorFlow、MXNet 等。
数据的收集与处理
大数据是 AI 的黑土地,前提是数据量要足够多。华为云针对运维目的,主要收集下面这些性能数据:
这些数据根据自身特点,选择不同的存储方式,比如 Cassandra、HDFS、ElasticSearch、GaussDB 等。具体处理主要包括:
区别于以前的运维,当前把很多指标数据中的一些维度属性和 IaaS、PaaS 层的基础信息结合起来形成面向应用的元数据集,和传统的 CMDB 有些类似,但粒度更细。其目的是为面向应用的数据分析提供各种可能的“关系网”。
AIOps 落地之难点
AIOps 面临的技术挑战主要有大量数据的获取、结合专业领域知识的算法验证、多种算法组合应用、新方法的探索以及服务化的工程化难度。
有了数据后,针对特定问题域去验证或者创新算法就需要领域专家和算法专家通力合作,找到合适的方法或者方法组合是很有挑战性的。华为云在弹性伸缩算法、事务黑盒分析、基于异常检测的智能告警和调用链洞察分析等方面采用机器学习进行了探索。
AIOps:让 AI 成为得力的助手
尽管在一些子领域或者单点技术上 AIOps 获得了一些进展,运维域 AIOps 还有很大的空间有待发展,离真正做到无人值守、NoOps 还有很大的现实差距。比如复杂大系统中智能 RCA 分析、可信自愈能力、面向机器理解的无监督学习、智能化下沉到端侧等都有待业界共同努力。
华为云专家认为,IT 运维是个很大的范畴,完全不用人工运维,即无人值守只会存在某些特定的小场景下。而从整个系统来看,一定需要人来做更高阶的工作,参与者也不会只限于操作者或者管理员,还会涉及 DevOps、业务主管等。这是一个融合的世界,真正的有机系统,非黑即白的界线会越来越模糊,未来世界也一定是人主导,而不会是机器主宰的。在应用运维领域,人不会被 AI 简单取代,而是利用 AI 辅助人类做那些自己不擅长或者不愿意做的事情。
感谢张婵对本文的策划和审校。