对于大多数运维程序员来说,时时刻刻都需要关注服务器和系统程序可能出现的问题并提前解决。今天我们就通过案例分析来了解一下,运维程序员如何快速处理线上问题。
任何一旦掉进坑里,明智的做法一定是:跳坑_>填坑_>避坑,线上故障处理的过程也一样,优先级从高到低,线上故障处理的目标如下:
跳坑
‘跳坑’——快速恢复线上服务,或者将对线上服务的影响降到低。
线上服务的可用性决定着服务者的客户利益,影响着公司的收益。一旦线上环境不可用,无法服务用户,给公司/团队带来经济利益损失的同时,更为严重的会给公司/团队带来恶劣的名声。所以一般公司都会对线上环境提出稳定性和可靠性的要求,这也是团队乃至部门的kpi。为此,遇到生产故障后的一要务是:恢复生产服务,即使不能完全恢复线上服务,也要想尽办法将对线上服务的影响降到低。
填坑
‘填坑’——找到问题原因,根本上解决问题。
在恢复线上服务,尽大限度减掉对用户/公司/团队带来的影响后,我们需要彻查问题,搞清楚故障发生的根本原因,从根本上解决问题。通常情况下,‘填坑’和‘跳坑’是同步在做的,完成‘填坑’也就意味中‘跳坑’成功,但是也有一些紧急情况下的特别‘跳坑’方法,比如重启服务,或者服务降级/熔断等等,实际并未在当时完成‘填坑’,而是先采取非常规手段‘跳坑’,之后再慢慢‘填坑’。
避坑
‘避坑’——举一反三,消灭隐患。
找到了根本原因,解决了问题之后,我们需要举一反三,以此及彼,想想在这个故障排查和处理过程中,那些环节存在弱点?那些流程/规范/制度需要优化?这类问题是否在其他系统或者团队中也存在?通过这样的反思和自我批评,形成一份线上事故报告,不断完善流程,避免再次踩坑,也在团队中交流经验,共同提高让闷。
线上故障处理的思路
依据线上故障处理的目标及目标的优先级,线上排障的一目标是恢复线上服务或者降低对线上服务的影响,关键点在于快速二字,在‘跳坑正滑悔’-‘填坑’之后,再行回溯总结,以便‘避坑’。因此,可以将线上故障处理的步骤分为:
故障发现
故障定位
故障排除
故障回溯
其中前三步是‘跳坑’行为,后面一步包含了‘填坑’和‘避坑’。
上述步骤并不是说要从上到下顺序进行,建议在不乱阵脚的情况下,并行去做,因为通常线上故障后会紧急启动故障处理程序,运维、开发、测试、产品各个角色都会参与进来,这时候分工下去,并行去做,不断汇总举正消息,做出判断,以求快速排障,恢复服务。这个思路类似于 *** 作系统的fork/join设计思想,目的在于提高效率。
在无法快速找到故障原因的时候,需要果断跳过故障定位环节,直接进行故障排除,比如采用服务降级、服务器扩容等手段,确保对线上服务降到低且可控。昌平北大青鸟建议可以等到线上服务’撑’过去之后,我们再慢慢定位故障原因,根本上解决问题。
对研发人员的考核,建议饥租不要过于强调结果,应该注重对过程的关注。程序员这种脑力劳动,类似于研发考核,由于其工作性质亮肢猜本身要求创造性,结果比较难于掌握,单纯强调考核会打压其本身的工作积极性,不符合客观规律。
个人觉得,对他们的考核只要能确定他们是认真工作、努力工作、态度端正,一切围绕目标开展就可以了。
绩效考核指企业在既定的战略目标下,运用特定的标准和指标敬型,对员工的工作行为及取得的工作业绩进行评估,并运用评估的结果对员工将来的工作行为和工作业绩产生正面引导的过程和方法。
绩效考核(performance evaluation),是企业绩效管理中的一个环节,常见绩效考核方法包括BSC、KPI及360度考核等。绩效考核是一项系统工程。绩效考核是绩效管理过程中的一种手段。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)