在 IBM PureApplication System 中管理应用程序运行时环境

在 IBM® PureApplication™ System 中,部署人员将应用程序部署到由管理员使用云组和环境配置文件定义的运行时环境中。在管理员设置 PureApplication System 时,您需要考虑并创建哪些云组和环境配置文件?

Bobby Woolf, 经过认证的顾问 IT 专家, IBM

Bobby Woolf 的照片Bobby WoolfIBM Software Services for WebSphere (ISSW) 的一名顾问,专注于 IBM PureApplication System、面向服务的架构、事件驱动的架构和应用程序集成。他是 Exploring IBM SOA Technology and Practice 的作者及 Enterprise Integration PatternsThe Design Patterns Smalltalk Companion 的合著者之一。



2012 年 12 月 10 日

简介

在 IBM PureApplication System W1500 v1.0(以下简称为 PureApplication System)中,开发人员将应用程序(称为模式实例)部署到由管理员使用云组和环境配置文件定义的运行时环境中。在管理员设置 PureApplication System 时,您需要考虑并创建哪些云组和环境配置文件?

举例而言,一个应用程序开发生命周期通常需要为每个开发阶段提供独立的运行时环境,该环境可能是 DEV、TEST 和 PROD。这些环境应该是分开的,以便每个阶段中的活动不会干扰其他阶段。类似地,它们可能需要进一步细分,比如针对部署到 TEST 或 PROD 的多个应用程序的子环境。如何使用 PureApplication System 云组和环境配置文件来实现这样的分离呢?

要确定您将需要的云组和环境配置文件,需要首先理解这些产品特性的用途,这意味着首先理解云计算的一些目标和硬件资源如何虚拟化。我们随后会讨论 PureApplication System 中用于管理虚拟化资源的特性,最后介绍使用这些特性的战略。我们还会分析可从这些战略推断出哪些原则。


云概念

要理解 PureApplication System,首先应该回顾一下云计算的一些基本概念。

云计算支持工作负载(通常称为运行的程序)根据需要采用一种可控的方式共享计算资源,使所有工作负载能够同时成功地运行。要完成此任务,必须满足多个相互矛盾的目标:

  • 隔离:工作负载可彼此隔离,使一个工作负载中的问题(比如一个失去控制的进程使用了所有 CPU 或内存)不会影响其他工作负载。
  • 共享:工作负载利用公共的资源池,所以在一些工作负载需要的资源较少时,另一些工作负载可使用更多资源。
  • 分配:每个工作负载或一组相关工作负载会获得一组有限的共享资源,以确保它能够成功运行,但限制了它的增长,使它不会获取超过合理范围的资源份额。

这些相互矛盾的目标必须得到平衡。假设所有工作负载都是完全隔离的,这就是旧式的计算模型,其中每个应用程序都部署在独立的硬件上。如果工作负载共享所有资源,某个工作负载获取的资源越多,剩余工作负载缺乏资源的速度就会越快。分配通过将工作负载分组来尽力实现平衡,允许在一个分组内共享资源,允许每个组从公共资源池中获取资源,确保每个分组获得有限量的资源。这有助于确保每个工作负载获得合理的资源份额,对解决资源争用特别有帮助。

资源隔离

资源隔离可在资源集之间建立形象的隔离墙,使它们可以独立操作。某个有围墙的区域内的问题不会影响其他有围墙的区域。这么做的后果是,无法跨有围墙的区域进行资源共享。

云计算中的隔离的两个主要方面包括:

  • 计算隔离:CPU 和内存容量分组彼此隔离。当两个工作负载在计算隔离下执行时,某个工作负载对这些资源的使用不会影响其他工作负载。该隔离可以是物理的,也可以是虚拟的。
    • 物理计算隔离:也称为专用的资源,每组资源由电路板上独立的芯片组成。
    • 虚拟计算隔离:也称为虚拟化的资源,一个虚拟化层创建看起来分开的资源分组,分组中的资源实际上共享相同的芯片。提供的隔离效果取决于实现它的虚拟化程序(通常是一个虚拟机管理程序)。
  • 网络隔离:计算资源之间的通信通过不同的连接来传输。这种隔离可以是物理的,也可以是逻辑的。
    • 物理网络隔离:不同的网络连接在并行的网络设备集(例如网络接口卡 (NIC)、网线、交换机等)上运行。这样,一个网络的信号从不会在其他网络的硬件上传输。
    • 逻辑网络隔离:不同的网络连接在同一个网络设备上运行,所以它们会共享相同的带宽,但它们的数据包是通过用不同广播域分开的共享硬件来路由的。广播域通常实现为一个虚拟局域网 (VLAN)。

资源共享

资源共享支持多个工作负载访问共享资源池中提供的资源。工作负载不关心它从一个池中获取哪种资源;这些资源都是等效且可互换的。当一个工作负载需要大量资源时,它可以从池中获取多项资源;在其他时刻,它会从池中获取较少的资源。当它完成一项资源的使用后,它会将该成员释放到池中。

共享的优点在于,系统可动态地分配资源,随时从需要更少资源的工作负载将工作负载转移到需要更多资源的工作负载。共享的一个后果是,行为异常的工作负载可能使用一个池中的太多资源,而其他工作负载没有足够的资源可用。

资源分配

