杂文笔记《阿里巴巴千亿交易背后的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

posted @ 2018-05-08 22:10  atskyline  阅读(354)  评论(0编辑  收藏  举报