李伟-阿里巴巴搜索稳定性实践 -- 通过自动化和智能化打造支持百万级并发的高可用分布式在线服务

GOPS 全球运维大会由高效运维社区(GreatOPS)和开放运维联盟(OOPSA)联合主办,指导单位为工信部信通院数据中心联盟(DCA)。全球运维大会是国内第一个运维行业大会,面向互联网及传统行业、广大运维技术人员,传播先进技术思想和理念,分享业内最佳实践。 迄今为止,GOPS 已经举行了八次,大会参会嘉宾累计突破2万人次,国内每一站均为本地区最大规模的高端运维盛会,满意度和推荐度高达95%以上。

1. GOPS 全球运维大会 2018 2018.4.13-4.14 中国·广东·深圳·南山区 圣淘沙大酒店(翡翠店) GOPS 全球运维大会2018·深圳站
2. 阿里巴巴搜索稳定性实践 李伟 高级技术专家 GOPS 全球运维大会2018·深圳站
3. 搜索在线服务体系 t宝 天猫 菜鸟 优酷 开hf索 )aCa3a D G务i量F百H 服务Qw (CM2 一致a存K (Zookeeper LZ式i据 LQ (DP 监d ((monitor LZ式sb队M (swift 预r服务 (R/P 复m索引服务on (SAeC f索引g (Ha3 算法引g (DII SAeCA3min (AM T引g (iGraph k状态服务调度on (Drogo f索G务引g (SP e荐G务引g (/PP Car2on/Fi2er (AM f索G务调度(Hippo 阿里集S统一资u调度(Sigma f索G务平R e荐G务平R 阿里I开hf索 f索十万级QPS e荐百万级QPS T引gP万级QPS 基z设施管d (/hemis 集群规pF万R GOPS 全球运维大会2018·深圳站
4. 稳定性 VS. 效率 • 业务的快速迭代和高资源利 用率带来的挑战:变化和错 误成为常态 • 管理变化: 业务/性能/容量/故障 • 高可用设计 • CPU利用率 > 50% • 可用性 > 99.99% • 故障恢复时间 < 5min 稳定性 √ 资源效率 业务效率 • 快速迭代,单业务发 布频率>1/d GOPS 全球运维大会2018·深圳站
5. 管理变化:Devops 开发只关注业务, 管控保障变更风险 开发/测试 变更/回滚 扩/缩容 iP/报v Q/ota/成本 管P 业务 调F 资a 调F 灰F 容e/管P A用性保障 (集群间) 目标驱动 (集群间) 渐进一t性 (集群间) Roll)n( A用性保障 (集群内) u点Fa)lover R据分发 服务注册 目标驱动 (集群内) 渐进一t性 (集群内) O口幂l 资a分配和管g Q障机检测和o修 内核管g 混部 隔离 AIOPS I性伸缩 自动化压测 智r预测和异常检测 智r诊S和容量评估 Q障自动切流 自动化容e演n GOPS 全球运维大会2018·深圳站
6. 管理变化:业务调度和管控 • 自动部署 CurStatus MinHealth Capacity • 服务挂载 • 可用性保障 ServiceStatus HealthStatus SlotStatus 2chedule • 平滑扩缩容 ExecutePlan • 异常恢复 • 机器故障 • 应用错误 • 网络分割 • Rolling升级/回滚 execute HippoAdapter HealthChecker Hippo Worker update TargetPlan • 渐进最终一致性 • 接口幂等 ServiceSwitch • 异步调度 CM2 • 无状态 GOPS 全球运维大会2018·深圳站
7. 管理变化:智能诊断 • Schema优化 • 索引优化提升性能 (倒排索引/bitmap) • 字段压缩节省内存 • 冷数据优化节省内存 • 配置优化 • QueryCache提升性能 • 合理实时内存配置避免OOM • 最优Segment数提升性能 • 诊断建议 • 检索截断,降低精排doc数,插件优化 • 部分应用诊断优化后性能最大提升8倍 GOPS 全球运维大会2018·深圳站 Hawkeye诊断 ෭ப ܻতහഝ ๐‫ۓ‬ᯈᗝ Airflow+Blink 提取数据 分析 回放 分析 Schema优化 配置优化 诊断建议 自动执行优化 数据大盘 应用日报
8. 管理变化:容量评估 • 优化目标 优化replica/sharding数平衡CPU/Mem成本和容 量 优化build并发数平衡全量索引耗时和成本 调控各项资源单价促进平台资源优化 • 效果 • 长尾应用自动进行资源优化,磁盘 和内存使用率60%~70%,CPU使 用率30%~40%,日均节省成本 6w+元。 GOPS 全球运维大会2018·深圳站 在线服务 Torch容量评估 自动压测 搜索业务引擎 搜索引擎 算法引擎 克隆单例 XSGDWH 资源清理 决H中心 自动执行优化 Hawkeye output 数据工厂 算法分析
9. 管理变化:弹性伸缩1 • 采集数据 • 决策 • 响应式 & 预测 • 执行 scale-up CPU/ Mem CPU/ Mem CPU/ Mem • scale-out vs. scale-up • FaaS解决scale-out秒级部署 • 带数据服务通过存储计算分离优化scale-out 管控 • scale-up:运行时动态调整线程池,调度支持按优先级迁移 … scale-ou/ CPU/ Mem 智能弹性伸缩 • 效果 • 日常集群平均CPU利用率提 3.37 倍,从8%到27% • 双11 促期间,P1场景利用率保持在 30% ,其余保持在50%。99%的P1场景降级率低 于2%,超时率低于0.6% GOPS 全球运维大会2018·深圳站 Kmoni/oAgen/ me/-ics Kmoni/o- 智能预测 规则干预
10. 管理变化:弹性伸缩2 • 定义业务优先级(P1~P4)+服务等级(L0~L3) • 算法实时预测QPS • Daily-run压测获取各服务等级QPS • Buffer提前预热加快扩容速度 • 自动降级应对突发流量,自动限流(过载保护)保证最大服务能力 • 动态负载均衡解决扩容预热不充分导致的服务能力不足 GOPS 全球运维大会2018·深圳站
11. 管理变化:无状态服务秒级扩容 Web Console 1. create(scene) 2. update(scene) 3. update_all() Scene1 Scene2 Scene3 Scene.. publish Drogo CM2 SXVK (Name Service) 1. scale(role, count) 2. update(scene) // transfer scene 1. start(role) 2. load(role, scene) 3. unload(role, scene) 4. rolling(role) 5. scale(role, count) 6FKHGXOHU trigger Proxy XSORDGSDFNDJHV Shadow Proxy Kmonitor metrics Predict Service predict-metrics metrics warm-up Fiber (Application Manager) 1. start(scene) 2. rolling(scene) 3. scale(scene, count) Online Scene1 Scene2 Scene3 Sceneŏ Buffer Scene Scene Scene 6FHQHSDFNDJHV Hippo slot1 slot2 slot3 slot4 Sigma (Resource Manager) GOPS 全球运维大会2018·深圳站 slot5 ,PDJH$SSOLFDWLRQ)UDPHZRUN
12. 管理变化:监控 • 监控链路优化,1分钟报警 接入层 • 监控项优化 • 对P1/P2和P3/P4故障定制不 同监控策略 • 业务效果监控提升准确率 • 监控自动执行action Cluster1 推D业务引擎 搜B业务引擎 &OLFNV 436 swif2 Cluster2 推D业务引擎 搜B业务引擎 &OLFNV • 报警 Grafana Druid Blink • 切流 •… Kmonitor 烽火台 GOPS 全球运维大会2018·深圳站 Vi/server/ CM2 亲C action kmoni2or wa2ch
13. 管理变化:故障自动切流和快速恢复 发现 报警延迟<1min 准确度>90% 监控链路优化 监控指标优化 止损 自动切流 运维处理 故障报表 恢复 回滚 GOPS 全球运维大会2018·深圳站
14. 高可用设计:Framework ü服务发现 ü序列化 ü负载均衡 üFailover ü服务治理( ü熔断 ü容量规划 GOPS 全球运维大会2018·深圳站
15. 高可用设计:自动降级和限流 [0,thresh1) 正常处理 OK Start f(schedule_time, task_queue_size, load) 是否 异常 [thresh1,thresh2) 降级 OK [thresh2,) 限流 ERROR UserProfile/ Query Search End Rank • 超出正常服务能力后降级提升服务能力 • 超出最大服务能力后限流确保不雪崩 Summary GOPS 全球运维大会2018·深圳站 降级判断: 异常率、Load ⾃动降级策略: L1:减少Search和Rank 数量 L2:降低算法模型复杂 度 L3:取消Rank L4:静态Cache
16. 高可用设计:动态负载均衡&熔断 结合服务端返回的动态权重和 响应时间,均衡服务端各节点负载 连续超时或不可用节点逐步降低权重直至0。 权重为0的节点通过copy流量探测实现恢复。 GOPS 全球运维大会2018·深圳站 通过提前中止(EarlyTerminate) 解决并发查询的短板效应
17. 线上效果 GOPS 全球运维大会2018·深圳站
18. 总结 稳定性风险 业务变更 用户行为变化 ᓕቘ‫ݒ‬۸ Devops 智能诊断 故障快速恢复 D控&/灾 /量评估 弹性&缩 GOPS 全球运维大会2018·深圳站 自然因素/变更 导致异常 ṛ‫ݢ‬አᦡᦇ 自动降级 自动限流 动态负载均衡 熔断
19. 关于我们 • 搜索和推荐两大平台支持阿里集团大部分流量 • 高性能分布式搜索和推荐引擎以及图检索引擎,支 成都 持千万级QPS • 大规模集群的智能化调度 • AIOPS无人值守运维 杭州 • 国际化支持东南亚、印度、俄罗斯业务 北京 GOPS 全球运维大会2018·深圳站 深圳
20. Thanks 高效运维社区 开放运维联盟 荣誉出品 GOPS 全球运维大会2018·深圳站
21. 想第一时间看到高效运维社区 的新动态吗? GOPS 全球运维大会2018·深圳站