资源分配(也称为 “逻辑隔离”)是一种通过在资源共享上设置下限和上限来在工作负载上设置界限的方法。分配可确保一个工作负载获取至少它需要的最少资源,并且不会消耗比资源池中的合理份额更多的资源。可在任何共享资源上设置分配限制:CPU、内存、存储、带宽,甚至是软件许可。或许共享一个池的两个工作负载可分别指定 5-10 个 CPU 的 CPU 使用,使每个工作负载可保证至少有 5 个 CPU 可供使用。但是,当工作负载增加时,它最多只能获得 10 个 CPU。

分配将会平衡隔离和共享,在允许每个工作负载获取专用资源但不共享这些资源与允许任何工作负载获取所有共享资源的无限制共享之间找到一个合理的平衡点。分配支持共享,但具有限制。


PureApplication System 环境特性

要理解如何在共享资源时最佳地使用 PureApplication System 来隔离资源,应该先了解该产品提供的云形式共享资源的主要特性,这对您很有帮助。

PureApplication System 中有 5 种类型的系统资源会参与部署和运行模式实例。这些资源定义了可部署某种模式的运行时环境,控制一个模式实例运行时可使用的资源。它们是:

  • 计算节点:这是一组计算机硬件,包含能访问存储和网络的 CPU 和内存。
  • IP 组:这包括一个 IP 地址列表或范围、它们所属的 VLAN 的 ID 和连接到 VLAN 所在的外部网络的方式设置。
  • 云组:这是一个或多个计算节点和一个或多个 IP 组的结合。它在本质上是一个逻辑计算机。它从物理上隔离资源。
  • 环境配置文件:这是一个将模式部署到云组中的策略。它通过分配资源来建立资源的逻辑隔离。
  • 用户组:这是同一个角色中的一组用户。

环境配置文件将用户组与云组相关联,使这些用户组中的用户能够将模式部署到这些云组中,如图 1 所示。环境配置文件向用户组授予访问权限,指定谁可使用该配置文件部署模式。一个配置文件可向多个用户组授予访问权限,可以向一个用户组授予访问多个配置文件的权限。环境配置文件还指定了可以将它部署到哪些云组。多个环境配置文件可部署到同一个云组,一个配置文件也可以部署到多个云组。

图 1. PureApplication System 资源之间的关系
PureApplication System 资源之间的关系

图 2 给出了这些系统资源的一些实例的可能形式。

图 2. 典型的 PureApplication System 资源实例
典型的 PureApplication System 资源实例

对于一个给定的用户组、环境配置文件和云组的组合:

  • 用户组指定哪些用户可以使用环境配置文件来部署模式。
  • 环境配置文件指定用户可将模式部署到云组中。
  • 云组指定将用于运行所部属的模式(也就是模式实例)的硬件(具体来讲包括计算节点和 IP 组)。

环境配置文件中的设置控制了在部署一个模式实例时在云组中分配给它的资源。这些设置会成为模式实例中的设置,控制云组如何运行和管理实例。这可以帮助协调和控制多个模式实例如何在同一个云组中部署和运行。如果实例通过不同的环境配置文件部署,可将以不同方式设置实例的设置,以为不同的资源使用不同的限制。(请参阅 环境配置文件 一节,了解有关的更多细节。)

PureApplication System 管理控制台分为两个主要的选项卡:

  • 系统控制台:可供管理角色使用。它提供了访问工件以执行操作的能力,应由硬件管理员(也就是管理 PureApplication System 的用户)管理。
  • 工作负载控制台:可供部署人员角色使用。它提供访问工件以执行开发的能力,应由工作负载管理员管理,比如在 PureApplication System 上开发和部署模式的用户。

云组是在系统控制台上进行管理的,而环境配置文件是在工作负载控制台上进行管理。模式部署人员应将环境配置文件(而不是云组)视为他们的部署目标。但是,应该将环境配置文件视为一种隐藏云组的方式,它是一种不完美的抽象:当部署一种模式时,您要选择一个环境配置文件。但是,对于每个虚拟部分,您随后还需要选择一个云组,或者至少需要接受默认设置。

计算节点

计算节点实际上是一个计算机,很像是一个刀片服务器。作为计算机的计算节点可以运行一个操作系统;但在 PureApplication System 中未使用传统的操作系统,每个计算节点运行一个虚拟机管理程序。下面的简短摘要是您需要了解的计算节点的所有信息。如果想要了解更多硬件细节,请参阅 PureApplication System 硬件功能 一节。

一个计算节点包含:

  • CPU:一个包含 16 个物理(32 个逻辑)核心的 Intel® 计算节点。
  • 内存:一个包含 256 GB RAM 的 Intel 计算节点。

它能够访问所有计算节点共享的资源:

  • 存储:一个 PureApplication System 包含两个 IBM Storwize V7000 存储单元,每个单元包含 6.4 TB SSD 和 48 TB HDD 用作 SAN 的存储。
  • 网络:一个 PureApplication System 包含两个 BLADE Network Technologies (BNT) 64 端口以太网交换机,这两个交换机结合形成了它的内部网络硬件的中心,是它连接企业网络的方式。

IP 组

IP 组 是一个 IP 地址列表或范围。一个地址只能属于一个组。它还拥有它们所属的 VLAN 的 ID 设置,以及连接到 VLAN 所在的外部网络的方式设置。

