转:使用 TSAM 扩展来管理 J2EE 应用程序
?
对于本文及姊妹篇中定义的标准化业务应用程序,可以通过下面的内容设置一个负载均衡器策略:
Protocol:HTTP。Virtual Server Type:在测试应用程序时使用 Standard 类型;在将其部署到客户端时使用 Performance 类型。Connection Pool:如果选择的是 Performance VIP,则将自动选择该选项,如果选择的是 Standard VIP,则可以决定是否使用该选项。 Session Persistence:该参数取决于业务应用程序的特征。如果需要设置,记住扩展代码在 BIG-IP 设备上配置了 cookie 持久性文件,BIG-IP 设备使用客户端计算机上存储的 HTTP cookie 将客户端重新连接到某个网站中此前访问的均衡虚拟服务器。如图 1 所示,负载均衡器策略传递了额外的信息:
BIG-IP 设备用于在虚拟服务器之间平衡工作负载的路由算法(图 1 中的算法)可以是 round robin(循环)、least connection(最少连接)或 predictive(预测式)。对于任何客户端请求,BIG-IP 都会运行该算法来选择合适的虚拟服务器以向其发送请求。为此,它需要获得有关平衡后的虚拟服务器的监视信息和可用性信息,这些信息由所谓的监视器定期收集。您可能会问,哪一种算法最适合本文定义的业务应用程序?这取决于应用程序的特征。
最简单的算法是 round robin;BIG-IP 将从响应监视器的虚拟服务器的循环列表中选择下一个服务器。 一种更高效的算法是 least connections;按照这种算法,BIG-IP 将保留每个均衡后的虚拟服务器处理的连接的统计数据,然后向连接数最少的池成员传递一个新连接。最佳算法是 predictive;按照这种算法,BIG-IP 将使用相同的分级方法,但是仍将进行趋势分析,以确定节点性能是否改进或退化。使用的算法越好,用于执行计算所需的 BIG-IP 资源就越多。因此,您可能希望在测试业务应用程序时选择 round robin 算法,在将其部署到客户端时,则将负载均衡器策略改为 predictive。
负载均衡器策略属于一个单一的 TSAM 项目,可以从一个项目中扩展到多个虚拟服务器。可以在一个项目中部署多个策略,但是每个策略都需要一个专门的 VIP:port 对来处理外部访问。
现在,让我们看看如何在工作负载增加时添加应用服务器,并在工作负载减少时移除它们。
当出现相反的情况(您的趋势分析报告表明业务应用程序的利用率下降),您可能希望释放资源,将它们用于 IT 环境中的其他用途,或降低数据中心的功耗。您可以决定是否关闭某些应用服务器或释放它们,这样做也可以释放虚拟机管理程序 (hypervisor) 的数据存储中的空间。
如果业务应用程序的管理员决定关闭应用服务器,那么会使用 TSAM Stop Server 服务,负载均衡器很快就会检测到服务器没有响应(通过监视器)并停止传递连接。它会在服务器重启后开始重新传递连接。
如果管理员决定彻底从业务应用程序项目中移除应用服务器,则会使用下面这些服务:
TSAM 用于简化云计算的最佳特性之一就是能够根据工作负载的变化自动执行管理任务,包括配置/解除配置服务器。我们稍后将详细讨论这方面的内容。
控制器驱动系统执行自调优操作,将业务应用程序要求的 SLA 与当前观察到的行为进行比较,并决定要执行的操作:它将决定何时配置或解除配置应用服务器,何时启用休眠的应用服务器,以及何时关闭空闲的服务器。
资源监视器是收集 Web 应用程序及底层虚拟服务器的状态的组件。这些是启动控制器处理的关键输入数据。为控制器提供数据的模式可以基于定期的资源检查,或可以由事件驱动;具体将根据监视器所采用的技术进行选择。
资源管理器是一个制动装置 (actuator),该组件负责配置/解除配置应用服务器并更新负载均衡器策略。本文讨论的场景中将使用 TSAM 和 BIG-IP F5 Load Balancer 的扩展。
下面提出了两种解决方案,都需要 TPAE 定制和集成技巧 (Maximo Enterprise Adapter) 和基于 TSAM REST 的 API 技能:
让我们详细了解这两个解决方案。
利用 BIG-IP
图 4 描述了在这种情况下如何实现通用解决方案。

