从数字化到智能化,百度 SRE 数智免疫系统的演进和实践

1.    为什么 SRE 需要数智免疫系统?

2022 年 10 月,在 Gartner 公布的 2023 年十大战略技术趋势中提到了「数字免疫系统」的概念,旨在通过结合数据驱动的一系列手段来提高系统的弹性和稳定性。

在过去 2 年的时间里,百度基于该免疫能力的指导思想,实践落地了一套数字免疫系统,并在 AI 大模型能力的加持下逐渐向「数智免疫系统」转型。目前已覆盖厂内关键业务和重点产品,为稳定性保障方式带来了新的路径。

大型系统的风险来源多样,业务更替、系统迭代、人员流动等都有可能引入不稳定因素。随着微服务化带来的系统规模扩大和迭代效率提升,这一现象更为突出,百度内部 2021 年至 2022 年间有感 case 统计来看,存在「基础能力退化」和「能力缺失」现象的 case 占比增长了 153%。比如:

  • (感知能力缺失)已经给这些服务统一加上了标准化告警,但是不清楚为什么没有覆盖到本次的问题服务。
  • (隔离能力退化)服务所需的机房资源短期供给不足,所以临时用了别的机房资源导致了本次风险扩散。
  • (感知能力退化)服务做了一次日志结构升级,非预期导致之前的监控采集不到数据,所以没发现问题。

在内部复盘会议上,经常会出现上述类似的能力退化和缺失问题。同样,观察近 3年国内外规模性的故障案例亦是如此:

  • 2022、2023 年友商 C 端业务多地域多服务规模性问题,暴露出了隔离不足、拦截能力缺失、多服务耦合影响等问题。
  • 2024 年 CrowdStrike 的安全更新发布导致微软 Windows PC 全球范围大规模崩溃问题,也暴露出了验证能力缺失、分级发布能力退化等现象。

从上述内外部的 case 分析中不难发现,「能力退化」和「能力缺失」的问题一定会往复出现,如果没有及时识别、治理这些偶现的风险,则一定会最终相互作用引发规模性故障。

如今,业务、系统、技术的发展在继续加速,规模也在继续扩大。传统的人工筛查以及被动的质量保障方式(如 on call 模式),面对潜在风险问题时仍具有滞后性。我们需要进一步探索转被动为主动的新保障路径:发现退化、挖掘风险,建设长期可维护的质量保障方式。

从另一个角度来看,随着服务云原生化程度不断提高(基建、底层平台、技术栈的逐步统一),服务以及配套的基础能力的「同治性」也在不断提升,具备了数字化转型的基础。同时,近 2 年 AI 大模型的飞速发展也给智能化保障方式带来了新的思路,依托大模型构建可迭代的知识网络体系,让 AI 进一步辅助挖掘未知风险和指导能力建设,从而实现数字化向数智化的进化。

2.    百度 SRE 数智免疫系统的建设成果

线上系统可能的风险来源多种多样(如图 1),结合系统架构,我们从多维度建设了不同的保障能力(如图 2)。一方面我们需要持续保障已建设能力的有效性,另一方面也需要持续去挖掘潜在的风险问题(如能力缺失等)。

图片

图 1 风险来源视图

图片

图 2 能力保障分类图

因此,数智免疫系统期望结合数字化 + 智能化的方式,实现对已建设能力有效性识别,和对潜在风险的主动挖掘,以此持续保障线上的稳定性能力。在落地实践中,我们制定了 3 个推进阶段:

  • 推进数字化转型:期望刻画质量能力数字化描述,为后续可基于数字化数据进行识别、修复打下基础。(易识别)
  • 落地风险的识别:通过底层统一数仓和可编排的规则库,基于工程规则的方式,提供统一的识别、治理能力。(易治理)
  • 探索智能化路径:结合 AI 大模型和 RAG 能力,构建运维泛化知识体系。依托 AI 大模型 + RAG 代替工程规则进行风险挖掘,长期解决工程规则的滞后性和高维护成本问题。(易维护)

