SOA实时监控
随着基于分布式复杂应用服务的SOA日趋普遍化,对应用程序和服务性能管理的监控、管理和报告也变得愈加重要和复杂。 基于端用户体验的管理监控和各种端到端监控(或实时监控),两者在效率上存在着显著差异。“Ptak, Noel及其合伙人”公司曾在一篇文章中有详细的分析,但鉴于该话题的重要性正日益增长,我们认为应该在本专栏中对其主要问题进行一下介绍。
早些时候,通常采用监控基础设施性能的方法来获取应用程序性能和可用性方面的信息。进一步的发展是监控和报告端用户体验——即通过跟踪和报告查询响应时间,比如,将这些时间和与基础设施性能的信息相互关联。
由于应用程序结构已向动态组件方向转变——例如,单一门户网站的若干端口作为多种来源以实现信息汇总——这些趋势正在削弱上述技术的作用。简单地跟踪响应时间已无法报告出实际的服务水平,也无益于问题的发现和解决。当还没有SLAs时,这些技术可以向我们提出警报,但却无法为日趋重要的关键操作(如问题避免和纠正)提供足够详细的数据。
原因在于,基于端用户进行监控的传统实现方式并不提供:
- 足够信息进行问题定位;
- 足够信息进行根源分析;
- 对事件的前摄监控——而只有事后信息。
这样的结果只是不满意的客户以及SOA利润的幻灭。
一种解决方法是要求操作能够识别、买入、整合并配置一些独立的工具,从而获取额外的交叉功能的性能数据以实现前摄监控。这是对其自身的主要挑战。现在,我们忽略那些额外的挑战,不去获取关于交叉功能操作级别协议的那些可能惹来麻烦的信息,即使这些协议是实现一个真正全面的面向服务的SLA所需要的。甚至在以后, 将问题定位到具体的某台服务器或实时任务上的挑战也仍然存在。
目前已有一些产品能够对实时性能进行监控和报告, 其中包括加州Wily Intrascope, Tidal软件公司的Intersperse以及赛门铁克公司的一系列应用程序性能管理解决方案。这些产品能够:
- 提供充分信息以进行问题定位;
- 不仅将问题定位到服务器上,更多时候能够定位到服务器内部的某个组件或资源内;
- 对症状进行相关性分析,从而精确地找到具体的问题根源;
- 根据资源利用和组件性能的趋势分析来提供前摄警报。
由于各个厂商对工具功能和整合数量的要求有所不同,因此无法找到完美的解决方案。举例来说,仅当在每一阶段都使用相同的服务器产品时,对一个交易过程或端用户交互行为(组件级别)的单个实例的性能进行追踪(从服务器到服务器或从服务器到后端数据库)才可能是有效的。
其他产品,例如ClearApp公司的QuickVision 7,通过跟踪用户从前端入口到后端 EJB服务器的交互过程的表现性能来提供超出系统的追踪功能。还有一些其它产品,例如Tidal 软件公司的最新版Intersperse,它允许在更复杂的监控系统(可以是包含入口和组件的系统)中进行追踪,同样也支持在BPM引擎中追踪(如WebLogic整合)以及跨消息层的追踪(如JMS)。
最后的话
随着SOA 部署的增长,对交叉功能技术进行监控和管理的能力变得日趋重要。那些能够将其进行组合的机构将会通过SOA获利。 而那些没能这样做的机构只能简单地将SOA记录为另一个计算时尚词汇——并最终在竞争中落后。
如果不想沦为后者,那么下面有几条建议需要谨记:
- 接受实时监控和端到端监控方面的专业教育或培训,做好充分准备使自己能够立刻从事管理(前摄管理)SOA部署的工作。
- 考虑所有的层、服务器和协议,你将免去继续购买昂贵且难用的附加软件的烦恼,而且你也不必担心框架整合的问题。
- 工具应该能够满足整个SOA支持团队的需要,整个SOA支持团队包括操作人员、SOA设备管理员, 以及从事商业活动的开发者。
- 任何已选的解决方案的设计原则都应该是便于部署且非侵入的。
上述步骤将为你提供一个很好的通向成功的SOA应用的起点。