2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

华为云 AIOps 实践全面解析

  • 2018-08-30
  • 本文字数:3178 字

    阅读完需:约 10 分钟

在如今的云计算时代,计算的云化和分布式应用给运维工作带来了很大的挑战,让人海战术在运维面前失灵,所以基于算法和机器学习的智能运维(AIOps) 必将是业务运维场景下的大势所趋。业界有个说法,公有云最后的竞争是基于运维能力的综合竞争。现在各大公有云服务商也都在积极探索 AIOps,此次我们采访了华为云应用运维域专家,为我们揭秘华为云的智能运维实践。

华为云的运维技术演进

华为云很早就在实践智能运维了,包括最早的 IaaS 运维,以及近几年的 PaaS 运维、服务洞察。只是之前的叫法不是现在谈论的“智能运维”,而是智能监控、应用分析、智能分析、自动诊断与调优、自动化运维等,华为云的 AIOps 在 SRE 和云服务中都有应用和实践。

前几年,华为云主要聚焦在企业云、私有云、混合云等建设,运维能力建设围绕数据中心,在统一运维架构、运维研发化的基础上,重点发展运维的标准化、自动化和智能化。

2017 年华为 Cloud BU 成立,正式进入公有云市场。在这个阶段,SRE 在统一运维架构基础上,整合了各种运维工具,形成了公有云管理面的统一运维。与此同时 APM、AOM、CES 等云服务直接面向云租户提供应用运维能力。

华为云专家认为,传统运维和 AIOps 是紧密联系的,在数据分析层面二者也有些重叠区域,并且 AIOps 也依赖传统运维的数据基础、计算处理等。二者之间的区别主要体现在数据规模和实时性上。当云实体的规模扩大、应用栈的多样化、应用架构的容器化、微服务化后,运维对用户体验管理和业务高可用性越来越不可知性。而云服务对监测的实时性、反馈控制的及时性、故障预测、故障自愈等要求也是 AIOps 所擅长的。

如何使用 AI 利器

在华为云专家看来,针对不同的产品或者项目,构建 AIOps 所依赖的关键技术有所不同,比如企业资源故障预测项目与公有云上的应用性能监测服务就有比较大的区别。以广义的 APM 为 IT 运维的范围,一般涉及到以下关键点:

  • 监测对象的完整建模:各层物理实体、虚拟实体与应用服务的映射关系;
  • 监测数据的采集与预处理:比如元数据是否完备,海量数据的高效访问与扩展等;
  • 子领域的算法选择:合理划分出问题域的边界,结合领域知识筛选或设计出合适的算法,并予与验证。

在华为云的实践中,AI 技术主要应用在以下几个方面:

  • 预测的智能化
  • 诊断的智能化
  • 自愈的智能化
  • Agent 的智能化

上面几个方面涵盖了运维闭环模型:监测感知 – 分析洞察 – 优化控制。

以传统运维中最常见的挑战——告警风暴——为例,静态阈值、多段式组合阈值、基线化阈值等基于统计计算的方法都难以满足应用运维的要求了。另一方面,云化后的应用所涉及计算节点,服务 endpoint、指标等更多,不可能完全依靠人工来设置。这时候基于动态阈值或时序数据行为模式分析的 AI 方法就派上用场了。

所以 AI 技术首先适合用于复杂的场景中,尤其是各种可能组合数量远远超越了人力所能企及的范围,还比如复合因素下的趋势预测(磁盘寿命、性能指标、容量)、故障定界定位、根因分析等。

其次 AI 技术在一些时效性要求高的场景中得到应用,比如基于指标、日志、事件的告警。应用或者系统出现异常后,是需要第一时间通知到运维值守人员的。还比如云服务的弹性伸缩 (auto-scaling),是需要根据一些监测指标、服务模型、规则以及算法智能地及时做出适当调整动作。

除了中心化的 AI 技术应用外,数据采集端侧(Agent)的智能化也是一个重要发力领域,也包括 IoT 场景下的边缘节点(edge node)。在万物感知、万物互联、万物智能的趋势下,我们可以把训练好的模型发放到需要的 Agent 端。Agent 智能化可以解决端侧更高的响应实时性要求,减少数据上传的网络带宽消耗、存储成本、计算成本等。