2023 年,我们重点推进第一阶段数字化转型的实践落地,以数字化的方式刻画了传统的质量保障能力。

2024 年,我们重点投入在基于工程规则的风险挖掘能力和产品化生态建设,通过引入统一数仓和可编排规则库的方式,不仅提供了开箱即用的基础通用策略,也同时支撑了用户的特性需求和拓展需求,降低了建设成本。

同时在 AI 潮流下,试点了基于 AI 大模型 + RAG 的风险挖掘方式,并在模块级容量保障方向上进行了落地。

图片

图 3 百度数智免疫系统登录界面

截止到当前:

  • 数字化数据已覆盖百度核心产品的监控告警、分级发布、容量感知、架构隔离和预案能力等 5 大方向,历史基础质量能力退化类 case 覆盖度 > 85%
  • 业务覆盖上支撑了各项关键业务,累计接入服务 20,000+
  • 通用质量规则覆盖厂内主流的监控平台、PaaS 平台、变更发布平台,天级识别 40,000+ 能力项;
  • 2023 ~ 2024 年在接入业务线累计识别和治理风险 5,000+ 项,对比 2021 ~2022 年,能力退化类 case 占比收敛了约 40%,监控感知、分级发布和架构隔离的质量能力风险从 10.2% 收敛到 3.2%。

3.    百度 SRE 数智免疫系统演进和实践

3.1.    阶段一:数字化转型,用数据刻画关键的能力场景

基于上文图 2 中的能力保障分类,并结合业界和百度内部业务的历史故障、系统风险、技术栈选型,我们优先选择了推进如下几类能力的数字化转型:预防能力(分级发布、架构隔离、容量感知)、发现能力(监控告警)、止损能力(操作预案)。

图片

图 4 数字化刻画举例

对能力进行数字化刻画,需要结合能力的生效方式、能力的使用场景、稳定性保障要求等多方面因素来实现数据的抽取,如:

监控告警:其数字化刻画的重点在识别告警的有效性和告警覆盖的完整性。

  • 告警有效性:主要刻画告警的数据源状态、告警的接收人触达通路、告警的屏蔽状态等;
  • 告警覆盖度:主要刻画告警的分类(包括人工规则分类和自动识别分类)。

通过对告警有效性和完备性两个方向的数字化刻画结果,进而可以识别出业务变更过程中的潜在风险风险,如:数据源无数据问题、数据断流问题、告警人为长时间屏蔽等。

分级发布:其数字化刻画的重点在描述常见的程序变更和数据变更要求。我们将分级发布的能力要求抽象为两类:一类是分级发布的流程要求,另一类是分级发布的对象要求。

  • 流程要求:主要刻画发布和部署阶段,如:发布顺序,发布范围,阶段间的间隔和检查等;
  • 对象要求:主要刻画发布对象状态,如:发布对象的完整性,发布对象的小流量阶段比例配置等。

通过对发布阶段和发布对象的数字刻画,进而可以识别出业务变更过程中的潜在风险问题,如:灰度阶段验证不充分,灰度比例过大,版本升级不完整等问题。

架构隔离:其数字化刻画的重点在描述服务间的连接关系和连接范围;

  • 连接关系:主要刻画实际网络连接关系,通过 eBPF 数据和网络链路配置进行挖掘;
  • 连接范围:主要刻画服务部署和网络连接关系的聚合情况,通过服务描述数据,确认服务间实际的逻辑域连接关系。

通过对连接关系和连接范围的数字刻画,可自动识别业务的架构拓扑,识别业务逻辑域中存在跨域访问的问题。辅助业务进行容量评估、评估风险隔离范围、强化单域内止损能力;

除上述场景外,我们也分别对容量方向中的应用级和系统级容量、止损预案的有效执行周期和执行结果等方向进行了数字化能力刻画。不同方向的数字化刻画结果,即可作为后续识别风险场景的有力数据源。

3.2.    阶段二:基于工程规则的风险识别

