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 数智免疫系统的长期发展
数智免疫系统,本质上是对服务质量数据的一个规整聚类和理解,通过循环的识别、治理方式,保障业务质量的长期稳定。因此,数智免疫系统的长期发展:
- 一方面,需要引入更丰富的质量关联数据,如:业务的故障数据、故障处置经验、人员能力建设等维度,通过不断累计的知识沉淀,来丰富免疫系统的风险识别和自愈能力,提升系统的可信度;
- 另一方面,基于丰富的质量关联数据,可以在上层借助当前大模型的数据分析和整合能力,创建「智能医生」。基于免疫系统识别到的风险状态以及数字化评价体系给出的评价结果,向业务展示关键的风险问题和系统状态,并给出具备可行性的建设方案和历史建设经验。
数智免疫系统的应用只是一个开始,当前已建设的「关键质量能力」项,也只是质量能力长期保障的一部分。知识、信息等实时或非实时的数据,都需要随着业务的发展而更新,如此基于免疫能力的保障体系才可持续。