IP 组提供了三种功能:

  • 动态 IP 地址共享:一个 IP 组是一个共享的地址池,在部署运行应用程序(也称为模式实例)的虚拟机时会从中获取 IP 地址。
  • IP 地址池隔离:两个团队可分别使用一个不同的组,以便在一个团队部署太多应用程序并使用完它的所有地址时,另一个团队仍可部署应用程序,因为它使用了不同的池。
  • 逻辑网络隔离:IP 组的 VLAN ID 指定的 VLAN 支持该组的应用程序在一个隔离的逻辑网络上进行通信。这意味着使用两个具有不同 VLAN ID 的 IP 组的应用程序的网络流量(看起来)会在不同的网络上传输。举例而言,这有助于将一个模式的 HTTP 服务器部署在一个与 WebSphere Application Server 自定义节点和应用服务器不同的网络上,以便在这两层之间放置一个网络防火墙。它还有助于隔离不相关的应用程序的网络流量(比如开发与生产,或者财务部门与人力资源部门)。

要定义一个组,企业的网络管理员需要指定该组的所有设置:IP 地址集合、VLAN ID 和其他指定如何连接到企业网络的设置,比如网关、子网和 DNS 主机。PureApplication System 管理员不会选择这些设置。他使用网络管理员为他提供的设置定义 IP 组。

对于网络管理员提供的一组网络设置,PureApplication System 管理员可选择设置多少个 IP 组。网络管理员指定的设置包括:

  • 一组网络设置:网关、子网、DNS 等
  • 该网络上的一个 VLAN 的 ID
  • 该 VLAN 上的一组 IP 地址

PureApplication System 管理员随后可以捕获这些设置作为一个或多个 IP 组。每个 IP 组都会具有相同的网络设置和 VLAN ID。区别在于这组 IP 地址可拆分为多个 IP 组。一个 IP 地址只能属于一个 IP 组,所以 IP 组的数量可少到一个,也可多到与集合中的地址数量相同。例如,如果一个集合包含 10 个 IP 地址,您可创建以下任何一种选项:

  • 一个包含所有 10 个地址的 IP 组
  • 两个分别包含 5 个地址的 IP 组
  • 10 个分别包含一个地址的 IP 组

再次声明,这些组中的每一个都有相同的 VLAN ID 和其他网络设置,不同的只是 IP 地址集合。

云组

一个云组完成两个主要目标:

  1. 系统划分:它将一个 PureApplication System 系统划分为一个或多个逻辑计算机。每个组彼此隔离地运行。
  2. 计算节点聚合:它将一个或多个计算节点与至少一个 IP 组一起分组到一个逻辑计算机中,该计算机可能具有比单个节点更大的容量。

图 1 显示了云组、计算节点和 IP 组之间的关系:一个云组包含计算节点和 IP 组。

除了包含一组计算节点和 IP 组,一个云组具有 3 个主要属性:

  • Name:这是您对云组的称呼,例如 DEV、TEST 或 PROD。
  • Type:此设置定义资源(具体来讲 CPU)如何在模式部署期间分配给虚拟机 (VM)。它会影响可供一个 VM 和使用一个环境配置文件部署的所有 VM 使用的 CPU 容量,这在多个应用程序上的用户负载很高时特别有用。
    • Dedicated:没有 CPU 过度分配。这适合常常具有高用户负载的应用程序:
      • 1 个虚拟 CPU = 1 个物理 CPU
      • 一个 Intel 计算节点上的 16 个核心分配为 16 个 CPU。
      • 此设置表明,此处部署的 VM 的 CPU 容量的利用率高于分配给它们的利用率,它们通常是常常遇到高用户负载的应用程序。
      • 可将更少的模式部署到具有此设置的云组中,但它们会避免由于 CPU 过度分配而导致的资源争用。
    • Average:这是 4:1 的 CPU 过度分配。这种分配适合通常具有低用户负载的应用程序:
      • 4 个虚拟 CPU = 1 个物理 CPU
      • 一个 Intel 计算节点上的 16 个核心分配为 64 个 CPU。
      • 此设置表明,此处部署的 VM 的 CPU 容量的利用率低于分配给它们的利用率,它们通常是需要处于可用状态、但未被大量使用的应用程序。
      • 可向一个具有此设置的云组部署更多的模式。但是,CPU 过度分配意味着:当应用程序被大量使用时,它们会遇到由于资源争用而导致的性能降低。
  • Management VLAN ID:这是云组用于在其 VM 之间启用内部通信的一个 VLAN 的 ID。它必须未由网络使用。VLAN 不需要任何 IP 地址,因为会从 IP 组中向 VM 分配地址。

一个云组就像一个巨大的逻辑计算机。在一个云组内运行的每个虚拟机在云组的一个计算节点中执行,使用来自一个 IP 组的一个 IP 地址运行。IP 地址分配具有生命周期:

  • 在部署一个 VM 的模式时会为它分配一个 IP 地址(也就是说,在创建 VM 时,会在创建它的模式实例的过程中执行分配)。
  • 甚至在停止或存储模式实例时,该地址也仍然会分配给该 VM。
  • 在删除模式实例时,该地址会返回到 IP 组中。

