写点什么

华为云 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:204008
用户头像

发布了 39 篇内容, 共 11.0 次阅读, 收获喜欢 35 次。

关注

评论

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

架构实战营 - 写出外包学生管理系统的架构文档

huiwen

架构实战营

Java高手速成│实战:应用数据库和GUI开发产品销售管理软件(2)

TiAmo

数据库 Java、 JDBC

vivo 实时计算平台建设实践

vivo互联网技术

大数据 flink 实时计算

机器学习服务活体检测算法荣获CFCA权威安全认证

HarmonyOS SDK

HMS Core

Jupyter Notebook入门指南

京东科技开发者

前端 服务端 Server 多编程语言 企业号 1 月 PK 榜

时序数据库 TDengine 携手北京科技大学设计研究院,助力冶金工业智慧化

TDengine

数据库 tdengine 时序数据库

深度分析React源码中的合成事件

flyzz177

React

再快一点?Web 3动态内容如何加速?

Java全栈架构师

程序员 程序人生 Web 后端 架构师

软件测试 | 简历中应该如何描述才能体现出软技能的实力 ?

霍格沃兹测试开发学社

如何用弹出对话框实现登录页非空提示?

Towify

NFTScan 与 MintKit 达成战略合作伙伴,由 NFTScan 为其提供 NFT API 数据服务

NFT Research

NFT 数据基础设施

研运至简,创新无限!嘉为品牌VI全新升级

嘉为蓝鲸

自动化运维 嘉为蓝鲸 品牌升级

极盾科技CEO丁杨:让数据安全回归场景、业务和价值

极盾科技

数据安全

隐私计算技术开源的整体现状

京东科技开发者

开源 经验分享 隐私计算 隐私安全

语音社交App系统源码中语音厅App搭建之开宝箱游戏机制说明以及技术文档

山东布谷科技胡月

语音直播源码 语音社交软件 语音直播app 语音厅平台搭建 语音聊天APP源码

DevEco Studio新特性分享-跨语言调试,让调试更便捷高效

HarmonyOS开发者

HarmonyOS

中台KPI怎么设计?

博文视点Broadview

如何把照片变成“漫画脸”?一招教会你一键生成氛围感动漫头像

互联网民工阿强

图片 图片处理 动漫 漫画头像 ACGAN-动漫头像

AI将产生创富的第5次浪潮

felix

机器学习 模型开发

RocketMQ Compaction Topic的设计与实现

Apache RocketMQ

RocketMQ 消息队列

基于 EventBridge API Destination 构建 SaaS 集成实践方案

阿里巴巴云原生

阿里云 云原生 EventBridge

手写一个react,看透react运行机制

flyzz177

React

IOS技术分享| IOS快对讲调度场景实现

anyRTC开发者

音视频 呼叫邀请 快对讲 语音对讲 视频对讲

阿里巴巴内网Spring Cloud Alibaba 强势来袭,开创微服务的新时代

架构师之道

Java 微服务 架构师

小游戏引擎选型注意事项

FinFish

游戏 小游戏 小游戏引擎

深入React源码揭开渲染更新流程的面纱

flyzz177

React

如何导入本地数据?

Towify

高性能且小巧的脚本语言 LuaJIT

ooooooh灰灰

lua 后端 JIT 网关

中国北京|HICOOL 2023 全球创业大赛

科兴未来News

Hicool 海外 #双创赛事#

融云获 2022 中国技术先锋年度评选「中国技术品牌影响力企业」奖

融云 RongCloud

灵活高效又美丽,谈谈我们的产品体验升级思路

嘉为蓝鲸

自动化运维 嘉为蓝鲸 IT服务管理中心

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