下图是华为云面向租户的立体运维平台,实际上是一个基于应用运维生态的大解决方案。这种统一、开放的云运维平台可以支撑华为云的底座运维、上百种云服务的 SLA 保障和运维,帮助客户监测管理部署在华为公有云上的业务应用。

在运维工具和平台的构建过程中,华为云大量采用了开源项目,比如 ELK、调用链有关的 PinPoint、Zipkin、OpenTracing 等规范、StatsD 和 Prometheus 等数据接口规范、Spark、TensorFlow、MXNet 等。

数据的收集与处理

大数据是 AI 的黑土地,前提是数据量要足够多。华为云针对运维目的,主要收集下面这些性能数据:

  • 指标数据 (metrics):既有 IaaS 层资源指标,也有 PaaS 层应用资源指标,客户所用云服务业务指标、客户业务自定义指标 (由客户根据自身需求主动上报)。
  • 日志数据 (logs):客户指定的业务和各种中间件的运行日志
  • 调用链数据 (traces):客户通过非侵入式方法获得的调用链数据,或者客户开发应用在代码中引入 SDK 或者直接上报的调用链数据。
  • 事件及告警 (events&alerts):客户应用主动上报的各种事件和直接告警信息,还有根据预定义规则产生的事件和告警。
  • 网络包数据 (packets):主要是虚拟网络、容器网络中面向应用的网络性能数据。

这些数据根据自身特点,选择不同的存储方式,比如 Cassandra、HDFS、ElasticSearch、GaussDB 等。具体处理主要包括:

  • 流式计算:主要用于指标、日志的告警,调用链分析;
  • 离线计算:特定时间周期内的聚合计算、关联分析、模型训练等;
  • 内存计算:为部分实时性要求高的算法所用。

区别于以前的运维,当前把很多指标数据中的一些维度属性和 IaaS、PaaS 层的基础信息结合起来形成面向应用的元数据集,和传统的 CMDB 有些类似,但粒度更细。其目的是为面向应用的数据分析提供各种可能的“关系网”。

AIOps 落地之难点

AIOps 面临的技术挑战主要有大量数据的获取、结合专业领域知识的算法验证、多种算法组合应用、新方法的探索以及服务化的工程化难度。

有了数据后,针对特定问题域去验证或者创新算法就需要领域专家和算法专家通力合作,找到合适的方法或者方法组合是很有挑战性的。华为云在弹性伸缩算法、事务黑盒分析、基于异常检测的智能告警和调用链洞察分析等方面采用机器学习进行了探索。

  • 面向应用 SLA 实现容器的弹性伸缩,除了支持指标预定义条件的 scaling 外,还研究实现了基于强化机器学习算法的 Auto-Scaling,为复杂的大规模应用提供了更智能选择。
  • 在利用网络包分析推导应用调用关系及性能的 BlackBox 分析领域,经过理论分析和原型推导验证,华为云尝试过很多创新,最后利用 Hierarchical Clustering 实现了服务间的因果路径推导,准确率基本达到了 90~95% 以上。分析结果以传统应用拓扑数据格式输出,展示效果近似于 Whitebox 方法得到的应用拓扑,可以感知整个应用的性能态势和识别性能瓶颈,对一些拥有 legacy IT 资产的客户监测需求特别适用。
  • 调用链是云上应用性能诊断的重要一环。从调用链中先解析 feature,利用聚类方法发现模式,针对每类事务做分钟级聚合,结合移位环算法实现 10 分钟的统计聚合,最后实现对事务的“好”与“坏”的智能判断。Dashboard 上采用 heat map 和 histogram 形式予以展示和引导,提供与人友好的应用性能直观洞察能力。

AIOps:让 AI 成为得力的助手

尽管在一些子领域或者单点技术上 AIOps 获得了一些进展,运维域 AIOps 还有很大的空间有待发展,离真正做到无人值守、NoOps 还有很大的现实差距。比如复杂大系统中智能 RCA 分析、可信自愈能力、面向机器理解的无监督学习、智能化下沉到端侧等都有待业界共同努力。