一个特定的计算节点(最多)只能属于一个云组。通常,一个云组包含至少两个计算节点,以便该组可在其中一个节点发生故障时保持运行。这限制了一个 PureApplication System 可支持的云组数量。例如,一个小型 Intel 配置拥有 6 个计算节点,这意味着可以可支持最多 6 个云组,并且可能仅支持 3 个云组(假设每个云组有两个计算节点)。每个云组还需要它自己的管理 VLAN,所以网络管理员分配的 VLAN 数量限制了可创建的云组数量。

云组创建隔离的运行时环境,这样在一个组中运行的进程就不会受到在另一个组中运行的进程的影响。

环境配置文件

环境配置文件定义了如何将模式部署到一个或多个云组的策略,以及如何在云组中运行它们的实例的策略。要部署一个模式,用户需要选择一个配置文件来执行部署,该配置文件进而会列出部署人员可将模式部署到哪些云组。部署人员应该将环境配置文件视为用来部署模式的目标云组。对于配置文件将模式实例部署到哪个云组,工作负载级用户(比如部署人员)不需要知道这个系统级细节。

配置文件指定多个配置设置:

  • Access granted to:这是允许使用配置文件部署模式的用户。
  • Deploy to cloud groups:这是此配置文件可部署模式到的云组的列表,以及对于每个云组,配置文件可使用哪些 IP 组。
  • IP addresses provided:这是在 IP 组中分配 IP 地址的方式。
    • IP Groups:这表示自动分配,地址由部署进程选择。
    • Pattern Deployer:这表示手动分配,地址由用户在部署时选择。
  • Environment limits:这对可供通过此配置文件部署的模式实例使用的资源执行限制。
    • Computational resource:这些是 CPU、内存和存储等资源。
    • Licenses:这是每个产品的 PVU。
  • Virtual machine name format:这是在创建虚拟机时使用的命名约定。
  • Deployment priority:这用于确定模式实例的优先级,处理资源争用(部署、运行时资源和故障转移)。可能的优先级为 Platinum、Golden、Silver 和 Bronze。
  • Environment:这是一个环境角色列表,为了方便用户,它是一个被系统忽略的标签。可能的角色包括 Production、Test 等。

可将多个配置文件部署到同一个云组中,一个配置文件也可部署到多个云组中(参见 图 1图 2)。不是所有部署人员都能够访问系统的所有环境配置文件(参阅下面的 用户组 一节)。要部署到特定的云组中,部署人员需要能够访问可部署到该云组的环境配置文件。该配置文件会设置如何部署这些模式的策略。

不同的配置文件支持允许用户将相同模式部署到相同云组,以便通过将不同的限制和不同的设置应用于模式实例来完成部署。在环境配置文件部署一个模式实例时,它会将云组的部分共享资源分配给该实例,建立实例的逻辑隔离。配置文件可以对部署到同一个云组的不同团队使用一些限制,以便从逻辑上隔离他们的模式实例,并预防他们使用太多资源,比如使用同一个 IP 组(进而使用其中的所有 IP 地址),或者使用了太多基础 CPU 容量。配置文件还会设置在云组运行某个模型实例时执行的实例属性。

当两个用户组共享一个环境配置文件(也就是二者都分配给它)时,这意味着二者都具有相同的模式部署策略,它们的模式实例将共享相同的资源分配。两个用户组会拥有不同的策略或不同的资源分配,需要为每个组分配它们自己的环境配置文件。两个组共享同一个配置文件,这意味着两个组的部署数量上具有相同的限制。两个组使用不同的配置文件,这意味着每个组的部署数量具有自己的限制。

用户组

用户组代表一个角色、一组要执行的任务类型和执行这些任务类型所需的权限。用户组具有两个主要属性:

  • Group members:执行此角色的用户列表。
  • Permissions:此角色中的用户执行他们的任务所需的能力。

用户组的主要功能之一是指定哪些用户可以使用特定的环境配置文件来部署一个模式。


PureApplication System 虚拟机行为

应用程序是作为一个模式实例部署到 PureApplication System 中的,该模式实例包含用于运行该应用程序所在的中间件的虚拟机。通过用来部署该模式的环境配置文件中的设置,以及运行的模式实例所在的云组中的设置,可以调节这些虚拟机的行为。

这些环境配置文件和云组设置对虚拟机行为的影响可在两个方面看到:

  • 优先级:每个虚拟机的重要性与同一个云组中的其他所有虚拟机的重要性是相对的。
  • 资源需求:虚拟机在配置文件分配的池中和云组提供的池中使用的资源量,这取决于该虚拟机的需求和云组如何理解这些需求。

下一节将介绍优先级以及资源需求对虚拟机的行为有何影响。

优先级

部署的模式(也称为模式实例)中的各个虚拟机包含优先级设置。这些设置在资源争用时是相对的,也就是说,在一个云组的虚拟机所需的资源比该云组拥有的资源更多时,在以下时刻会发生此情况:

  • 并发地部署多个模式。
  • 分配已过度分配和负载过重的运行时资源。
  • 将 VM 从一个计算节点移动到另一个计算节点。

当发生这些情景时,系统会优先处理具有更高优先级的 VM。

PureApplication System 基于两项设置来确定 VM 的优先级:

  • Profile deployment priority:这是在用于部署模式的环境配置文件中指定的部署优先级。此值由创建和编辑环境配置文件的管理员设置。可能的值包括 Platinum、Golden、Silver 和 Bronze。
  • Deployer deployment priority:这是在用于部署模式的模式部署属性对话框中指定的优先级,包括选择环境配置文件(如图 3 所示)。此值由部署模式的部署人员设置。可能的值包括 High、Medium 和 Low。

