线上故障是指提供给客户使用的IT服务全部或部分不可用,包括服务性能的降低,如:服务延迟导致用户体验变差。在创业前期,为了抢占市场先机,产品新功能的发布速度追求往往优先于其质量,埋下了很多技术债务,部分技术债务的爆发会引起线上故障,造成客户的体验下降或经济损失。
故障管理的目标是“尽快恢复服务到正常运行,并且最小化对业务运营的不利影响,从而尽可能地保证服务质量和可用性的水平”。在故障发生后,故障紧急处理小组会定位、分析和恢复故障,并在故障恢复后对故障进行Review和总结,制定出可执行的Actions,以提高故障处理效率和避免类似故障再次发生。下面将为大家简单介绍有赞的故障管理实践。
有赞使用JIRA作为跨部门协作工具,线上故障管理也借助于JIRA。我们制定了下面的故障处理流程,故障JIRA工单遵循该工作流,而故障Action(s)会被建立在对应的故障JIRA工单子任务中,子任务的工作流为JIRA默认工作流。
当收到客户、内部员工或监控上报的潜在故障时,报告人会尽快确认故障的有效性。当确定是个故障后,会提交一个故障JIRA工单,并通知故障协调人(来自研发效率团队,主要负责业务与技术部门之间的信息同步和协调)。协调人确保公司内业务部门、技术和产品部门被通知到位,同时将故障上报到“可用性保障微信群”里,故障原因排查和讨论会在该群里或拉单独的故障处理群进行。
为避免无关消息干扰,故障处理人组建故障紧急处理小组(在微信群里或坐在一起),以提高故障处理效率。故障处理人在定位到问题后需将故障原因和预计多久修复同步给协调人。对于处理时间比较长的故障,紧急处理小组会每隔半小时对相关业务部门同步一次故障处理进展。
如确定是发布引起的故障,需将代码回滚到故障前的某个稳定版本。故障恢复后,故障处理人需跟业务影响方确认是否有数据需要修复。如有,需将影响情况反馈给协调人,并配合业务方尽快修复数据。
故障Review一般安排在故障处理结束后24小时内,包括故障过程回顾、故障原因分析、改进预防措施制定、故障定级等,其产出物为:故障分析报告。故障定级分为P1、P2、P3和P4四个等级(依次降低),每个业务组都有特定的等级定义,主要从业务影响面和影响时间来确定。目前使用的故障报告模板如下:
故障Review参与人一般是故障处理人、协调人、责任人及责任方组长,故障报告人视情况自愿参与。为了让所有技术小伙伴都能了解到故障信息,故障责任人需将最终版的故障报告同步到产品技术群。
故障责任人在JIRA故障单下创建子任务,每个子任务对应一个故障Action,子任务的“到期日”字段需被更新成:Action的Deadline,并将其分配给Action执行人。
JIRA看板是个很直观的工具,支持在规定的工作流之间移动任务板。我们使用JIRA的kanban board来跟进故障及其Actions(如下图),顶部快速过滤器可以快速访问各技术业务组不同状态下的故障或Actions信息,横向上拆分成3个泳道:故障、逾期故障Actions和待处理故障Actions。如果某个Action的到期日已经到了,该Action任务板会显示在“逾期故障Actions”泳道中,否则会显示在“待处理故障Actions”泳道中,故障协调人会定期跟进下逾期故障Actions的执行,并将逾期的故障Actions同步到产品技术群里,以提醒Action执行人及时处理JIRA。
通过分析故障数据,我们可以发现问题在哪里,并进行改进。目前故障数据主要记录在JIRA和Confluence上,我们会将其按特定格式备份到Numbers中,从不同角度分析这些故障数据,如:每月故障数对比、每月故障处理时间对比、近两月故障等级占比分布、近两月故障类别占比分布、近两月故障来源对比和近两月各业务组故障数对比等。
结合每月发布数据和线上问题数据的综合数据分析,我们得出了“发布次数很多的月份,其线上问题和故障数也相对较多”的结论。为了减少故障发生率,我们需要减少发布频率和规范发布流程。
根据当前存在的问题制定出一套流程不难,难在对流程执行的跟踪和监督。有赞线上故障处理流程由研发效率团队负责跟踪和监督,确保了每个故障都能经过Review,并形成完整的故障分析报告,同步给所有技术小伙伴。同时,每个故障Action都是可执行的,且有明确的执行人和Deadline。经过一年多的故障管理,我们不仅沉淀了宝贵的故障数据,为改进方向提供了参考,也增强了小伙伴的故障意识,对线上环境的敬畏之心和对故障的紧急处理意识。
关于“故障管理”,我们只迈出了一小步,还有诸多待改进的地方。例如,我们目前主要管理了线上的故障,对公司内部系统故障并没有管理起来;目前大家了解故障信息的途径是:JIRA、Confluence和技术报表,缺乏一个公共的故障检索和自动生成故障报表平台;我们的事件管理(Event Management)水平还很低,很多故障是由客户上报,而不是由监控系统先发现。
欢迎关注我们的公众号
Original url: Access
Created at: 2019-09-26 17:13:14
Category: default
Tags: none
未标明原创文章均为采集,版权归作者所有,转载无需和我联系,请注明原出处,南摩阿彌陀佛,知识,不只知道,要得到
java windows火焰图_mob64ca12ec8020的技术博客_51CTO博客 - 在windows下不可行,不知道作者是怎样搞的 监听SpringBoot 服务启动成功事件并打印信息_监听springboot启动完毕-CSDN博客 SpringBoot中就绪探针和存活探针_management.endpoint.health.probes.enabled-CSDN博客 u2u转换板 - 嘉立创EDA开源硬件平台 Spring Boot 项目的轻量级 HTTP 客户端 retrofit 框架,快来试试它!_Java精选-CSDN博客 手把手教你打造一套最牛的知识笔记管理系统! - 知乎 - 想法有重合-理论可参考 安宇雨 闲鱼 机械键盘 客制化 开贴记录 文本 linux 使用find命令查找包含某字符串的文件_beijihukk的博客-CSDN博客_find 查找字符串 ---- mac 也适用 安宇雨 打字音 记录集合 B站 bilibili 自行搭建 开坑 真正的客制化 安宇雨 黑苹果开坑 查找工具包maven pom 引用地 工具网站 Dantelis 介绍的玩轴入坑攻略 --- 关于轴的一些说法 --- 非官方 ---- 心得而已 --- 长期开坑更新 [本人问题][新开坑位]关于自动化测试的工具与平台应用 机械键盘 开团 网站记录 -- 能做一个收集的程序就好了 不过现在没时间 -- 信息大多是在群里发的 - 你要让垃圾佬 都去一个地方看难度也是很大的 精神支柱 [超级前台]sprinbboot maven superdesk-app 记录 [信息有用] [环境准备] [基本完成] [sebp/elk] 给已创建的Docker容器增加新的端口映射 - qq_30599553的博客 - CSDN博客 [正在研究] Elasticsearch, Logstash, Kibana (ELK) Docker image documentation elasticsearch centos 安装记录 及 启动手记 正式服务器 39 elasticsearch 问题合集 不断更新 6.1.1 | 6.5.1 两个版本 博客程序 - 测试 - bug记录 等等问题 laravel的启动过程解析 - lpfuture - 博客园 OAuth2 Server PHP 用 Laravel 搭建带 OAuth2 验证的 RESTful 服务 | Laravel China 社区 - 高品质的 Laravel 和 PHP 开发者社区 利用Laravel 搭建oauth2 API接口 附 Unauthenticated 解决办法 - 煮茶的博客 - SegmentFault 思否 使用 OAuth2-Server-php 搭建 OAuth2 Server - 午时的海 - 博客园 基于PHP构建OAuth 2.0 服务端 认证平台 - Endv - 博客园 Laravel 的 Artisan 命令行工具 Laravel 的文件系统和云存储功能集成 浅谈Chromium中的设计模式--终--Observer模式 浅谈Chromium中的设计模式--二--pre/post和Delegate模式 浅谈Chromium中的设计模式--一--Chromium中模块分层和进程模型 DeepMind 4 Hacking Yourself README.md update 20211011
Laravel China 简书 知乎 博客园 CSDN博客 开源中国 Go Further Ryan是菜鸟 | LNMP技术栈笔记 云栖社区-阿里云 Netflix技术博客 Techie Delight Linkedin技术博客 Dropbox技术博客 Facebook技术博客 淘宝中间件团队 美团技术博客 360技术博客 古巷博客 - 一个专注于分享的不正常博客 软件测试知识传播 - 测试窝 有赞技术团队 阮一峰 语雀 静觅丨崔庆才的个人博客 软件测试从业者综合能力提升 - isTester IBM Java 开发 使用开放 Java 生态系统开发现代应用程序 pengdai 一个强大的博主 HTML5资源教程 | 分享HTML5开发资源和开发教程 蘑菇博客 - 专注于技术分享的博客平台 个人博客-leapMie 流星007 CSDN博客 - 舍其小伙伴 稀土掘金 Go 技术论坛 | Golang / Go 语言中国知识社区
最新评论