突然想起昨天某业务主管跟我讨论问题“主备热备双机情况下,备机的业务程序如何保障正确性”。这个问题源于某业务系统是有主备热备双机,但备机平时处于等待状况,当主机有异常时,才使用备机进行应急。但最近一次在备机起应用时,因未及时发现备机某应用有过旧的数据,导致起应用后将过期数据一并处理,而引发了一次故障。

   当时的我,主要从“物、人、法”来思考。

1、人的问题,属于业务主管管辖范围,我并没有扩展开来进行分析讨论。
2、从物(工具)的角度,需要一个有效检查备机健康程度的程序,最好能做日常的检查,也能在应急期间,针对某业务再进行特定的检查。

3、从法(流程)的角度,是做好保障的最有效办法。是人就会犯错,就算有物(工具)的保障,但在进行应急时,处理人也不一定对此业务非常熟悉,可能有一些潜在的风险未能识别。最好就是在日常工作中,从环境的准确性角度来考虑,保障主、备的日常部署是及时、无误的(通过上载流程来保障),在备机的业务数据、业务目录是正常的(通过增加并管理备机的监控策略来保证)。


当时也对业务故障做了一个小小的分析:业务问题,是什么引发的呢?数据异常?配置异常?程序异常?还是操作人员误操作?这个是谁的问题呢?可惜,但是没有再深入分析下去,没有更好的利用《你的灯亮着吗?》分析方法来进一步分析。我事后再做一次详细的分析吧:
1、问题是什么(问题其实就是你期望的东西,和你体验的东西之间的区别):
    问题表象是由于备机程序误处理了不应该下发的数据,导致下游业务故障。
2、这个问题是什么
    这点我没有深刻的思考,我只考虑将这个问题很好的分析、并给出我的建议。但从另外一个角度分析,其实某主管在这方面已深入思考过了,什么物、人、法,什么5why分析法,什么QBQ(问题后的问题)分析都不顶用。我需要做的是,用同理心说明这个问题发生的客观、主观上是无法避免,且符合墨菲定律的,然后最好能给出有效、可直接使用的工具。也有可能是迫于压力,某主管才向我咨询,想得到进一步的认可以及有效方法。
3、什么是真正的问题
  这个是我当时分析的主要切入点,从物、人、法来辩证分析;再从主观、客观方面来把控,尽量将问题的规避和管控放在客观上;从问题表象通过5why进行深入的分析故障。
4、这是谁的问题?
    从简单表象而言,这是员工当时处理业务时,是否遵守了规章制度进行操作的问题;但最有效解决问题的人员,是业务主管本人,需要从流程规范、工具提供多维思考并解决。同时上升到了部门主管经理角度,也需要进行分析是否管理上有盲点?是否人员技能不足?是否有更好的方法论没有使用到?最后是从运维技术角度,是最微不足道的。
5、问题是从哪里来的?
   其实我们的埋怨一堆,什么备机热备系统构架,千年不用,一旦使用就一堆问题。做热备又使用率太低,花太多心思去做好流程及管控,但一年最多用上一次,付出跟收益(从直接业务主管角度)不成正比。这又上升到项目系统架构上没有很好的考虑运维人员的工作,导致潜在的风险。
6、我们真的想解决问题吗?
   我认为是的。但从业务主管的角度而言,系统有清理过期业务数据的脚本,其实在备机启动业务程序前,只需启动清理脚本清理一次,就完全可以避免这次故障。因此,他认为有一定的偶发性跟主观性。也许真的只是想得到一个认可,问题已经解决或不再是问题,并非真的是跟我讨论问题。因此,我想了想,还是拒绝了开发提供工具,而是询问其他项目是否有类似的解决方法。

思辨其实是一种很好的方式,繁杂的事务背后,有着复杂的关联。抽丝剥茧,一步步分析,虽然最终展示的不一定是真相,但起码也一种可做实施建议的方案。最后说一句,别把问题的处理方法当作原因。