同一个模式实例中的所有 VM 具有相同的优先级,因为它们是一起部署的。

图 3. 模式部署属性对话框中的优先级设置
模式部署属性对话框中的优先级设置

设置组合如表 1 所示(按优先级排序)。

表 1. 工作负载的优先级权重
优先级权重
Platinum-High 16
Golden-High 12
Silver-High 8
Platinum-Med 8
Golden-Med 6
Bronze-High 4
Silver-Med 4
Platinum-Low 4
Golden-Low 3
Bronze-Med 2
Silver-Low 2
Bronze-Low 1

系统的内部进程以权重 20 运行,所以它们的优先级高于所有用户工作负载。

此优先级在故障转移期间尤为重要。例如,如果某个计算节点发生故障,那么系统会在同一个云组中的其他计算节点上重新启动这些 VM 来恢复它们。VM 会按优先级顺序移动和重新启动,这意味着高优先级模式实例的 VM 会在低优先级实例之前恢复。如果目标计算节点没有为所有故障 VM 提供足够的容量,那么低优先级的 VM 不会重新启动。管理员必须手动解决此情形,通常通过停止一些模式实例和重新启动故障实例来完成。

资源需求

部署的模式(也称为模式实例)中的各个虚拟机包含资源需求设置。这些设置指定了正确运行 VM 所需的资源:

  • CPU count:这是分配给此 VM 的虚拟 CPU 数量。
  • Virtual memory (MB):这是分配给此 VM 的虚拟内存量。

CPU 数量依赖于运行 VM 的云组的类型设置。例如,如果 VM 需要 4 个虚拟 CPU:

  • 专用的云组会为该 VM 分配 4 个物理 CPU。
  • 普通云组会为该 VM 分配 1 个物理 CPU。

对于预计要支持大量用户负载的 VM,这些资源需求设置的数值应该更高。如果一个 VM 的数值较低,而它遇到了较高的用户负载(假设模式实例没有负载平衡到其他 VM),那么此 VM 的用户的性能可能会下降,因为它没有足够的资源来在通常所用的响应时间内处理所有请求。

为什么不向您模式的所有 VM 分配更多的资源?因为这会减少您可以部署并成功运行的模式实例数量。可以将一个 VM 视为占地空间。每个 VM 越大,可放入空间中的 VM 的数量就越少。在部署一个模式时,会从环境配置文件所设置的环境限制中减去它的资源总和。当一个配置文件的限制达到 0 时,您将无法使用该配置文件部署其他任何模式,直到存储或删除它的一些模式实例。

类似地,通过独立的环境配置文件部署的模式可能会过度分配云组中的资源,而拥有过于充裕的资源设置的 VM 会不必要地加剧这种过度分配。当过度分配云组的资源,并且所有 VM 都尝试使用它们的分配资源时,潜在的问题就会转换为实际的问题,因为过度分配转变成了资源争用。云组使用优先级解决争用:更低优先级的实例要么不启动,要么在已经运行的时候不接收它们所需的资源。

这样,当设置一个模式中的 VM 的资源需求时,您需要在两个相对的限制之间找到一个最佳平衡点:

  • 优化应用程序性能:为模式的 VM 分配至少足够的资源,使它能够正常运行。
  • 优化资源利用:为模式的 VM 分配的资源不超过它们在预期负载下正常运行时所需的资源。这可最大化您可使用环境配置文件部署的模式实例数,以及可在一个云环境中运行的模式实例数量。

如果资源太少,应用程序的性能就会受到影响。如果资源太多,则无法部署太多的应用程序。


PureApplication System 环境战略

让我们看看使用这些 PureApplication System 资源类型在常见场景中实现这些云计算概念的一些方法。

对于所有这些场景,请记住两个主要的 PureApplication System 资源类型的用途:

  • 云组表示可用来运行模式实例的不同物理部署环境。云组在物理上是隔离的:您可停止一个云组,或者云组虽然可能发生故障,但不会影响其他云组。如果一个云组中的一个应用程序将会反常地消耗所有资源,那么这会影响云组中的其他应用程序,但它不会影响其他云组中的应用程序。
  • 环境配置文件表示不同的逻辑部署环境。它们是部署的目标,为一组部署人员定义了策略。两个具有相同策略并共享相同资源分配的用户组应共享一个环境配置文件(也就是说,二者都会分配给该文件)。两个具有不同策略或获得独立的资源分配的用户组分别需要自己的环境配置文件。

场景:开发生命周期环境

一种定义环境的常见方法是将应用程序开发生命周期中的各个阶段分开。生命周期阶段和它们相应的运行时环境通常包含:

  • DEV:该环境用于开发业务应用程序。
  • TEST:该环境用于测试应用程序。
  • PROD:该环境用于运行业务人员或最终用户所使用的应用程序。

每个环境通常在独立的硬件集合上运行。这么做的部分动机是预防开发环境中发生的问题影响测试环境,并测试问题是否会影响生产。

