阿里巴巴 少荃-千亿交易背后的0故障发布

巴馨荣

2018/05/13 发布于 技术 分类

天下武功,唯快不破,互联网产品尤其这样,迭代速度成为了产品能取胜的关键点,快速稳定的发布成为了帮助产品或者用户更快的实现业务目标的重要竞争力。随着运维工具(发布系统)的逐步完善,发布已经越来越容易、越来越高效,从传统的几个月发布一次已经能够做到一天发布多次,但单日均几万的发布量,涉及几千的产品,如何在快速迭代中保障发布不出问题,却是摆在各个研发同学面前一个头痛的事情。阿里的发布系统(诺曼底)一直致力于发布稳定性的保障,尽量减少发布过程引起故障,为此,我们引入了一套智能化的解决方案--无人值守发布,来提前发现和终止发布带来的问题。

文字内容
1. GOPS 全球运维大会 2018 2018.4.13-4.14 中国·广东·深圳·南山区 圣淘沙大酒店(翡翠店) GOPS 全球运维大会2018·深圳站
2. 千亿交易背后的0故障发布 陆叶平(少荃) 阿里巴巴研发效能 GOPS 全球运维大会2018·深圳站
3. 自我介绍 业务 基础核心系统 l 主要从事发布相关的运维中台建设 l 重点关注发布的效率和稳定性方面 l SP2P文件分发系统蜻蜓的创始人之一 GOPS 全球运维大会2018·深圳站 运维中台
4. 目录 1 线上发布之痛 2 我们的解决方案 3 典型的发布案例 4 无人值守发布实现 GOPS 全球运维大会2018·深圳站 我是一个标
5. 线上发布之痛-变更故障 骑士资本4.4亿美元的教训 理想和现实的差异 GOPS 全球运维大会2018·深圳站
6. 线上发布之痛-业务挑战 GOPS 全球运维大会2018·深圳站
7. 线上发布之痛-如何避免 1. 发布前 • 单元测试、集成测试 2. 发布中 • 预发、灰度、分批发布 3. 发布后 • GOC故障预警 GOPS 全球运维大会2018·深圳站
8. 目录 1 线上发布之痛 2 我们的解决方案 3 典型的发布案例 4 无人值守发布实现 GOPS 全球运维大会2018·深圳站
9. 我们的解决方案 GOPS 全球运维大会2018·深圳站 ”人工”智能的发布保障 l 盯监控 l 盯发布单 l 盯机器 l 盯GOC等各种屏幕 不足之处 l 成本高 l 人不可靠
10. 我们的解决方案 无人值守发布是什么? 是一个智能化变更故障检测和异常推荐系统 能力:检测发布风险,拦截异常发布 价值:减少发布投入成本,提升发布稳定性,减少故障 GOPS 全球运维大会2018·深圳站
11. 智能化发布路线图 STEP3:全智能发布 全自动化发布 全自动发布 STEP2:高度智能发布 自动计算策略 自动恢复 自动回滚 接管发布 STEP1:智能辅助发布 失败自愈 异常拦截 辅助决策 报警,有限控制 STEP0:自动化发布 GOPS 全球运维大会2018·深圳站
12. 什么是无人值守发布 GOPS 全球运维大会2018·深圳站
13. 什么是无人值守发布 GOPS 全球运维大会2018·深圳站
14. 什么是无人值守发布 GOPS 全球运维大会2018·深圳站
15. 目录 1 线上发布之痛 2 我们的解决方案 3 典型的发布案例 4 无人值守发布实现 GOPS 全球运维大会2018·深圳站
16. 典型的发布案例 GOPS 全球运维大会2018·深圳站
17. 典型的发布案例 GOPS 全球运维大会2018·深圳站
18. 怎么说清楚价值 准确率 60 • 有效拦截/总拦截= % 召回率 90 • 有效拦截/(有效拦截+漏报)= % GOPS 全球运维大会2018·深圳站
19. 目录 1 线上发布之痛 2 我们的解决方案 3 典型的发布案例 4 无人值守发布实现 GOPS 全球运维大会2018·深圳站
20. 产品架构分层 GOPS 全球运维大会2018·深圳站
21. 业务处理流程 GOPS 全球运维大会2018·深圳站
22. 无人值守发布1.0实现-应用健康度指标 GOPS 全球运维大会2018·深圳站
23. 无人值守发布1.0实现 特征选取 基础监控 日志 业务监控 异常识别方式 简单规则 复杂算法 中间件指标 GOPS 全球运维大会2018·深圳站
24. 数据异常识别的挑战 如何在发布过程中快速的采集数据 如何排除各种干扰数据的影响 如何在各种具有不同特性的指标中选择合适的检测方法 GOPS 全球运维大会2018·深圳站
25. 基础监控指标 GOPS 全球运维大会2018·深圳站
26. 数据采集 • 采集的Metric • 系统指标:load,cpu,mem • 基础服务指标:hsf,notify,metaq,tair,tddl等的rt,qps,success_rate指标 • tomcat: http.failure.count,http.request.error_count … • jvm:thread.deadlock.count, gc.concurrentmarksweep.count … • 采集哪些机器数据 • 发布机器 • 参照机器 • 采集时间区间 • 发布时间点前5分钟,取7天 • 发布完后成当前到前5分钟数据 GOPS 全球运维大会2018·深圳站
27. 数据预处理 数据聚合 数据合并 数据补全 Step1 Step2 Step3 提取IP维度 数据 IP维度聚合 时间维度聚 合(分钟) 合并变更后 数据 差值补全 待分析数据 GOPS 全球运维大会2018·深圳站
28. 我们选择的方法 改进型的FUNNEL检测模型 • 按照不同指标特性选择不同方法 • 检测速度快,迟延低 • 计算资源消耗少 • 同时支持很多指标一起分析 GOPS 全球运维大会2018·深圳站
29. 改进型FUNNEL检测模型 GOPS 全球运维大会2018·深圳站
30. 如何保障有效的准确率和召回率 不断的分析误报和漏报数据,微调算法 带来的新的问题:怎么保证算法调整的质量? 答案:无人值守故障回放 GOPS 全球运维大会2018·深圳站
31. 无人值守故障回放 指标源数据 无人值守 基础监控 检测 异常日志 无人只搜 发布系统 录制 GOPS 全球运维大会2018·深圳站 回放系统 指标mock api 回放触发接口 获取录制plan 数据推送接口 录制plan 定时 接口 回放db
32. 算法是否解决了我们的问题 • 需要不断的分析检测数据并调整算法 • 没有办法明确识别出来是否会造成故障 • 之前已经误报的后续发布的时候继续在重复误报 改进方案: 基于机器学习来提升检测准确率 GOPS 全球运维大会2018·深圳站
33. 日志检测(机器学习改进) 检测出可疑 异常 历史数据离 线学习 离线人工打 标 动态窗口检 测 可疑异常堆 栈判定 特征库(带 标记) GOPS 全球运维大会2018·深圳站 拦截 故障异常 忽略 正常异常 发布单结束 (人工+系统打 标)
34. 机器学习要素 学习用的样本数据 机器学习的算法 学习结果和实时检测的结合 GOPS 全球运维大会2018·深圳站
35. 学习用的样本数据 多 VS 少 行为 VS 反馈 GOPS 全球运维大会2018·深圳站 正常 VS 异常 关键 VS 不靠谱
36. 拦截指标反馈 GOPS 全球运维大会2018·深圳站
37. 机器学习的算法 分类 正常 异常 未分类 GOPS 全球运维大会2018·深圳站 正常阈值
38. 机器学习的算法 异常出现 是 是否异 常发布 否 小于正 常阈值 大于正 常阈值 是 更新正常阈值 是 更新正常阈值 GOPS 全球运维大会2018·深圳站
39. 学以致用 指标当前值 指标正常值 可疑指标 窗口内多次检测 异常指标 GOPS 全球运维大会2018·深圳站 拦截
40. Q&A 钉钉 微信 GOPS 全球运维大会2018·深圳站 团队公众号
41. Thanks 高效运维社区 开放运维联盟 荣誉出品 GOPS 全球运维大会2018·深圳站
42. 想第一时间看到高效运维社区 的新动态吗? GOPS 全球运维大会2018·深圳站