绪言 显而易见,信息技术现已成为企业核心竞争力的一个重要组成部分,是业务成败的决定因素。信息技术通过不断的技术创新,一方面不断完善自身的体系结构和实施手段;另一方面,它引导新业务模式的产生,成为生产力提升和变革的原动力。正是由于信息技术对于企业经营模式,乃至整个社会沟通方式所产生的显著而巨大的影响,它已经从一个辅助性的角色,转变成为众人所瞩目的重点话题。
让我们把目光从整个社会的大范畴聚焦到一个企业,信息技术的发展已经到了一个极制。7×24的全天候访问,跨越软硬件平台的无限可扩展性,简单、一致的用户自助服务界面…诸如此类的苛刻要求,都是为了满足业务部门"更快、更高、更强"的要求而制定的。然而,在信息系统满足了上述的种种要求之后,其自身的结构也变得异常的复杂。在一个典型的企业应用环境中,从后台的硬件存储开始,往往要通过数据库、应用服务器、Web服务器和客户端应用几个技术层次来实现业务操作,其中还会由若干承担具体任务的中间件产品和技术扩展,来提供诸如均衡负载、高可用性、可伸缩性等企业计算所必须具备的功能。下面的图示反应了这类企业的基本技术构成元素和层次:
如此复杂和功能强大的信息系统为企业业务目标的实现提供了技术上的保障,然而,这还不足以实现提高生产力的最终目标。一个企业应用的评估标准应该有两个,一个是可实现性,一个是运行效率。对于前者,我们通过基础架构和技术组件来达成,而后者,传统的实现方法是通过专门的维护团队来保证的。对单一类型的应用而言,"效率",也就是"性能",通过这种方式,是能够得到保证的。无论是数据库,还是应用服务器,乃至在更加复杂的定制应用和打包应用领域,都有厂商或者集成商的专业技术人员来为之提供支持服务。对于用户而言,无论是依靠厂商的服务,还是自己拥有的系统维护团队,对于单一类型的应用系统尚且能够确保性能,尽管,随着特定技术之间的交叉、融合,只单纯掌握一种技能的人员,已经越来越难以应付系统性能所提出的挑战。
在进入21世纪之后,随着Web技术成为数据展现和操作访问的事实标准,企业利用这个平台,将原来分散的子系统进行着整合。尽管应用整合可以通过多种手段来实现,但J2EE的出现,由于其天生具备良好的开放型和可扩展性,使之在应用整合和开发的过程中发挥了愈来愈显著的优势。
采用J2EE技术部署基于Web的应用,已经显著改变了服务的基本经济原则、竞争力和用户界面。基于Web的应用迅速代替成本更高的"人员协助"传统服务。这种新一代应用为企业提供了独一无二的机会,使之能够利用传统系统,在多个服务"层"之间分配应用,充分利用新计算技术的优势。虽然这些基于Web的应用为公司提供了无与伦比的灵活性,但更加复杂的应用却使所在的基础设施面临不断的改变和超高的负载,应用性能的下降所导致的不良用户体验,反而降低了客户的满意率和忠诚度。
当今的用户都期望能在世界各地随时访问网站。如果应用的用户发现屏幕底部的蓝色进度条从左到右前行的速度过慢,他们就会离开该网站,而且通常不会再次访问。同样,如果服务水平没有达到期望值,现有客户端通常会重新使用陈旧的、高成本的旧用应用来处理业务,或者开始关注其他供应商或服务。从而,企业的管理者认识到,由于目前业务对于信息系统的依赖性,如果不能遏制应用性能下降导致的客户流失,如果不能克服复杂性所导致的迟缓的故障排查,对于J2EE在内的新技术的使用都会适得其反,导致业务的下滑。
方法论和解决方案 在这种情况下,一种对于应用性能进行监控、报告、分析、改进以及趋势预测的技术应运而生,我们把这类技术成为应用性能管理(Application Performance Management)。它具有以下几个鲜明的技术特色:
1. APM着眼的是应用系统整体的性能管理,而非仅仅针对某个技术层次的"烟囱式"的解决方案。从性能指标的检测开始,APM就是以最终用户的响应时间为主要的衡量标准,在第一时间将问题定位于某个技术层次;在问题得到修改之后,它也会从应用整体响应时间的角度,测量改进之后的性能。
2. APM的视野不仅足够宽广,而且足够深入。对于每个技术层次,APM都能够溯本求源,准确定位导致性能下降的根本问题。而且,它提供专家级的建议,通过最佳实践帮助使用者尽快进行修复。
3. APM考察应用系统的性能依据,来自于用户的真实操作数据。同比传统性能调优工具使用的模拟数据,APM才能够收集到用户实际的体验,将使用习惯、业务波动和技术指标综合考虑。显而易见,这种数据只能来自于生产环境,而APM依靠其对于应用超低的负载,能够实施7×24的长期监控,是那些产生高额负载的性能调整工具所不能比拟的。
4. APM拥有专门的数据存储。APM将采集的数据经分析之后存放起来,而非在考察之后就抛弃,或者仅仅保留短时间的性能数据。只有这样,使用者才能够通过对于长时间的历史记录的分析得到结论,从而了解:过去曾经发生过什么,现在正在发生什么,以及今后即将发生什么。这就使得,APM不仅仅是一个在性能问题出现后进行补救的工具,而且能够为系统的维护团队提供预警信息,在性能问题真正开始影响用户的使用之前,就将其改正,保证为用户提供一个性能可靠,坚如磐石的应用系统。
VERITAS i3 for J2EE就是一种典型的APM解决方案,它基于一种旨在便捷地对应用性能问题提供快速隔离、分析、纠正和校验的方法论,由以下5个阶段构成:
1. 检测 --识别并且显示性能问题的症状
2. 查找 --识别问题来源,将其隔离在某个技术层次
3. 聚焦-- 发现问题的根源所在
4. 改进--提供基于最佳实践的建议,以改进性能
5. 验证--确保实施的措施能够达到预期目标
以上的五个步骤依照以下顺序执行:
1. 使用VERITAS i3 for J2EE的告警功能,进行主动和/或被动检测。这种告警可能发送到相应的基础架构组件、组织或个人,此外,负责性能的组织中的相关人员可以长时间检测服务,同时查看各种进程(如EJB、URL)的性能趋势;
2. 诊断专家们可以端到端地查看应用,根据每个技术层次在响应时间中所占的比例,查找是那个技术层次导致性能降低;
3. 在将问题聚焦到某个技术层次之后,通过"钻取"功能,彻底定位根源问题;
4. VERITAS i3提供经过验证的最佳实践,协助使用者改正应用问题。它甚至可以同特定的应用服务器(如BEA Weblogic)紧密关联,取得和改写某些配置参数;
5. 在将改进真正提交到生产环境之前,VERITAS i3 for J2EE提供测试功能,以验证预期的效果是否达成,并且确定没有对相关应用的性能造成负面影响;
通过以上的描述我们能够看到,VERITAS i3 for J2EE是一个集成的应用性能管理解决方案,它专注于确定用户体验和服务水平。
它能够识别端到端的资源占用情况,从浏览器开始、跨越J2EE应用服务器,通过数据库一直到物理存储器的监控和检测应用性能情况,以用户响应时间为统一的标准来衡量各个技术层面的性能。这种方式,避免了负责各个技术层面的厂商和技术人员相互推卸责任,大大提高了隔离问题的速度。
在确定问题之后,深度钻取的能力又向使用者提供了专家级的修改建议,协助快速修改问题。所以,我们可以看到,VERITAS i3 for J2EE的视野足够宽广,它覆盖企业应用的广泛领域;而且深入得足够彻底,它可以从代码,甚至物理存储得角度来进行性能的管理。
VERITAS i3 的产品组成分为Insight、Indepth和Inform三个部分。这些产品无缝集成,共同关注关键应用组件――这样就提供了一个完整的端到端性能管理解决方案。此外,VERITAS i3的每一个组件都能作为一种独立产品单独运行,以满足特殊环境和应用的需求。下图说明了VERITAS i3的体系结构组件。
Insight --"什么原因导致运行缓慢?" 当前的应用利用了多层体系结构,以提供多功能性,但这些体系结构却使我们很难确定性能降低的原因。Insight带有TotalCorrelation,能够测量所有体系结构层(从URL到SQL)的响应时间,并将响应时间按层分段,从而确定"什么原因导致运行缓慢?"。
Indepth --"应该怎样进行修复?" 在整个IT基础设施上,全天候地捕捉关键性能指标(KPI),确保无论何时开始出现性能降低,都能识别出问题。然后利用SmarTune,钻取到部件级技术,如Web服务器、应用服务器、中间件、数据库以及存储器等,以自动确定最终的问题根源,生成专家调节建议。Indepth可识别"为什么"产生问题,以及"如何"修复问题。
Inform --"现在是否存在性能问题?过去有没有?未来会不会有?"
了解应该"何时"专注于性能问题,与"如何"修复问题同样重要。如果没有掌握趋势、基线、期望值和告警,则很难有效管理应用性能。即使发生最轻微的性能降低,Inform 也能发出及时通知,从而提供最充裕的时间,便于用户使用SmarTune提供的调节建议。无论通知的原因是无法达到服务水平,或是性能标准开始降低,用户都能及时收到信息。
VERITAS i3 包括VERITAS Performance Warehouse,该产品为相关端到端的数据历史提供通用库,从而实现趋势分析和特定时间性能审查。该库能够导出数据,供其它分析工具使用,也能导入应该包含在一些分析报告中的测量标准。
例如,假设您面对一个企业级Web应用,其中包括Web服务器、J2EE应用服务器、Tuxedo以及Oracle 数据库,您应该选择VERITAS i3 for J2EE 解决方案对其实现性能管理。其包括所有必需的功能。
查看本文来源