在 PureApplication System 中,要创建这 3 个运行时环境并将它们彼此隔离,一种不错的做法是创建 3 个云组:DEV、TEST 和 PROD。在小型配置 Intel 系统(具有 6 个计算节点)上,相应的配置可能是:

  • 一个 DEV 云组具有一个计算节点(对于 Intel 计算节点,这为开发人员提供了 16 个物理核心):将它的类型设置为 “average”,因为开发应用程序很少被用到,它具有较低的用户负载。
  • 一个 TEST 云组具有两个计算节点:它们应该位于两个不同的机箱中,并分别位于机架的两端。将它的类型设置为 “dedicated” 以模拟生产环境。
  • 一个 PROD 云组具有 3 个计算节点:它们应该分布在使用了两端的 3 个机箱中。将它的类型设置为 “dedicated”,因为生产应用程序预计会被大量使用。

硬件在 PureApplication System 机架中的排列方式(比如计算节点装在机箱中,Intel 计算节点堆叠为独立供电的两列)是一个复杂的主题,不属于本文的讨论范畴。有关系统的硬件细节的摘要,请参阅 PureApplication System 硬件功能。您可在 PureApplication System 控制台的基础架构图中看到机架中的机箱内的计算节点布局。有关的更多信息,请参阅 PureApplication System 信息中心中的主题 查看硬件基础架构图基础架构图数据

这 3 个云组中的每一个云组都至少需要一个 IP 组,其中包含一个尚未使用的 VLAN ID,用于保持它们的网络流量分开。

关于要创建多少个环境配置文件,没有硬件限制,所以可以创建无数个环境配置文件,但一些实用指南给出了一些要求。通常,可部署 PROD 模式的用户数比 TEST 部署人员少,而后者有比 DEV 人数少,如图 4 所示。

图 4. 每个环境的部署人员相对数量
每个环境的部署人员相对数量

类似地,每个运行时环境需要的配置文件数量会从 DEV 到 PROD 递减。

首先,为工作负载 “超级用户” 定义一个用户组会有所帮助:

  • Workload Administrators:这是一个工作负载超级用户组,这些用户管理系统中的所有工作负载(通常为具有工作负载资源管理安全角色的用户),应能够使用任何配置文件部署模式。将此小组分配给每个环境配置文件。

以下是一些有用的配置文件。每个配置文件都有一个相应的用户组。

  • 生产应用程序环境配置文件:这些配置文件将应用程序部署到 PROD 环境中。将它们的优先级设置为 golden,可以有选择地将环境设置设置为 “Production”。
    • 可为每个生产应用程序,或者为每个部署生产应用程序的部门或业务线创建独立的配置文件,这使设置能够控制谁可以部署每个应用程序的模式,并为不同的应用程序或应用程序组分配不同的资源。
    • 再次说明,最好有一组用户负责将所有应用程序部署到生产环境中,在这种情况下,他们使用的都是相同的配置文件。使用同一个配置文件部署所有应用程序的一个后果是,所有模式实例都将共享该配置文件的资源分配。如果不同的应用程序集应该获取不同的资源分配,那么可以创建不同的配置文件,将这个生产部署用户组分配给所有这些配置文件。
  • 测试应用程序环境配置文件:这些配置文件将应用程序部署到 TEST 环境中,并将它们的优先级设置为 silver,将环境设置设置为 “Test”(可选)。为每个部署一个或多个要测试的应用程序的团队创建一个配置文件。对每个团队使用一个独立的配置文件,并为每个配置文件分配独立的资源,比如独立的 IP 组,这有助于使该团队的应用程序在云组中保持隔离,预防一个团队使用云组的太多资源,以至于没有给其他团队留出足够的资源。
  • 开发应用程序环境配置文件:这些配置文件将应用程序部署到 DEV 环境中。将它们的优先级设置为 bronze,并将环境设置设置为 “Development”(可选)。所有开发人云可以共享一个配置文件,但这需要相信每个开发人员不会使用太多资源。要执行这些限制,可以对每个开发团队或者甚至每个开发人员使用单独的配置文件。请记住,仅在配置文件具有与其他配置文件不同的设置时,该配置文件才会有用,比如针对以下方面的不同设置:谁可以部署模式、要使用哪些 IP 组,或者是否在 CPU 和 PVU 等资源上使用一些限制。

场景:多个生产环境

另一种常见的方法可能是隔离多个生产环境。它们都用于生产应用程序,所以具有相等的优先级。但是,它们的应用程序用于不同的用途,所以它们应彼此隔离。

例如,考虑以下 3 种假想的生产环境:

  • 公共网站:此环境托管客户通过互联网访问的 Web 应用程序。它可供一个企业的客户访问。
  • 内部人力资源应用程序:此环境托管由人力资源部门使用的应用程序。它仅可供该部门的员工访问。
  • 内部财务应用程序:此环境托管由财务部门使用的应用程序。它仅可供该部门的员工访问。

在 PureApplication System 中,要创建这 3 个生产环境并将它们彼此隔离,一种不错的做法是创建 3 个云组:PUBLIC、HR 和 FINANCE。在具有 6 个计算节点的小型配置上,可以为每个云组分配两个计算节点,将每对节点分散在各个机箱和各端,每个云组都有一个内部使用的、未用的不同 VLAN ID。为每个云组提供一个或多个 IP 组。一个云组的 IP 组可拥有相同的 VLAN ID,但不同云组的 IP 组需要使用不同的 VLAN ID 将云组的网络流量彼此隔离。假设应用程序被大量使用,将每个云组的类型设置为 “dedicated”。否则,如果一个云组拥有过多很少使用的应用程序,那么可以将它的类型设置为 “average”。