华为云专家认为,IT 运维是个很大的范畴,完全不用人工运维,即无人值守只会存在某些特定的小场景下。而从整个系统来看,一定需要人来做更高阶的工作,参与者也不会只限于操作者或者管理员,还会涉及 DevOps、业务主管等。这是一个融合的世界,真正的有机系统,非黑即白的界线会越来越模糊,未来世界也一定是人主导,而不会是机器主宰的。在应用运维领域,人不会被 AI 简单取代,而是利用 AI 辅助人类做那些自己不擅长或者不愿意做的事情。

感谢张婵对本文的策划和审校。

2018-08-30 18:204763
用户头像

发布了 40 篇内容, 共 12.9 次阅读, 收获喜欢 36 次。

关注

评论

发布
暂无评论
发现更多内容

明道云携手衡石科技共建企业应用数据分析联合解决方案

明道云

细说react源码中的合成事件

flyzz177

React

AH协议

穿过生命散发芬芳

12月月更 AH协议

KCL 与其他 Kubernetes 配置管理工具的异同 - Kustomize 篇 [一个自研编程语言能做什么?(系列 2)]

Peefy

开发者 工具 编程语言 Kubernetes Serverless #DevOps

明道云联合契约锁共建人事场景电子签约解决方案

明道云

用javascript分类刷leetcode23.并查集(图文视频讲解)

js2030code

JavaScript LeetCode

从vivo的创新方法论中,读懂高端突破的“因果”

脑极体

Linux RT 进程引发内核频繁卡死的优化方案

火山引擎边缘云

云计算 Linux 云原生 边缘计算 火山引擎边缘计算

React Context源码是怎么实现的呢

flyzz177

React

前端leetcde算法面试套路之堆

js2030code

JavaScript LeetCode

通过WSL2运行GUI程序

吴脑的键客

WSL2 GUI

聊聊产品中的状态机设计

产品海豚湾

产品经理 产品设计 产品开发 需求分析 主业务流程梳理

React源码分析1-jsx转换及React.createElement

flyzz177

React

2022-12-15:寻找用户推荐人。写一个查询语句,返回一个客户列表,列表中客户的推荐人的编号都 不是 2。 对于示例数据,结果为: +------+ | name | +------+ | Wil

福大大架构师每日一题

数据库· 福大大

深入react源码看setState究竟做了什么?

flyzz177

React

React源码分析(三):useState,useReducer

flyzz177

React

chatGPT的爆火,是计算机行业这次真的“饱和”了?

千锋IT教育

【从零开始学爬虫】采集收视率排行数据

前嗅大数据

大数据 数据采集 爬虫软件 爬虫教程 数据采集教程

2022年的各大平台小游戏生态发展到哪一步了?

FN0

游戏开发 小游戏开发 小程序游戏开发

js事件循环与macro&micro任务队列-前端面试进阶

loveX001

JavaScript

5分钟带你彻底掌握async底层实现原理!

千锋IT教育

零代码平台在政府智慧城市领域的应用

明道云

极客时间运维进阶训练营第八周作业

9527

前端leetcde算法面试套路之回溯

js2030code

JavaScript LeetCode

js异步编程面试题你能答上来几道

loveX001

JavaScript

阿里前端常考面试题集锦

loveX001

JavaScript

2022全球边缘计算大会,火山引擎荣获“优质边缘云服务提供商”称号

火山引擎边缘云

云原生 CDN 边缘计算 边云协同 火山引擎边缘计算

React源码分析(二)渲染机制

flyzz177

React

openEuler 倡议建立 eBPF 软件发布标准

openEuler

开源 云原生 操作系统 内核 ebpf

低代码实现探索(五十四)低代码的描述文本

零道云-混合式低代码平台

架构实战 - 模块3作业

mm

学生管理系统架构 #架构实战营

华为云AIOps实践全面解析_DevOps & 平台工程_华为云_InfoQ精选文章