AI智能总结
洪鹏 bilibili基础架构部/稳定性开发负责人 l负责B站SRE稳定性体系平台建设l主导B站故障管理、混沌工程、多活管控平台的开发l目前专注于SLO体系的实践落地,并建设基于SLO的质量运营体系 SLO工程实践 1 目录 SLO质量运营 2 CONTENTS SLO价值提升:GOC体系 3 01 SLO工程实践 SLO工程实践-整体流程 SLO定义 •服 务 可 ⽤ 性 : ⽐ 如x x服 务 全 年 可 ⽤ 性> 9 9 . 9 9 %•服 务 延 时 : ⽐ 如p 9 9请 求< 2 0 0 m s•可 以 在 不 同 的 时 间 窗 ⼝ 上 定 义S L O,⽐ 如 ⼀ 个 ⽉ 或 ⼀ 个 季 度•获 得 关 键 的 利 益 相 关 者 认 可 和 批 准 SLO报警 •可 ⽤ 性 报 警 准 确 率 最 ⾼•多 消 耗 率 ( 错 误 率/ S L O基 准 错 误率) 报 警•多 时 间 窗 ⼝ SLI选择 仪表盘和报表 错误预算 •请 求 驱 动 型 : 可 ⽤ 率 、 延 时 、 吞 吐•数 据 驱 动 型 : 延 时 、 任 务 数 据 完 整 性•业 务 指 标 : 订 单 数 、 在 线 ⼈ 数 等•基 础 组 件 : 存 储 、 消 息 队 列 等 •S L I趋 势 图 、 错 误 量•S L I季 度 、 年 度 运 营 报 表•可 视 化 运 营 •基 于S L I和S L O, 得 出 时 间 窗 ⼝ 内的 允 许 错 误 预 算•时 间 内 错 误 预 算 消 耗 殆 尽 , 制 定 错误 预 算 执 ⾏ 策 略 SLO工程实践-产品概览 SLO工程实践-SLI SLI是整个SLO工程的基础 怎么选择合适的SLI? 单个SLI规范可具有多种实现方式 •质量•覆盖范围•实现成本 通常建议将SLI视为两个数字的⽐值:好事件的数量除以事件的总数 对用户重要服务能力的评估,与测量方式无关例如:接口在100ms内返回的比例 •状态码200的请求数/总请求数•小于100ms返回的请求数/总请求数•成功下单数/总下单数 •移动端上报•网关指标•服务指标、日志 选择SLI的原则 •直接体现出目标对象的稳定性•优先选择和用户体验强相关的指标 结合实际情况,多纬度、多指标 SLO工程实践-应用SLI 部分内网服务不过负载均衡,只通过负载均衡上的一条指标无法覆盖全部故障场景 实施过程中遇到的问题 整个系统架构按层级划分 •各语言框架上报指标不统一•少数应用没接入框架,自上报指标 SLB Metrics:SLB侧上报的指标数据•5xx错误量、QPS、延时、可用率 如何解决? APIGW Metrics:APIGW侧上报的指标数据•5xx错误量、QPS、延时、可用率 •每个框架独立模板,模板关联SLI•自定义SLI HTTP Server Metrics:应用HTTP Server上报的指标数据•-5xx错误量、QPS、延时、可用率 gRPC Server Metrics:应用HTTP Server上报的指标数据•-5xx错误量、QPS、延时、可用率 完整覆盖所有应用不可用的场景 SLO工程实践-核心场景SLI 应用的API是业务功能的直接体现,通过度量API的SLI就能反映出业务某个功能的情况 核心场景实施 核心场景制定 •梳理公司级核心业务,选择能代表业务功能的API•度量可用率、错误数、延时、吞吐 SLO工程实践-业务SLI 技术指标发现服务所有不可用问题,业务指标补位核心场景(逻辑)异常 常见业务指标异常导致的线上case •用户频繁掉登录,最后发现是APP上误踢登录•用户充值失败,排查后发现是业务逻辑BUG•..... 业务指标度量方法 大数据流式实时计算 •APP:DAU、PV、PCU等•服务端:发送弹幕、评论、登录、动态等 数据库Binlog订阅 •直 播 营 收 、 消 费•电 商 订 单•用 户 支 付 SLO工程实践-组件SLI 服务的可用性大部分强依赖中间件或底层基础设施的稳定性,组件异常通常导致线上大规模业务故障 组件SLI类型 组件类型 流量接入 •可用率•延时•偏离度(基线/偏离值) •DCDN、SLB、APIGW存储•MySQL、Redis、KV流水线•消息队列、离线任务 SLO工程实践-SLO 定义: Service Level Objective(服务等级目标) 重要程度 •指定了服务可靠性的目标水平,是衡量可靠性的工具•错误预算是平衡可靠性和其他工程工作的工具•SLO对SRE工作的开展有指导性意义,没有SLO,就没有SRE 时间窗口选择,滚动窗口还是自然窗口? •滚动窗口与用户体验更加接近(例如过去30天),四个星期的滚动窗口是一个很好的通用间隔•自然窗口与业务工作计划更加紧密集合(一个月第一天到第二月第一天)•滚动窗口+自然窗口 目标怎么制定 •基于时间窗口的历史周期数据计算出推荐值•SRE和产品研发共同制定,并不断优化改进 G O P S全 球 运 维 大 会2 0 2 3 ·上 海 站 SLO工程实践-SLO 错误预算 燃烧率 •错误预算的消耗速度•燃烧率=当前错误率/基准错误率(1-SLO)•消耗速率越高,越严重 •用于测量实际性能和预期性能之间的差异•对风险识别、故障定级和稳定性决策至关重要•会按照滚动窗口进行更新 案例 99.9%的SLO,30d窗口的错误预算,基准错误率:0.1%,此时燃烧率为1 当错误率达到1%,燃烧率为10,只需要3d消耗完全部预算 SLO工程实践-告警 1⼩ 时 消 耗 掉 当 ⽉3 6 h的 错 误 预 算 多 次 消 耗 率 报 警 严 重 故 障 :1⼩ 时 消 耗 ⽉ 度2%( 1 4 . 4 h )的预 算 消 耗 , 发 出 紧 急 报 警轻 微 故 障 :6⼩ 时 消 耗 ⽉ 度5%( 3 6 h )的错 误 预 算 , 发 出 紧 急 报 警兜 底 策 略 :3天 消 耗 ⽉ 度1 0%( 3 d )的 预 算 ,发 出 故 障 ⼯ 单 S L O低 于 阈 值1 0分 钟 后 报 警 •服 务0 .2%不 可 ⽤ 时1 0分 钟 发 出 报 警•服 务1 0 0 %不 可 ⽤ 时 也 在1 0分 钟 后 发 出报 警•报 警 灵 敏 度 跟 服 务 错 误 率 ⽆ 关 G O P S全 球 运 维 大 会2 0 2 3 ·上 海 站 SLO工程实践-告警 告警触达 基于错误预算燃烧率的告警 •企微卡片•群事件协同 快速消耗(SLO=99.99%,10分钟平均可用率<99.9%) •燃烧率:0.1/(1-SLO)=10•10分钟消耗了100分钟的错误预算发出告警,需要立即接入处理 慢速消耗 •一天平均可用率<SLO,消耗速率1•非紧急事件,但需要进行人工干预,通过创建事件单的形式进行追踪 02 SLO质量运营 传统质量运营vs SLO驱动 SLO驱动 传统运营 •技术支持:添加报警(系统、进程、业务)•确定实现方式:应用Metrics,日志•各业务自定义指标,无统一规范•NOC 7*24盯盘,故障通告,应急处理 •SRE/研发统一SLI制定标准•统一数据采集、计算、聚合、展示•SLO告警,群事件协同处理•通过错误预算指导稳定性改进方向 采用SLO进行质量运营,技术驱动,覆盖范围广,成本更低,人效更高 质量运营-SLO报表 •季、半年、全年错误预算消耗统计 G O P S全 球 运 维 大 会2 0 2 3 ·上 海 站 质量运营-覆盖度 内部落地覆盖范围 •已全部覆盖主站、直播、电商、推荐、搜索、广告等核心业务 如何保证覆盖率? •流量接入层:新接入应用主动创建•应用层:新应用订阅CD平台变更事件存量应用定期巡检指标是否已实现•每周巡检一级组织下SLO覆盖情况,生成运营报表•未覆盖应用SRE跟进确认处理 质量运营-数据开放赋能 变更前 数据扩展变更平台,安全变更 •SLI指标预检 •发布平台•多活切量观测•混沌工程稳态检测 变更中 •新旧版本SLI指标展示•发布阻断 G O P S全 球 运 维 大 会2 0 2 3 ·上 海 站 03 SLO价值提升-GOC体系 GOC体系 GOC: GlobalOperationsCenter 目标 定位 •防止能预见的问题•快速恢复不能预防的问题•不再重复已发生的问题 •管理生产环境所有问题•打通监控、发现、通告、快速恢复、事后复盘•对故障全生命周期管控 GOC体系-故障发现 S L O告 警 •L 0、L 1服 务 可 用 率 严 重 下 跌•业 务 下 的 核 心 场 景 可 用 率 严 重 下 跌 •订 单 数 、 直 播 在 线 人 数 、 弹 幕 量业 务K P I 客 情 舆 情 •客 服 反 馈•微 博 舆 情 GOC体系-故障预定义 •应用、场景多维度,多指标类型•基于SLO告警多场景组合编排 故障场景定义 •设置应急等级•不同应用等级对应不同的响应时间,应急流程 故障预定级 •同业务抑制•故障中业务新告警协同群更新•一键静默 故障抑制 GOC体系-故障应急协同 故 障 发 生 时 故 障 恢 复 后 故 障 处 理 中 •故障预定级•确定故障范围,影响面•一键拉群,自动故障通告 •事故定级定损,复盘总结•待办跟进、验收•故障演练 GOC体系-故障定位 故 障 定 位 根 因 定 位 故 障 定 界 •全网可用性大盘实时刷新•故障影响范围一目了然•异常卡片点击下钻具体业务 G O P S全 球 运 维 大 会2 0 2 3 ·上 海 站 GOC体系-故障快恢 容 量 管 理 故 障 ⾃ 愈 多 活 建 设 预 案 管 理 •宕 机 自 动 报 修•故 障 节 点 自 动 剔 除•f a i l o v e r, 主 从 切 换 •限 流 阈 值 、 降 级 策 略•切 量 、 变 更 快 速 回 滚•定 期 演 练 , 确 保s o p时 效 性 •流 量 接 入 层•数 据 访 问 、 数 据 存 储•消 息 队 列•多 活 管 控 •H PA弹 性 扩 缩 容•b b r自 适 应 限 流•集 群 总 容 量•单 应 用 容 量 开放运维联盟高效运维社区DevOps时代 荣誉出品 想第一时间看到高效运维社区的新动态吗?