为每个生产环境创建一个环境配置文件,为它分配一个用户组,其中的用户负责将环境配置文件部署到该环境。另外创建一个有超级用户(所有工作负载的管理员)组成的 Workload Administrators 组,将它分配给所有配置文件。如果不同的团队共享一个环境,但他们在合作时遇到了麻烦,那么可以为每个团队创建一个不同的用户组和配置文件。这些配置文件将它们的模式部署到同一个云组,但它们有限制地分配资源,以帮助更好地隔离团队的应用程序。

场景:基于利用率的环境

云组的一个特性是类型设置:

  • Dedicated:此设置为一个虚拟机请求的每个虚拟 CPU 提供一个物理 CPU。
  • Average:此设置为一个虚拟机请求的每个虚拟 CPU 提供 1/4 个物理 CPU。

可使用此设置(与环境配置文件上的环境限制和优先级,以及一个虚拟机上的资源需求相结合)创建一个已针对两种不同工作负载类型之一而优化的云组:

  • 一个云组运行更少的应用程序,但它为更多应用程序同时拥有更高用户负载而进行更充足的准备。
  • 一个云组过度分配它的 CPU 来运行 4 倍的应用程序,使利用率低的应用程序能够以更高的密度运行,实现平均硬件利用率的改进。

对于同时具有高负载应用程序和利用率低的应用程序的组织,一种不错的做法是为每种类型创建一个云组。

要采用这种做法,需要创建两个云组:

  • High Load:这个云组用于通常具有大量用户负载的应用程序:
    • 将云组的类型设置为 “dedicated”。
    • 保守地设置环境配置文件的环境限制,帮助防止每个用户组部署太多模式(这会使用比团队合理的有限资源份额更多的资源)。
    • 如果一些应用程序拥有比其他应用程序更高的优先级,可在环境配置文件中和在部署模式时设置它们。这在用户负载超过云组的容量时会发挥作用。
    • 将模式的 VM 中的资源需求设置得高一些,但不要超过峰值负载需求。
    • 即使其中许多应用程序的负载同时达到峰值,这个云组也能为处理该负载和保持一致的响应时间做好更充足的准备。
  • Underutilized:这个云组适用于以下应用程序:需要处于可用状态,有时具有相当数量的用户负载,但通常不会被大量使用。
    • 将云组的类型设置为 “average”。
    • 大胆地设置环境配置文件的环境限制,以便每个团队都可以部署大量模式。预计它们不会被大量使用。
    • 如果一些应用程序具有比其他应用程序更高的优先级,那么可以在环境配置文件中和在部署模式时设置它们。这在用户负载超过云组的容量时很作用。
    • 保守地设置模式的 VM 中的资源需求,但该设置足以让 VM 在典型负载下以可接受的性能运行。
    • 这个云组可接受更高数量的模式部署,但在其中许多应用程序的负载同时出现峰值时,性能会受到影响。

如果一个用户组同时负责高负载和利用率低的应用程序,那么可以将它分配给两个云组的环境配置文件。不要对两个云组使用单个环境配置文件,因为您可能希望为两个云组设置不同的资源限制,而且您希望高负载云组的显示是保守性的,而利用率低的云组的限制却是足够大胆的。

采用此方法,高负载应用程序有极大的可能会收到它们所需的资源,同时让运行很少使用的应用程序的硬件获得最佳利用率。

场景:共享的开发和测试环境

可以考虑将一些开发生命周期运行时环境结合在一起使用。不要将 TEST 和 PROD 相结合,因为测试可能会从 PROD 抢走资源,而且 TEST 中的问题可能影响 PROD。最好将这些环境隔离在不同的云组中。

另一方面,在一个环境中结合使用 DEV 和 TEST 可能更合理。此方法既有优点,也有缺点:

  • 优点:未用于某种用途的资源可轻松地动态用于另一种用途。例如,当测试工作量较少时,可将这些资源用于开发,然后在测试工作量增多时将它们转移到测试环境。
  • 缺点:高负载的测试可能消耗大部分资源,限制了可用于开发的资源(假设开发设置为较低的优先级)。在测试期间,如果开发工作减少,那么这具有一定的优势,可能是因为开发人员在执行测试。但是,如果开发人员尝试在测试工作量大时执行开发,采用这种方法就是一个缺点。

要实现此方法,可创建一个 DEV-TEST 云组。创建其他资源的 DEV 和 TEST 对:IP 组、环境配置文件和用户组。当然,要将一个 Workload Administrators 用户组分配给所有环境配置文件。对于这些资源,在两个配置文件中执行这些设置,如表 2 所示。

表 2. 环境配置文件设置
设置TEST 配置文件DEV 配置文件
授予访问权 TEST 用户组 DEV 用户组
部署到云组 DEV-TEST 云组 DEV-TEST 云组
IP 地址 TEST IP 组 DEV IP 组
环境限制 10 个虚拟 CPU 5 个虚拟 CPU
部署优先权 Silver Bronze
环境 测试 开发

