线上故障处理的一点经验分享

线上故障处理的一点经验分享


大家好,作为技术人员,我们所维护的系统出现线上故障是在所难免的,在客户就是上帝的今天,系统的一点点问题都可能会造成客户的投诉甚至流失,保证系统稳定就成为了我们的重中之重,而线上问题的快速解决也是系统稳定性的重要指标,今天就给大家分享一下我在线上故障处理方面的一点经验,希望能给大家一定的帮助。

首先,明确一下什么是线上问题,就是导致线上正常运转的服务出现异常进而直接或间接影响用户使用的一系列问题的统称。导致线上问题的原因多种多样,服务链条的任何节点都可能出现问题而不局限在自己所负责的系统。线上问题的严重等级一般以故障的影响范围(例:部分还是全部用户)、影响程度(例:是否自损、主流程还是旁支流程等)、影响时间来综合判定,由于线上问题都是突发的,所以我们能做的就是尽最大努力减少影响时间,进而降低影响范围和影响程度。

接下来,我们详细说一下线上故障的处理步骤:确认问题、分析及解决问题、遗留问题处理、事后总结。

第一步是确认问题,线上问题可能是来自外部投诉或内部主动发现,不管来自哪里都需要先确认系统是否真的存在问题,可以通过分析系统日志或数据、模拟问题场景等方式确认问题。这一步要迅速,自己确认的同时也要通知团队其他成员一起加入,大家分工合作,有人继续分析和解决问题,有人评估影响范围并对外通知(客服、服务调用方、运营人员、业务人员等),统一话术。

第二步是分析及解决问题,由于问题多种多样,分析问题的过程不在这里详述,但需要提醒一下大家的是要关注包括网络、操作系统、中间件等在内的服务全链条,很多时候不一定是自己服务造成的故障。解决问题是整个故障处理流程中最关键的部分,基于上面的问题分析结果我们需要确定下一步工作。对于外部问题,需要第一时间联系相关系统负责人并推动其快速解决。对于内部问题,一般采用回滚的方式解决,因为这种方式是最快速的,但回滚会将此段时间内上线的功能都回退,可能导致已修复的bug再次出现或新上的功能下线,而且回滚可能也需要关联系统一同回滚,所以采用回滚方式需要评估代价后再操作;另外也可以考虑重启、扩容、紧急上线等方式,紧急上线的方式由于时间紧方案可能考虑不周全,故需要系统的主要成员一起确定方案的可行性再进行上线操作,避免上线后的二次故障。回滚或紧急上线都只是为了快速解决问题,事后还需要确定一个长期合理的解决方案,以弥补回滚带来的功能缺失或紧急上线的潜在隐患。

第三步是遗留问题处理,虽然经过第二步故障已经解决,但故障时造成的用户损失或数据错误等存量问题还需要逐个解决,这里着重强调一下这些问题的处理需要和业务、运营达成一致,保证客户利益的同时将公司的损失降到最低。

第四步是事后总结,这一步也是必须要做的,目的是分析事故原因、优化研发流程、添加系统监控及应急预案,总结做的好可以避免下次再犯相同的错误,只要我们持续总结改正,线上出现问题就会逐渐减少。

最后,我们再总结一下线上故障处理的关键点,其实归根结底就是要快,为了更快的发现和定位问题我们必须做好系统监控,为了更快的解决问题我们必须提前做预案,只有这样我们才能从容的面对线上故障,不断提升系统的稳定性。

你可能感兴趣的:(线上故障处理的一点经验分享)