基于阶段一中对各项能力场景的数字化刻画结果,我们便可进一步使用一系列工程规则,通过组合使用数字化的刻画数据,来达成风险识别的目标。下面介绍几个实践的案例。

3.2.1.    案例一:识别告警失效问题

告警是问题感知的第一入口,告警失效会导致故障的影响加剧。实际运维中,影响告警状态的因素也较多,如配置变动、数据变动、人员变动等都可能导致告警的效果和触达不符合预期。

图片

图 5 告警有效和告警失效对比

图片

3.2.2.    案例二:识别变更发布中的灰度范围是否过大(爆炸半径是否可控)

灰度发布是线上变更中的常用方式之一,通过控制灰度的比例和范围,进而控制变更可能带来故障影响范围,限制爆炸半径。如果灰度比例过大,可能造成故障扩散,影响故障处置的效率。数字免疫通过对关键阶段进行数字化刻画完成风险识别,保障灰度发布有效且爆炸半径不扩散。

图片

图 6 灰度发布和爆炸半径控制

图片

3.2.3.    案例三:识别服务的架构隔离能力

分布式集群和架构隔离部署,是有效控制爆炸半径的常用方式之一。服务集群通过多地域部署,并在不同地域之间完全隔离(提供完整功能),可有效应对未知的故障影响,如机房断电、光纤断连等情况。如果不同域的服务存在互相访问的情况,则可能在故障场景下造成故障扩散,影响故障处置的效率。

图片

图 7 隔离失效导致故障扩散

图片

3.3.    阶段三:融合 AI 大模型的风险挖掘

随着企业数字化转型的深入,得益于数据的标准化,我们短期通过快速建设工程规则方式,针对大部分已知场景的风险进行了快速的覆盖识别,并低成本推广到了多业务线。然而,随着规则的规模扩大,我们逐渐发现 2 个问题:

  • 维护成本逐渐升高:随着工程规则的数量不断增加,梳理冗余规则和维护规则效果的成本也随之上涨;
  • 风险识别的局限性:工程规则主要面向有限的场景,以组合工程规则的方式来覆盖稳定性能力,会因缺乏一些全局视角的分析而出现盲区。

当前,随着 AI 的兴起,AI 大模型所具备的强大的泛化知识理解和推理能力,可以用于持续维护和管理运维知识和风险场景知识。借助 AI 大模型 + GraphRAG 的组合,我们可以将工程规则的实现转向由 AI 模型托管生成,并结合 GraphRAG 图检索和大语言模型的泛化总结能力进行场景化的风险分析。

图片

图 8  「工程规则 + 知识手段」体系协同模式

在融合 AI 能力的风险挖掘实践中,我们初期的重点工作在「知识整理」和「知识建图」2 个阶段:

知识整理:构建特定场景知识实体。构建的知识体系应当具备如下通用要求:

  • 实体化:知识可以被划分为独立的实体,每个实体包含特定的概念和原理,便于分类学习和掌握;
  • 层次性:知识具有不同的层次,从基础概念到高级理论,从通用知识到专家知识,学习者可以逐步深入;
  • 连贯性:知识之间可相互关联,形成连贯的知识网络,有助于记忆和应用。

因此,结合运维领域的知识特点以及云原生时代下的实体架构分层,我们引入了如下几个维度划分来构建知识结构,以云计算服务模型中不同层级的实体为对象,实现上述 3 个要求。

图片

图 9 知识体系层级图

知识建图:构建泛化的知识网络。「泛化知识网络」的构建需要具备如下要求:

  • 动态更新能力:泛化知识网络需要具备实时构建和动态更新能力来保证其应用结果的准确度;
  • 可交互性:泛化知识网络需要具备便捷的交互能力和输出结果可理解;
  • 可挖掘性:泛化知识网络不能只具备基础的知识检索能力,还需要具备泛化的知识综合应用能力。

因此,在构建知识网络的方案上,选择了 AI 大模型 +  GraphRAG 的组合形式:

  • 引入 AI 大模型,解决输入输出内容的文本语义化转换,辅助知识图谱的构建和完善;
  • 引入 GraphRAG 图构建的模式,理解结构化知识并构建关系型知识网络,提供动态更新、泛化能力强的知识挖掘的能力。