此方法的优势在于:

  • Access granted to:不同的用户组控制了谁可以使用每个配置文件部署模式。
  • Deploy to cloud groups:两个配置文件都部署到同一个共享云组中。
  • IP addresses:不同的 IP 组可确保一个用户组的模式实例无法使用所有地址,不会导致其他用户组无地址可用。它还支持在需要时分离 VLAN。
  • Environment limits:这可确保 DEV 获得最多 5 个虚拟 CPU 的计算能力,而 TEST 获得最多 10 个虚拟 CPU 的计算能力。如果它们增长到使用所有可用的 CPU,那么在更高优先级环境 (TEST) 需要更多 CPU 时,该容量会从更低优先级环境 (DEV) 获取。
  • Deployment priority:这将 TEST 设置为具有比 DEV 更高的优先级,以便可以通过使用 TEST 配置文件部署的应用程序来解释资源争用。
  • Environment:此设置会被系统忽略。

PureApplication System 环境原则

这些场景一致地使用了可能适用于所有场景的原则:

  1. 使用云组将一个 PureApplication System 划分为隔离的逻辑计算机。为了将每个云组的网络也隔离开来,每个云组需要使用不同的 VLAN ID。
  2. 对于具有低密度的高负载应用程序或具有高密度的低使用率应用程序,需要对每个云组进行调节。如果同时拥有两种类型的应用程序,那么可以为每种类型创建一个云组。
  3. 通常将一个环境配置文件部署到单个云组。
  4. 使用多个环境配置文件将共享一个云组的用户组分离,比如将它们部署到同一个测试环境的多个团队。这使 PureApplication System 管理员能够限制每个组使用自己的 IP 组、优先级和资源限制,使(并可能强制)用户和他们的应用程序更轻松地配合。
  5. 为工作负载超级用户(具有工作负载资源管理安全角色的用户)创建一个 Workload Administrators 用户组,将该用户组分配给所有环境配置文件。

遵循这些原则,您将会成功地使用 PureApplication System 的特性。


附录 A:PureApplication System 硬件功能

这一节简单总结了一个计算节点中的硬件和一个 PureApplication System 中有关联的硬件。

一个计算节点(更常被称为集成技术元素 (ITE),尤其是还未专门用于作为一个 PureApplication System 管理节点运行的计算节点)包含:

  • CPU:一个 Intel 计算节点包含两个 Intel Romley 8 核 Sandy Bridge 芯片,总共有 16 个物理核心,虚拟机管理程序将它们用作 32 个逻辑核心。
  • 内存:一个 Intel 计算节点包含 256 GB RAM。

它能够访问所有计算节点共享的资源:

  • 存储:一个 PureApplication System 提供了 6.4 TB 的固态硬盘 (SSD) 存储和 48TB 的硬盘 (HDD) 存储;其中可用的空间分别为 4.8 TB 和 38.4 TB:
    • 此存储容量装载在两个 IBM Storwize V7000 存储单元中,这两个存储单元组合在一个 RAID-5 配置中。
    • 该设备中的磁盘为 16 个 400 GB SSD 和 80 个 600 GB HDD。
    • 该设备包含 IBM Easy Tier 存储管理系统软件。
    • 计算节点通过一个 8 GB 光纤通道连接将存储空间作为 SAN 来访问。
  • 网络:一个 PureApplication System 包含两个 BLADE Network Technologies (BNT) 64 端口以太网交换机:
    • 每个交换机上的端口 41-56(总共 16 个端口)都处于打开状态,可使用它们来连接企业网络:
      • 每个端口都是 10/1 Gbps 以太网。内置的连线类型为铜线,但每个端口也可通过一个光纤或直接访问连接 (DAC) 连线来连接。
      • 两个交换机中的端口对应将链接聚合在一起,从而实现高可用性。
    • 端口 63(任一个交换机上)供服务笔记本电脑使用,IBM 使用它来管理系统。
    • 端口 64(将链接聚合在两个交换机上)由客户用于访问客户控制台。
    • 系统的 BNT 交换机上的其他端口在 3 个机箱的交换机之间提供了以太网连接。每个 PureApplication System 机箱包含一对 10 Gbps 以太网交换机,用它们连接其计算节点。机箱交换机通过两个 BNT 交换机之间的一个 40 Gbps 以太网中继连接到系统交换机。

结束语

本文介绍了如何在 PureApplication System 中使用其云组和环境配置文件特性来设计和创建应用程序运行时环境。本文展示了这些特性与云计算概念的关系,描述了 PureApplication System 中的这些特性和相关特性,分析了使用这些特性的场景,还回顾了可从这些场景中总结出的原则。借助这些信息,您现在已经为在 PureApplication System 中管理运行时环境做好了准备。

致谢

感谢以下 IBM 成员在撰写本文的过程中提供的帮助:Vishy Gadepalli, Stanley Tzue-Ing ShiehMichael FraenkelShaun MurakamiJason AndersonAjay ApteKyle BrownRohith AshokHendrik van Run

参考资料

学习

获得产品和技术

讨论

条评论

developerWorks: 登录

标有星(*)号的字段是必填字段。


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件

 


在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。

所有提交的信息确保安全。

选择您的昵称



当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

标有星(*)号的字段是必填字段。

(昵称长度在 3 至 31 个字符之间)

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

 


所有提交的信息确保安全。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Cloud computing, WebSphere
ArticleID=851171
ArticleTitle=在 IBM PureApplication System 中管理应用程序运行时环境
publish-date=12102012