控制器在 TPAE 平台上实现,该平台使用预调度的任务(图中的 TPAE Cron Task)定期检查资源的状态,然后采取相应的操作。将对资源的检查发送给 BIG-IP 负载均衡器,并在控制器中包含一个支持库,用它来访问设备的 IControl 接口。
IControl 接口可以支持各种编程环境(如 Java?、.NET?、Python、Perl),并允许以较为灵活的方式实现该解决方案。对于 Java 编程语言,支持库为 JAR 文件。
当控制器检测到所监视的应用程序的统计数据出现报警值时,它会确定后续操作以维持系统的效率和可用性。然后将调用 TSAM 的 REST API 接口并提交服务请求,完成配置任务。
利用 IBM Tivoli Monitoring
如图 5 所示,解决方案依赖 ITM 代理监视应用服务器的状态。

要实现此目的,您需要在应用服务器上安装 ITM 代理并进行相应地配置。可以在请求业务应用程序的 TSAM Project 时完成该配置,或通过在用于实例化应用服务器的虚拟镜像中嵌入 ITM 代理来完成该配置。统计数据随后被上传到 ITM 服务器并转发给 OMNIbus,以便进行事件处理。
当事件到达 OMNIbus 后,可以通过一个定制的退出程序调用 TSAM REST API;甚至可以利用 OMNIbus-Service Request 管理器集成来提交配置请求。
现在,让我们看看另一个主要的问题:在需要为给定的企业应用程序修改安全设置时,如何修改防火墙规则。
防火墙规则允许源子网发起特定的协议流量并到达目标子网。源和目标子网(图 6)通常是使用 CIDR 符号(子网地址/识别子网的 IP 地址的位数)指定的完整子网。不过,如果希望允许特定主机的流量,某个 IP 地址可以被同时指定为某个防火墙规则的源子网和目标子网。
您可能会注意到,您无法指定规则来拒绝流量。扩展的一些要点是它具备以下能力:
简化业务应用程序的请求者的工作 尽可能减少安全风险。因此,防火墙策略始终包含一条无法改变的潜规则:拒绝所有流量。因此,您的管理员只能够以例外的方式允许流量。这是这一特性的一种简单、低风险的实现。
为了进一步简化管理员的工作,可以使用以下三种防火墙规则:
From Internet 规则:这将允许从 DMZ 发起并流向项目子网/VLAN 的特定协议流量。您可以使用符号 0.0.0.0/0 表示任意地址;从 0.0.0.0/0 到 192.168.0.0/16 的 From-Internet 规则即表示 DMZ 中的任何 IP 地址都可以发起到子网 192.168.0.0/16 的连接。回页首
结束语
在本文中,我们解释了如何借助 Juniper SRX Firewall 和 BIG-IP F5 Load Balancer 的 TSAM 扩展来处理在云中部署的 J2EE 业务应用程序的生命周期管理问题。我们特别解释了如何恰当地调优负载均衡器来处理业务应用程序的工作负载,如何通过添加和移除应用服务器来响应业务应用程序的利用率变化,最后我们介绍了如何高效使用防火墙来锁定对您的服务器的访问。
使用 TSAM 扩展来部署 J2EE 应用程序 中描述了对业务应用程序的初始配置。您可以了解如何创建由虚拟服务器组成的 TSAM Project,这些虚拟服务器隐藏在 BIG-IP F5 负载均衡器背后,并通过由 Juniper SRX 防火墙管理的 VLAN/子网进行限制。
参考资料
学习
本文的姊妹篇 使用 TSAM 扩展来部署 J2EE 应用程序,展示了如何在 TSAM 中设置和配置扩展,从而安全地将一个三层式企业应用程序部署到云中。获得产品和技术
访问 IBM SmartCloud Enterprise 站点,获得当前的云产品。讨论
阅读 developerWorks 上的所有云博客。作者简介
Michele Crudele 在罗马的 IBM 软件部 Tivoli 实验室担任软件架构师。他拥有 20 年的 IT 从业经验,主要从事系统管理产品和解决方案的开发工作。Michele 曾从事过不同类别的工作,拥有广泛的技术经验,比如变更配置管理、监视和可用性管理、IBM 自主计算技术及出版行业的数字资产管理。Michele 目前致力于云计算解决方案的开发,是 TSAM 扩展的首席架构师。
Fabio Cerri 在罗马的 IBM 软件部 Tivoli 实验室担任软件设计师。他拥有 12 年的 IT 从业经验,主要从事系统管理产品和解决方案的开发工作。Fabio 曾从事过不同类别的工作,拥有广泛的技术经验,比如变更/配置管理、软件许可管理和云计算解决方案,目前是 TSAM 网络和存储扩展的首席设计师。