图片

图 10 知识构建和应用

图片

图 11 某业务的知识模块举例

4.    SRE 数智免疫系统的长期发展

数智免疫系统,本质上是对服务质量数据的一个规整聚类和理解,通过循环的识别、治理方式,保障业务质量的长期稳定。因此,数智免疫系统的长期发展:

  • 一方面,需要引入更丰富的质量关联数据,如:业务的故障数据、故障处置经验、人员能力建设等维度,通过不断累计的知识沉淀,来丰富免疫系统的风险识别和自愈能力,提升系统的可信度;
  • 另一方面,基于丰富的质量关联数据,可以在上层借助当前大模型的数据分析和整合能力,创建「智能医生」。基于免疫系统识别到的风险状态以及数字化评价体系给出的评价结果,向业务展示关键的风险问题和系统状态,并给出具备可行性的建设方案和历史建设经验。

数智免疫系统的应用只是一个开始,当前已建设的「关键质量能力」项,也只是质量能力长期保障的一部分。知识、信息等实时或非实时的数据,都需要随着业务的发展而更新,如此基于免疫能力的保障体系才可持续。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/76255.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

4月18日复盘

4月18日复盘 一、深度学习概述 ​ 传统机器学习算法依赖人工设计特征、提取特征,而深度学习依赖算法自动提取特征。深度学习模仿人类大脑的运行方式,从大量数据中学习特征,这也是深度学习被看做黑盒子、可解释性差的原因。 ​ 随着算力的提…

C++每日训练 Day 17:构建响应式加载动画与异步数据处理

📘 本篇目标是:在 GUI 信号机制基础上,构建一个完整的“点击按钮 → 显示加载动画 → 异步加载数据 → 显示结果”的响应式界面流程。通过协程挂起/恢复机制,实现清晰的异步逻辑,避免回调地狱。 🔁 回顾 Da…

PyTorch深度学习框架60天进阶学习计划 - 第45天:神经架构搜索(二)

