

让我们把目光从整个社会的大范畴聚焦到一个企业,信息技术的发展已经到了一个极制。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拥有专门的数据存储。