简介
PureApplication System 提供了一个灵活的平台来运行云基础架构中的各种不同应用程序工作负载。这个设计旨在让机架上运行的应用程序实现高水平的可用性,从而帮助消除单点故障。
追求最高水平灵活性的企业必须考虑如何跨多个系统和地理上分散的数据中心中运行其工作负载,使得任何硬件、本地网络或电源供应以外的问题都不会造成漫长的服务中断。
本文介绍了一种适用于使用 PureApplication System 的多站点环境的设计,同时描述了跨这两个站点部署的应用程序工作负载如何继续通过一系列可能发生的故障场景提供高可用性。作者在撰写本文时考虑到了基础架构和应用程序架构师的利益,帮助他们理解如何使用 PureApplication System 来满足较为苛刻的非功能性需求。
文章 PureApplication System 的高可用性拓扑结构 介绍了一些用来实现运行在 PureApplication System 机架上的应用程序和多机架设置的高可用性的拓扑结构,建议您先阅读下列这篇文章,然后再继续阅读本文。
建立高可用性 Web 应用程序
真正的高可用性解决方案需要跨越多个地理上分散的数据中心。在本文中,我们将讨论这样一个设计,假设我们使 PureApplication System 机架在两个不同数据中心的同一个应用程序上运行,而且它们之间有一个广域网。网络基础架构包含负载平衡功能,以便跨两个站点平均分配应用程序的用户请求。
在进一步讨论我们的设计之前,需要选择一个要关注的应用程序类型。在设计支持高可用性的拓扑结构的时候,应用程序基础架构是一个关键的考虑因素。诸如拓扑数据存储在应用程序的什么位置,以及使用什么方法处理应用程序中的连续用户请求,这类问题都将影响如何实现高可用性服务的选择。例如,如果用户的购物车状态保存在连续用户请求之间的内存中,那么高可用性基础架构必须考虑需要执行的行为(如果该组件受到运行中断的影响)。通过选择一个简单常用的示例应用程序基础架构,并做出一些相关假设,我们可以提供该主题的简要介绍。
我们主要关注一个由应用程序服务器组成的典型的三层 Web 应用程序基础架构,该服务器已经配置了一个 Web 服务器,并且受到数据库的支持。为了进一步简化讨论,我们假设所有应用程序数据都存储在数据库中,而应用程序层中未存储数据。这样,我们将重点关注如何实现在 PureApplication System 上运行的应用程序的高可用性,同时不会使得围绕数据复制和并行的讨论变得更加复杂。这些重要主题将在后续文章中进一步讨论。
我们还假设应用程序的数据库组件在 Web 应用程序的单独基础架构上进行管理,这是大多数用户环境的惯例。当然,数据库也应该是高度可用的,所以在 PureApplication System 上运行的应用程序将从每个数据中心远程连接到高度可用的数据库基础架构。最后,我们假设客户端有冗余的负载平衡,作为核心网络功能的一部分,可以跨远程数据中心分配请求。
图 1 展示了一个样例设置概述,该样例包含我们介绍的特性。
图 1. 一个样例多站点设置的概述
这个基础架构允许机架位于地理上分散的数据中心,并且这些机架将在 "Active-Active" 模式下进行操作。这意味着两种机架都可以处理用户在正常操作环境中的实时生成需求。如果机架或数据中心出现故障,那么用户请求会被路由到操作机架并继续获得服务。在解决问题之后,将由这两个机架重新处理负载。
跨两个系统部署的应用程序
我们来详细介绍该设置中的 PureApplication System。因为我们重点关注的是 Web 应用程序,所以需要一个 Web 服务器、一个应用程序服务器和应用程序本身,这些都安排在支持高可用性的拓扑结构中。这对于讨论实际应用程序非常有用,所以我们以 TradeLite 为例进行说明。
样例 Web 应用程序和数据库
TradeLite 是 IBM WebSphere Application Server 端到端基准测试程序和性能样例应用程序。设计并开发基准测试程序是为了了解 WebSphere 的广泛编程模型。这提供了一个促进 Java Platform Enterprise Edition 1.4 和 Web 服务的 WebSphere 实现的实际工作负载,包括关键 WebSphere 性能组件和特性。
TradeLite 并不依赖任何需要在应用程序服务器层上维护的状态,其相关数据库可在与样例设置设计完全吻合的远程数据库服务器上运行。
要实现高可用性服务水平,应用程序需在集群应用程序服务器上运行,因此,在每个机架上,应用程序请求都可以通过多个节点获得服务。要在 PureApplication System 上实现这点,可以选择一个 WebSphere 模式作为提供这种集群功能的标准 – WebSphere 集群模式。
WebSphere 集群模式
WebSphere 集群模式是一种虚拟系统模式。
图 2 展示了 PureApplication System 模式编辑器中的自定义 WebSphere 集群模式。