PyTorch深度学习框架60天进阶学习计划 - 第45天:神经架构搜索(二) 第二部分:权重共享策略的计算效率优化 8. 权重共享的理论基础 权重共享策略的理论基础来自于多任务学习(Multi-Task Learning, MTL)和迁移学习(Transfer Learn…

深入理解分布式缓存 以及Redis 实现缓存更新通知方案

一、分布式缓存简介 1. 什么是分布式缓存 分布式缓存:指将应用系统和缓存组件进行分离的缓存机制,这样多个应用系统就可以共享一套缓存数据了,它的特点是共享缓存服务和可集群部署,为缓存系统提供了高可用的运行环境&#xff0c…

记录学习的第二十九天

还是力扣每日一题。 本来想着像昨天一样两个循环搞定的,就下面👇🏻 不过,结果肯定是超时啦,中等题是吧。 正确答案是上面的。 之后就做了ls题单第一部分,首先是定长滑窗问题 这种题都是有套路的&#xff0…

Win11关闭防火墙方法

网上讲的win11的方法都试过了,但是在实际使用过程中还是会显示有威胁杀掉原本要使用的程序,下面我介绍的这个方法亲测有效,必须百分百关掉防火墙 搜索安全中心打开Windows安全中心 打开病毒和威胁防护 点击管理设置 将设置中所有显示开的都…

几个常用的快速处理服务器命令和故障排查

1. 查看剩余的内存 free -m top //当然了还有top可以实时观测 显示剩余内存,以M为单位. 2. 查看剩余的空间 df -h 显示指定磁盘文件的可用空间。如果没有文件名被指定,则所有当前被挂载的文件系统的可用空间将被显示 3.找出大文件的常用方法 du --max-depth1 -h –输…

Spring MVC 全栈指南:RESTful 架构、核心注解与 JSON 实战解析

目录 RESTful API 设计规范Spring MVC 核心注解解析静态资源处理策略JSON 数据交互全解高频问题与最佳实践 一、RESTful API 设计规范 1.1 核心原则 原则说明示例 URI资源为中心URI 使用名词(复数形式)/users ✔️ /getUser ❌HTTP 方法语义化GET&…

探索 JavaScript 中的 Promise 高级用法与实战

在现代 Web 开发中,异步编程已成为不可或缺的一部分。JavaScript 作为 Web 开发的核心语言,提供了多种处理异步操作的方式,其中 Promise 对象因其简洁、强大的特性而备受青睐。本文将深入探讨 Promise 的高级用法,并结合实际案例&…

《软件设计师》复习笔记(14.1)——面向对象基本概念、分析设计测试

目录 一、面向对象基本概念 对象(Object) 类(Class) 抽象(Abstraction) 封装(Encapsulation) 继承(Inheritance) 多态(Polymorphism&#…

ubuntu22.04 安装有度即时通

1.官网下载deb的安装包 官网地址:有度客户端下载-有度 注意:这个网站的下载是有时间限制的,有时候无法下载 需要对应系统版本,否则无法使用 我之前使用了dpkg安装了一个旧版本,卸载使用以下命名行: 使用…

ValueError: model.embed_tokens.weight doesn‘t have any device set

ValueError: model.embed_tokens.weight doesn’t have any device set model.embed_tokens.weight 通常在深度学习框架(如 PyTorch)中使用,一般是在处理自然语言处理(NLP)任务时,用于指代模型中词嵌入层(Embedding layer)的权重参数。下面详细解释: 词嵌入层的作用 …

如何提高单元测试的覆盖率

一、定位未覆盖的代码 ​利用 IDEA 的覆盖率工具​: 右键测试类 → ​Run with Coverage,或使用 AltShiftF10(Windows)打开运行菜单选择覆盖率。​查看高亮标记​: ​绿色​:已覆盖代码行。​红色​&#x…

聚合直播-Simple Live-v1.7.7-全网直播平台能在一个软件上看完

聚合直播-Simple Live 链接:https://pan.xunlei.com/s/VOO7u3o4FNL_XA9VJ6l7KBNfA1?pwdyrau# 聚合直播-Simple Live-v1.7.7-全网直播平台能在一个软件上看完

三大等待和三大切换

三大等待 1、三大等待:等待的方式有三种:强制等待,隐性等待,显性等待。 1、强制等待:time.sleep(2),秒 优点:使用简单缺点:等待时间把握不准,容易造成时间浪费或者等待时…

使用Lombok @Builder 收参报错提示没有无参构造方法的原因与解决办法

使用Lombok Builder 收参报错提示没有无参构造方法的原因与解决办法 类上加了Builder之后接口接收前端传来的参数报错:(no Creators, like default constructor, exist): cannot deserialize from Object value (no delegate- or property-based Creator) 1.解决办法…

SAP 查找JOB进程ID

如何查找后台JOB的进程ID SM37勾选对于JOB

通过C# 将Excel表格转换为图片(JPG/ PNG)

Excel 表格可能会因为不同设备、不同软件版本或字体缺失等问题,导致格式错乱或数据显示异常。转换为图片后,能确保数据的排版、格式和外观始终保持一致,无论在何种设备或平台上查看,都能呈现出固定的样式,避免了因环境…

Langchain构建RAG对话应用

本文:关注 检索器与上下文的子链、父链;即检索器也需要上下文内容。 RAG是一种增强LLM知识的方法,通过引入额外的数据来实现。 实现思路:加载—》分割—》存储—》检索—》生成。 初始化 import os import bs4 from langchain.c…

关于模拟噪声分析的11个误区

目录 1. 降低电路中的电阻值总是能改善噪声性能 2. 所有噪声源的噪声频谱密度可以相加,带宽可以在最后计算时加以考虑 3. 手工计算时必须包括每一个噪声源 4. 应挑选噪声为ADC 1/10的ADC驱动器 5. 直流耦合电路中必须始终考虑1/f噪声 6. 因为1/f噪声随着频率降…