企业SOA应用性能管理问题和解决策略
 
2009-03-12 来源:网络
 

把SOA性能管理的重点放在应用程序测试阶段,或者试图专门使用传统的解决方案和网络管理工具管理生产环境中的SOA应用等做法将使你遭遇灾难,损害客户满意度和企业声誉。生产环境中的SOA和服务级协议管理必须建在整个SOA战略中。

最近一项对北美、欧洲和亚太地区的调查显示,600家大型企业已经在投资SOA或者正在认真考虑投资SOA。这个调查证实,SOA实际上正在成为更加主流的应用并且其应用正在加快。

如果你在阅读这篇文章,你很可能已经认识到了SOA的好处,已经部署了一个SOA应用,或者正在认真考虑部署SOA并且需要认真研究SOA应用性能管理(APM)。下面介绍实现SOA性能的一些途径。

治理、管理和保证安全

SOA与许多新技术的一个共同特点是虽然它简化了可见的、面向用户的流程或者服务,但是,它给底层的基础设施增加了巨大的复杂性。应用性能管理可以看作是SOA基础设施管理工具的三条腿之一。其它两条腿是安全管理和治理。所有这三条腿对于管理SOA基础设施以提供更高的性能、安全和结构化的SOA环境是非常重要的。

测试与生产

SOA性能根据应用程序生命周期可以分为两个主要阶段。第一个阶段是性能测试,发生在应用程序开发过程中。在这个阶段,旨在模拟生产环境的负载测试用于各个阶段以保证应用程序的功能行为达到可接受的性能水平。开发周期的最后质量保证阶段一般包括测试应用程序代码在测试环境中的最大工作量,然后才能宣布这个应用程序能够用于日常生产环境中。这个水平的测试在任何开发机构都是必须要进行的。没有任何机构会在没有进行包括某种水平的性能测试在内的最终的质量保证流程就考虑发布一个重要任务应用程序。当一个应用程序退出质量保证流程并且进入生产环境的时候,性能的重点就从代码路径验证和严格测试转向了生产性能管理。

包含性能在内的第二个阶段是在应用程序进入生产环境之后立即进行监视、报告和与应用程序有关的分类。这个活动一般解释为应用程序性能管理。它与治理保证测试活动同样重要,甚至更重要,因为实际生产中出现糟糕的性能将影响用户的应用程序服务,在内部和外部都非常容易看到。遗憾的是在最初的SOA战略规划阶段,这个阶段经常被忽略或者没有给予足够的重视。

服务级协议管理

许多机构以服务及协议的方式制定一些合同以定义一个应用程序的目标和可接受的最低性能水平。在讨论零售等方面的B2C环境、在线银行或者其它自助服务门户等外部的面向用户的应用程序时,人们经常想到服务级协议。事实上,服务级协议应该成为所有的应用程序的DNA的一部分。外部客户或者供应商服务级协议也许要更严格,但是,企业自己的员工也需要可预见性的和可靠的内部应用程序性能。虽然面向外部的应用程序发生故障或者运行缓慢在损失收入和破坏企业声誉方面的代价是很大的,但是,糟糕的面向内部的应用程序的性能在损失生产率和员工士气方面的代价也是很大的。

就像针对外部和内部用户有不同的服务级协议一样,服务级协议可以根据交易的性质和具体用户在商务流程的各个点上建立。

除了具体的服务级协议管理之外,应用程序性能管理的另一个重要方面是有一个IT部门和商务流程的拥有者都能够理解的反应用户实际体验的服务级协议的共同语言和衡量标准。虽然IT部门需要故障识别和避免故障的更详细的技术信息,但是,这个水平的详细程度对于业务部门是没有价值和兴趣的。因此,用于服务级协议管理的工具应该能够为技术人员和业务流程的拥有者制作有用的和有意义的信息。

SOA环境的复杂性

多样性是当前IT环境的生活方式。解决方案涉及到多个厂商提供的多种硬件和软件平台。这些解决方案也许分散到不同的地区和松耦合的,但是,有时候相互之间的依赖关系是非常紧密的。因此,这些环境的管理对于驱动这个应用程序的整个基础设施来说必须是可见的。

显示了一个简化的SOA基础设施,可能拥有以前显示的许多要素的一个典型的SOA环境。这里用这个图有助于显示一个典型的处理可能涉及到的各种基础设施要素。这些要素中的任何一个都可能出现故障或者减慢指定的应用程序或者处理的速度。当发生这种事情时,需要立即进行排查,在出现减慢速度的结果之前迅速找到发生故障的组件并且直接改正资源的问题。这突出表明了需要一个能够提供整个处理路径可见性的应用程序性能管理解决方案,同时强调了为什么竖井式的监视对于快速发现和解决问题是不充分的。

不仅仅是Java

随着SOA成本主流,另一个发挥作用的变量是.NET已经成为这些复杂的SOA环境的一个企业平台。这就意味这一个指定的处理过程在通向SOA领域的道路上很可能扩展到J2EE和.NET平台。

要记住,本文讨论的是管理一个SOA,而不是根据处理过程采用的路径管理一个SOA环境的一部分。在这种跨平台的环境中,理想的是企业将使用同样的工具集监视和管理整个基础设施。根据平台使用两个不同的工具,即使这两个工具是同一个供应商提供的,也不可能提供一致的结果。无论这个处理过程路径采用什么平台,你的SOA性能管理解决方案都应用使用相同的语言和相同的衡量标准才能更加顺畅。

发展和增长

虽然SOA目前已经成为一种普遍的现象,但是,许多机构在发展老式的和分布式应用程序、Web服务和新兴的SOA方面仍处在发展的不同阶段。在你查看各种应用程序性能管理的各种方法和可用的解决方案的时候,还要查看一下你的应用程序性能管理解决方案的可移植性和伸缩性,这将提供重要的投资回报。你应该考虑这样的解决方案:增加人员最少、在你的环境中工作并且随着你的环境变化而增长、伸缩和适应。天才的服务台和技术支持人员是很难发现、培训和保留的。要能够让新手明白和使用,同时还能为技术专家提供详细的有价值的信息的应用程序性能管理解决方案能够帮助你最大限度地实现人员方面的投资。同样,随着你的不断发展的基础设施一起成长的解决方案能够提供操作做法的一致性,无论你处在SOA道路的什么地方。

从这里走向哪里?

SOA基础设施显然已经成熟了,并且正处在实现节省成本、提高效率和增加业务结果的诺言的不同阶段。如果你的基于SOA的商务流程要取得成功,管理用户体验是极为重要的。管理用户体验包括保证你理解用户、商务流程和你通过这个商务流程为用户提供多么好的服务。应用程序性能管理是三个关键的基础设施管理工具之一。你需要利用这些工具成功地用户体验。


火龙果软件/UML软件工程组织致力于提高您的软件工程实践能力,我们不断地吸取业界的宝贵经验,向您提供经过数百家企业验证的有效的工程技术实践经验,同时关注最新的理论进展,帮助您“领跑您所在行业的软件世界”。
资源网站: UML软件工程组织