当网络问题并不复杂,并且当大家都来自同一个组织的时候,专家团队方法能够有效地对事故作出响应。但近年来,随着基础架构云端化,相关利益主体分布在不同的部门、公司和地理区域,针对网络事故和业务应用性能问题的根本原因分析(RCA)变得越发困难。
为满足服务水平协议(SLA)要求并防止客户流失,快速查明根本原因已成为许多企业的首要任务。但是,据《Emulex可视性调查》表明,79%的企业曾经将事故发生的原因错误地归咎于某个IT部门,这不仅增添了混乱程度,还推迟了解决问题的时间。
针对以上问题,本文将介绍一个由数据包分析驱动的故障域隔离(FDI)方法,帮助企业进行故障检修并解决网络和应用性能问题。
外包成为主流
即使整个基础架构由一家企业所有,要充分了解整个基础架构的实际状态也会非常困难。更何况,当外包业务迅速扩张时,端到端业务应用就会逐渐出现许多盲点。如果整个技术层都被外包出去,就会出现一个巨大的盲点,导致您无法在该技术域内进行RCA。为了顺应技术外包的趋势,企业必须清楚地区别事故响应工作流程中FDI阶段与RCA阶段的目的和要求。
什么是FDI?
FDI的理念很简单,任何看过病的人都不难理解,它跟医疗保健领域的“事故调查”流程在本质上相似。首先,一名全科医生会进行初步评估、安排诊断测试并评估结果。然后,患者将接受专科医生的检查,而且只有在证据充分、可以确定病情时才会进行其他诊断和治疗。诊断过程以事实而不是以猜测作为依据。
部署FDI的企业希望最大限度地减少参与每次事故调查的技术专家的人数和类型,这就是FDI需要在RCA之前进行的原因。这样做的目的是为了在开始深入分析根本原因之前找到一个可疑的技术层。为什么要按技术进行隔离呢?一是因为IT部门和外包业务通常是按技术划分的,二是因为这样有助于快速减少参与人员的数量。由于只会牵涉到一个故障域,技术隔离可以避免整个部门及外部企业由于接受调查而导致业务停顿。这就好比您不会让一名神经外科医生来检查脚趾骨折一样。
FDI的一个主要目的是防止调查过程中“相互推诿”的现象。要使FDI更为有效,必须提供确凿的证据,证实某个“可疑”子系统或技术层是导致问题的根本原因。同时,还需要确认任何其他子系统或技术层不可能是问题的根源所在。当故障域位于外包技术中时,这一点尤为重要。
在将问题移交给负责的团队或服务提供商处理的时候,有效的FDI还有助于提供与特定技术相关、可付诸行动的数据,这将为技术团队提供相关情景、症状和信息,以便他们立即针对其所负责的系统进行深入的根本原因分析。
图1: 事故响应流程
只需要一组事实
为保证其效率及有效性,FDI需要根据在技术层之间交换的实际数据包进行分析。数据包不会“撒谎”,它们也不会掩盖平均值或统计数据中的关键细节。以基本数据包作为证据可以确保FDI流程找到对于事故具有不可推卸责任的故障技术层。
“首要FDI”指的是将事故交予特定技术团队或外包服务提供商。它的目标相对简单,即在少数部门、团队以及外包服务商中分配事故,因而是一种极为经济的实施方法。在实际操作中,它涉及的技术层、网络中的分路点以及在每个技术层之间进行监控的网络记录器均相对较少。
什么原因导致了延迟?
当人们认真地进行RCA并且有自信确定问题所在的时候,人们就可以降低成本并缩短解决问题的时间。当负责处理问题的人员拥有正确评估原因及解决问题的专业技能时,RCA就能达到最佳效果。
在前文,我们提到以数据包为导向的FDI流程能够有效加快事故调查并减少参与人员数量。此外,FDI不需要很多分路器和设备即可对主要技术层进行隔离,从而实现其首要目标——仅指派相关的人员参与事故调查。那么,为什么很多重大事故调查仍然需要召开专家小组会议呢?
问题在于,有的人认为,仅仅依靠若干分路器和网络记录器不足以完全解决复杂的事故。您知道吗?他们的看法是正确的。但是,这并不是事故调查流程FDI阶段的目标,该阶段的目标是隔离故障。通过基本数据包以及数据包分析的流程,您可以简单有效地实现这一目标。
分而治之
首要/一级FDI流程会将事故隔离到由企业内部结构和外包安排所定义的单一技术层。要达到首要FDI的最佳效果,我们需要:1) 使用网络记录工具监控和储存技术层之间产生的网络流量;2) 通过应用事务分析(Application Transaction Analysis)来进行故障隔离。数据包存储对于高效的FDI所依赖的回顾性分析(Back-in-time Analysis)至关重要。
您可能已经猜到,FDI是一个可以分层部署的“分治”流程。您还可以在每个技术层次中进行FDI,从而进一步隔离问题,直到高效完成RCA。这个过程可以称为“层内FDI”或“辅助FDI”。
辅助FDI工作流程尤其适用于网络事故调查。同理,为达到FDI的最佳效果,我们需要监控并储存关键网络组件之间的实际数据包流,从而进行有效的回顾性分析。
如果以网络内FDI作为目标,则需要了解应在哪些位置部署网络分路器和网络记录工具。首要FDI与网络内FDI之间的主要区别在于观察点的位置更多与物理位置、技术、员工专业技能以及外包程度和外部提供商有关,与组织问题关系不大。但是,FDI流程较为类似:执行基于数据包的分析以提供确凿证据,从而确定哪些技术或服务提供商存在问题、哪些不存在问题。
始终运行还是始终可用?
我们不希望等到发生重大事故时才开始部署执行FDI所需的分路器和监控工具,这将与FDI的初衷背道而驰。因此,我们应部署并始终运行执行主要/一级FDI所需的分路器和网络记录工具。
但是,如何执行辅助/技术内FDI呢?如何处理远程站点、地区性数据中心和非关键性应用呢?您不可能四处进行分路,也无法储存一切内容。
幸运的是,人们开发了许多网络记录工具,以满足主要技术层之间的“始终运行”记录需求,以及通过网络数据包代理连接到众多二级分路点的“始终可用”记录需求。始终可用的设备不一定能够保证长期的回顾可视性,但您可以在需要时快速配置这些设备,根据当前事故调查的特定可视性需求进行监控。
如此简单?
那么,FDI真的像我们所说的那么简单吗?我们需要辩证地回答这个问题。很显然,在现代企业联网业务应用基础架构这样复杂的动态系统中,可能会出现各种反常、复杂甚至是匪夷所思的问题。您始终需要对这些类型的问题进行深入调查,并利用专家的技能和知识来加以解决。但这并不能说明FDI与有效解决这些负载问题无关。事实上,这些问题使一个严格、可重复、由数据驱动的FDI流程更为重要了。要解决复杂问题,为什么不采用FDI这种久经考验的“分治”方法呢?