百度春晚极限压力场景下的运维解决方案

文字内容
1. 百度春晚极限压力场景下的 运维解决方案 BAIDU SRE
4. 春晚的活动是一场大型战役 支撑 依赖 运维保障中的部分工作介绍 健全的技术体系 活 动 设 计 压测 CDN+IDC 接入/调度 预案 业务架构 账号 资 源 APP端 存储 DB 活动架构 支付 风控 AI 监控 安全 指挥 虚拟化, 隔离,混部,PaaS,调度 配置 服务器+网络+带宽 项目 p 流量和接入 p 资源弹性供给 p 压测和预案
5. 那种力量 -春晚流量与接入 BAIDU SRE:陈曦洋(Az)
6. 对那种力量一无所知 小时候 大学 18年初 18年底
7. 对那种力量一无所知 小时候 大学 18年初 18年底
8. 对那种力量一无所知 小时候 大学 18年初 18年底
9. 对那种力量一无所知 小时候 大学 18年初 18年底
10. 直面那种力量 历史分析 经验 准备 双十一 VS 春晚 时间 几个月 结果 过去几届春晚大都有夯机 宿命? 必然 夯机 1月初,接到任务,距离春节还有一个月
11. 直面那种力量 历史分析 经验 准备 时间 结果 优秀经验 双十一 VS 春晚 几个月 过去几届春晚大都有夯机 重点改进 n n n n n 资源预载 逻辑前置 多层保护 账户压力 … 结合 架构初步设计 压力估计 当前架构 活动设计 改进成本 资源供给 春晚架构
12. 直面那种力量 我爹常说,习武之人有三个 阶段: 见自己, 见天地, 见众生。 -宫二《一代宗师》 在计算和预测过程中 我们换下顺序, 见天地 见自己 见众生
13. 计算和预测 春晚和春节的力量 流量模型影响 见天地 地理分布影响 活动流量模型 日常流量模型 春节迁徙加春晚的影响力 春晚力场 时间 广东省 1->6 空间 四川省 7->1 人群 日pv 5w~8W 1亿dau, 假设人均5pv, ,亿∗. 峰值QPS ≈ ≈5~8W QPS 峰值QPS ≈ ./~01 如果一天的pv在60秒释放 .亿 峰值QPS ≈ 23 =833W 1亿dau的app≠能扛住春晚的流量 需要有100倍的服务器? 带宽,短信,服务器都没有办法买到你需求的 有钱也买不到,且不可能去花这么多钱。 流量怎么调度? 外部服务影响 apk的瞬间下载量大 拖垮市场 or 阻塞用户带宽? 市场会先夯机?
14. 计算和预测 细节 见自己 合理资源需求的产出过程 压测/估算 原始需求 可靠性需求 合理需求 架构改进 产品设计 APP下载 APP启动 活动阶段一 主资源加载 主活动请求 子活动资源加载 启动并发请求 网络 端上拦截 域名黑洞 接入黑洞 接入多级平滑限流 800字节的证书 连接/会话复用 资源供给需求 可以减少压力 也可以有数十倍的数据 3-5个请求 优化粒度为1KB/1个请求 1000+更新的数据文档 业务 热启请求控制 冷启请求控制 下发请求控制 服务限流 APP版本依赖 每天分析收敛数据
15. 计算和预测 细节 见自己 合理资源需求的产出过程 压测/估算 原始需求 可靠性需求 合理需求 资源供给需求 架构改进 产品设计 APP下载 资源复用 压缩 APP启动 活动阶段一 主资源加载 主活动请求 子活动资源加载 数MB 小程序 打包 预下发 依赖 封板 拆包 版本管理 APP版本依赖 300-600KB*N% 封板非常晚
16. 计算和预测 用户 见众生 任何周期函数,都可以看作是不同振幅,不同相位正弦波(频率为基频整数倍)的叠加 互动活动的峰值,也可以看作每一个个体的离散信号的叠加。 反向 推导 正向 预测 – 鲁迅 傅立叶 易 各家的数据差别很大->设计->后端压力 难 用户习惯,收视情况,延迟,口播,活动设计,app启动速度都有关系。 预热活动的曲线也是不够准确的。 怎么保证足够的稳定性? 在技术和成本控制范围内,减少不合理需求,增大容量,增大弹性,容纳足够大的用户请求,减小系统崩溃的概率。 我们计算了较宽范围的各项数据的结果,并做了充足的准备。 既然见不了众生,还需要朝着宗师努力 ^ ^
17. 执行 架构,组织,信念和人 流量漏斗模型 架构 百度APP 资源预载 网络层限流 故障退避 - 接入层 - 网络层限流 K-KW级别平滑分级请求限流 百度APP端 硬件 软件转发 春晚活动服务 - 弹性伸缩, 秒级干预和恢复 搜索、Feed业务 - 保护 弹性降级 组织和人 项目 组织 定期沟通 项目拆分 难题攻关 跨体系 协作 信任,主动承担 专项团队,合理分工 召之能来,来之能战 权责 不拘泥角色,非职权影响力 信念 用尽全力,有无可阻挡的信念 人 我要战! 休假?结婚?国外的旅行? 活动服务 业务
18. 执行 春晚48小时内紧急状况 48小时 切换至春晚接入集群时,异常流量打满旧集群入口 12小时 上午的预热活动时,发现请求数远大于预期。 春晚 开播 +1小时 春晚过程中,应用市场都挂了。 +2小时 口播延迟。
19. 复盘 给大型app的建议 我们见到了春晚的力量,不再一无所知 我们还见到了三种力量 组织 信念 技术积累 有了这些力量,如果有足够的时间 我们甚至可以做到近乎0成本的完成春晚架构的准备工作 所以对于想上春晚的产品,我们有如下的建议
20. 复盘 给大型app的建议 活动准备 预留足够的准备时间 前几项准备的越好,准备的时间就可以越短, 准备的花费也就越少 移动端能力 接入架构 业务架构 统一的网络层 前置+PaaS/Serverless 弹性 具备统一的预载能力 具备定时拦截能力 减少请求开销,制定请求规范。 考虑边缘网络节点,cdn,MEC 支持https的卸载和无级限流 规划接入方案,缩减域名 具备大规模扩容能力 具备弹性降级能力 账号体系的能力尤其重要 基础研发投入 保持一定比例持续投入 面向未来和场景化的理想方案进行 同时解决用户体验的问题(97-99-99.5)
21. 服务混部与弹性供给 BAIDU SRE 许霞(shawnatzju)
22. 大规模活动资源需求模式 正常业务 接入系统 ↑2倍 活动业务 ↑百倍 接入系统 搜索系统 推荐系统 商业系统 需要有100倍的服务器? 用户系统 一周设计 一周到位 两周压测 带宽,短信,服务器都没有办法买到你需求的 有钱也买不到,且不可能去花这么多钱。 内部全混部集群 流转支持 小规模 采购提前
23. 服务混部调度 国内最大的全混部集群 在线服务 S1 S2 Stable S3 离线作业 Task BestEffort Task Task Task Task Task Task 离线计算 (Normandy) ToB PaaS-scheduler Matrix Matrix Watch-Dog 在线业务 (PaaS-scheduler) N-Agent(TM/RM/AFS DN) Matrix 统一的底层虚拟化框架,数十万规模的全混部集群
24. 服务混部调度 全混部模式支持极限压力 “每台服务器都是活动资源” “面向资源的接入、部署与伸缩设计” BE模式:原业务服务保留,春晚服务提前进场 弹性伸缩:围绕资源布局,建设弹性伸缩能力 优势: • 灵活,弹性,高效,对业务无侵入式影响 • 可提前进场,可通过流量控制满足压测 劣势: • 原服务保留现场,带来OOM风险 伸缩效率: • 全量预部署,快速注册生效 考虑内网与入口: • 联动内外网拓扑、使用率,精准规划服务部 署与互联逻辑 资源画像加权调度 隔离体系分级保障 带宽规模精准计算 局部伸缩应对未知
25. 服务混部调度 海量集群应对亿级别用户 “每台服务器都是活动资源” 在线业务 调度域 离线计算 调度域 ToB 调度域 QuotaSize=0, Priority=BE total total 春晚 Task 春 晚 T A S k 业务执行降级 used 活动后 request 流量降低,服务退场 used request 压测/活动前 Matrix Matrix Matrix 活动前2周 活动中
26. 服务混部调度 局部压测画像,加权调度 在线业务 调度域 离线计算 调度域 ToB 调度域 Matrix Matrix Matrix ML training Search indexs Ecom Services ecom budgets 春 晚 T A S k ToB backup 压测 Index build 春 晚 T A S k 春 晚 T A S k 画像: • 既定服务降级策略演练 • 历史春晚访问特征重放 加权: • 实例加权分流设计
27. 内网传输的保障 常规的服务多活设计 全国用户 华 东 接入系统 DC1 接入系统 DC2 业务AZ (华东) (Available Zone) DC 1 DC 2 接入系统 DC3 接入系统 DC4 业务AZ-2 (华南) DC 3 DC 4 华 南
28. 内网传输的保障 动态全混部对多活的影响 全国用户 华 东 接入系统 DC1 接入系统 DC2 业务AZ (华东) (Available Zone) 华 北 接入系统 DC3 接入系统 DC4 华 南 业务AZ-2 (华南) DC 1 DC 2 DC 3 DC 4 DC 5 DC 6 DC 7 DC 8 华 北
29. 内网传输的保障 合理部署设计 + 分级保障 全国用户 华 东 接入系统 DC1 接入系统 DC2 业务AZ (华东) (Available Zone) 华 北 接入系统 DC3 接入系统 DC4 华 南 业务AZ-2 (华南) DC 1 DC2 DC 3 DC4 DC 5 DC6 DC 7 DC8 全混部带来内网交互风险: • IDC:In , Out • 链路:Region内、region间 “面向资源布局的部署与接入设计” 华 北 • 用户接入设计 • 运营商、地域、IDC、带宽 • 业务AZ设计 • DC重组合 + 跨Region QoS • 模块伸缩设计 • 全量image,动态注册预案
30. 服务混部调度 为极限压力做好准备 S1 S2 离线作业 Task 服务器层面的降级: • 离线 – 活动 – 在线 Stable S3 BestEffort Task Task Task Task Task Task N-Agent(TM/RM/AFS DN) Watch-Dog 在线服务 机房功耗层面的降级 • 功耗过载模式
31. 春晚蓝军:压测与攻防 BAIDU SRE:曹轩
32. 蓝军:摒弃正向思维模式 • 机翼、机背 VS 机头、机腹
33. 什么是压测? • Key:覆盖面、精度、执行效率、业务影响
34. 全要素全链路压测 极限并发 流量仿真 • 千万级流量,超过春晚尖峰流量 • 覆盖全国一百多个城市 • C/S 架构,控制万级别发压机,总控连接池需要特别优化 • 覆盖三大运营商 • 单 q 级别精细调压 • HTTPS/QUIC 等协议支持 高度自动化 复杂场景 • 压力构建 • 注册、登录等交互式发压场景构建,完全模拟真实用户 • 梯度加压 • 支持多词表复合的压力源表达形式,配置化构建全要素 全链路压力场景 • 自动熔断 • 为压缩压测时间,提供复杂算法驱动的流量控制 • 自动产出压测报告
35. 流量规模 V.S. 控制精度、仿真性 数据中心 (场景化源数据) 压测控制中心 正常流量 联通CDN节点 移动CDN节点 压测执行器 压测执行器 电信CDN节点 压测控制中心 压测执行器 BJ-IDC节点 GZ-IDC节点 压测执行器 压测执行器 执行器集群 压测流量 网关 正常流量 压测流量 线上 集群 应用 中间件的隔离测试 环境 应用 中间件的生成环境 应用 中间件 正常流量 压测流量 存储 影子表 正常表
36. 流量规模 V.S. 控制精度、仿真性 • 用户操作路径仿真,误操作行为模拟——手百各接口流量录制 & 回放 活动主页面 点击概率 x% 钱包页 任务页 矩阵产品A 点击概率 xx% 转化率:xx% 转化率:x% 矩阵产品C 转化率:xx% 下拉概率 xx% 矩阵产品D 点击概率 x% 登录 点击概率 x% 矩阵产品B 分享 小程序 。。。
37. 覆盖面 V.S. 成本 • 具备条件不计费的外网出口,外网 CDN 发压 • 不具备条件的使用静态路由,环回方案 • 内外网混合发压
38. 压测精度 V.S. 业务影响 • 流量染色 & 流量清洗 & 用户数据保护 • 自动熔断、限流保护 • 环境等比例分割、交还 • 监控配套系统
39. 执行成本 V.S. 人力/时间周期 • 风险剃度验证,各产品线统一节拍 • 单测→联调→分机房验证→产品线级压测→全系统联调→全链路压测→全要素剧本演练(含阶跃 测试、应急灾备演练) • 联合压测前,各分系统进行了数以百计的自动化、自助化压测,降低成本,提升频次 • 合计发现并解决了百余次系统瓶颈、风险点 分机房验证 产品线级压测 全系统联调 基础设施验证 搜索、摇一摇产品线验证 全系统联合测试 隔离域级验证 同时对 IDC/CDN 发压 部分降级吞吐验证 全链路压测 全要素剧本 灾备、阶跃测试 全覆盖 全剧本演练 异常场景植入,容灾演练 分活动拨次发压 应急指挥机制演练 未达预期子环节补充验证
40. 异常场景植入 端异常 外网及接入层异常 硬件类型异常 操作系统,基础环境软件异常 服务异常(数据、策略) 关键节点特殊打击 产品层面临时调整
41. 全要素全剧本演练 48小时准备 关闭部分操作入口,部分离线计算退场 12小时准备 全部既定避让资源退场,文案、更新上传,降级通路打开 第一轮口播 活动既定预案、任务执行,效果确认 第二轮口播 第三轮口播 角色 各产品线 SRE RD 第四轮口播 资源退场 指挥组 QA & ETC 横向方向 网络/CDN 监控 … 执行组 决策组 信息同步组
42. 更多材料… • 业务架构设计: • 吴永巍 · #qcon10·从高并发到极端并发:百度 Feed 与春晚红包的高可用实践 • 数据库技术: • 余杰 · #第七届百度技术开放日·极端并发场景下的数据库解决方案 • 大规模工程能力保障: • 王一男 · #第七届百度技术开放日·春晚红包背后的研发效率 • 全混部基础架构: • 张慕华 · #qcon10 · 百度大规模在离线混部系统架构演进和实践
43. Q&A