杂文笔记《阿里巴巴千亿交易背后的0故障发布》
杂文笔记《阿里巴巴千亿交易背后的0故障发布》
阿里巴巴千亿交易背后的0故障发布
https://mp.weixin.qq.com/s?__biz=MzI0NTE4NjA0OQ==&mid=2658357346&idx=1&sn=31a90bd02290ed84e20e39c0755b673e&chksm=f2d59b0cc5a2121aa956dc6a23ccac0c0f491de7527ae439cf05561a6841cd424e94b02158d4&mpshare=1&scene=1&srcid=0422APU5II3JMqjNHH5j8jUG#rd
GOPS·深圳站大会
阿里巴巴运维技术专家少荃
上线流程的验证环节
我们会通过各种测试来验证功能是否ok,包括单元测试、集成测试等,发布过程中,我们会通过一些发布策略,例如先预发(预发布是一种特殊的线上环境,和线上使用同样的资源,比如数据库等,但是不会有用户流量进来)、然后灰度、然后分批滚动发布等方式,逐步将变更更新到线上,发布完成后,又会借助一些故障预警系统
无人值守发布
自动化采集这些实时的线上核心数据,进行智能化分析,迅速对发布状况进行判断,是否有故障发生,有的话则立即终止当前发布
故障检测
异常推荐
召回率
- 漏报就是本来有10个故障,系统报了9个,那么漏报了1个,召回率是90%
- 我们已经做到了90%
准确率
- 误报就是只有10个故障,报了20个出来,多出来的10个就属于误报,那么准确率就是50%
- 我们已经做到了60%左右
产品架构
指标
业务指标
基础指标
- 内存使用情况,cpu使用率,load情况,磁盘io
中间件的指标
日志
第一个版本的时候,我们选择了基础监控和日志这两方面入手
采集
发布前和发布后的指标进行对比
已发布和未发布的机器进行对比
分析
funnel检测模型
这第一个版本在准确率方面表现不是很好,离线跑的时候能够有30%、40%,但是线上实际跑的时候只有10%上下的准确率
不断的分析误报和漏报数据,然后对算法做一些微调
离线回放系统,用来对算法进行回放验证,从之前的误报、有效拦截、未拦截等数据中抽取部分数据,每次算法调整后,通过回放系统对这些数据重新进行检测分析,看看准确率和召回率是怎么变化的,误报的是否还在误报,有效拦截的是否漏报了等等。
第二个版本,我们就采用了基于机器学习的方式在原来的基础上做了一些改进。
简单的分类的方法,最初的想法是分成正常、异常、未分类三大类
我的观点
一个监控平台数据的分析系统
通过回放系统检验算法准确性是一个靠谱的方案
在第二个版本才引入机器学习也是一个好的实践
XMind: ZEN - Trial Version