IBM SmartCloud Enterprise 技巧: 部署复杂的拓扑结构

在 IBM Cloud 中使用部署工具

在本文中,作者详细讲解了部署实用工具的概念,以及如何使用该工具在 IBM® SmartCloud Enterprise 中部署复杂的拓扑结构;该工具并不是 IBM SmartCloud Enterprise 产品的一部分。作者使用复杂的拓扑结构 这一名词来表示一种包含多种资源(实例、存储、地址等)的拓扑结构,或一种能够使用脚本在相互连接和软件方面进行改进的拓扑结构。

Dominique Vernier, IT 架构师, IBM

/developerworks/i/p-dvernier.jpg最近几年,Dominique Vernier 主要致力于 Java 技术与云架构的相关工作。他还曾在相关公司工作过很久,在那里,他积累了关于消息传递、数据库、SOA、EAI、客户端/服务器、C/C++、以及现有框架等方面广博的知识。Dominique 还对电信、CRM、物流、以及保险等行业领域的知识有深入了解。他是 4 个有关状态引擎和资源管理的专利的拥有者或共同拥有者。目前,Dominique 正在 South-West Europe Cloud Center of Excellence 管理着用于私有或公有解决方案的智慧业务开发与测试云计算。


developerWorks 投稿作者

2011 年 10 月 17 日

使用该部署实用工具在 IBM SmartCloud Enterprise 上根据一个输入文件配置多种资源(尽管该工具并不是 IBM SmartCloud Enterprise 产品的一部分)。例如,如果想要部署一个附带存储的服务器,那么先要使用 IBM Cloud 门户发起一个请求创建存储,再发起另一个请求来创建服务器,然后再将存储添加上去。使用该工具,您只需创建一个文件,该文件中包含每个请求的描述,以及从一个请求属性到另一个请求属性的引用属性。

如果您采用的是较复杂的基础架构(多台服务器连接在一起),例如 N 层应用程序,部署前您必须得先考虑资源配置的顺序,然后才能将其连接起来。该工具会根据资源之间的功能依赖关系来帮您决定部署顺序。

它还提供一些附加功能,可直接管理 IBM Cloud 平台上的资源;例如,它可帮您管理实例、地址、存储卷和映像。您还可以在一个请求中创建多个实例、存储卷和地址。

请注意:本文中描述的部署实用工具按原样提供,不提供任何明示或暗示的保证。使用前,请查看许可协议。

还请注意,当您 下载此工具 之后,可在分布式文件中找到相关的在线教学视频。

现在,我们来了解一下该工具的概念

概念

部署 IBM Cloud 基础架构的工具有一个引擎,它能处理输入文件,还有一个 Eclipse 插件可以帮助用户创建新的部署文件并执行。

输入文件包含部署存储卷和实例等的请求。每个请求都有几个参数。每个请求参数都包含一个文本值或表达式。表达式引用另一个请求的另一个参数值。

有了请求和连接请求的表达式,您可以创建一个图表,图中的每个顶点代表一个请求,每个边表示基于源请求表达式的两个请求连接。

部署实用工具会分析请求之间的表达式所创建的依赖关系,并找出每条请求执行的顺序。这通过图表中的拓扑排序算法实现。

在执行请求之前,部署实用工具会估算每个表达式,并且会考虑到已部署的请求。由于有了拓扑排序,您会知道一个请求是否含有引用另一个请求的表达式,另一个请求是否已经部署从而表达式能引用执行后才有的请求属性;例如,由系统生成的 IP 地址。

此外,部署实用工具会检查一些请求是否可以同时启动以将部署时间降到最低。可以设置并行请求数的限制。

本工具的目的并非提供部署单个请求的功能(那样的话,您只要使用 动态自定义云映像实例的参数 就可以实现了),而是提供一种可以通过编排不同请求来部署复杂的基础架构的功能。

本概念中一个您必须解决的局限是,用户特定类型资源(实例、映像和存储)中所有资源的名称都必须是独一无二的。

我们用此示例来演示这些概念:我们要部署两个服务器:WebSphere® Application Server 和数据库服务器。数据库需要一个存储卷 Vol,它是现有存储卷的复制版,并且 WAS 需要数据库的 IP 地址来设置 JDBC 连接。

  1. 使用映像定制技术来创建自定义映像,并用它来表示 WAS 和 DB 服务器,并带上必要的参数和脚本。本例中,WAS 映像至少需要 DBIPAddress 参数。
  2. 创建请求文件,并包含所有请求和属性。其中一个 DB 请求属性会引用存储卷请求,而 WAS DBIPAddress 参数会引用 DB 请求。
  3. 存储卷请求像这样: <volumeRequest ifExists="SKIP" label="Vol" location="RTP" format="ext3" size="SMALL"/>
  4. DB 请求像这样:<instanceRequest ifExists="SKIP" label="DB2" imageID="20003517" instanceType="COP32.1/2048/60" keyName="DVE_User" iP="" volume0ID="Expr:Vol"/>
  5. WAS 请求像这样:
    <instanceRequest ifExists="SKIP" label="WAS" imageID="20004761"
     instanceType="COP32.1/2048/60" keyName="DVE_User" iP="">
    <configuration>
            <keyValue attribute="DB2IPAddress" value="Expr:DB2:IP"/>
            <keyValue attribute="WASAdminUser" value="wasadmin"/>
            <keyValue attribute="WASAdminPassword" value="WasAdminPassword"/>
            <keyValue attribute="WASProfileType" value="all"/>
            <keyValue attribute="WASAugmentList" value="null"/>
    </configuration>
    </instanceRequest>
  6. 将所有请求放到一个文件中并发送到 IBM Cloud 的部署实用工具中。Eclipse 插件会帮助您构建此文件。
  7. 部署实用工具会对请求进行排序,并且根据表达式依赖关系来决定应该先执行的存储卷请求,然后是 DB 请求,最后是 WAS 请求。
  8. 部署之后,表达式 Expr:DB2:IP 会被解析为 DB 服务器的 IP 地址,然后再部署 WAS。

我们现在看看部署实用工具的功能。


功能

IBM Cloud 部署工具将会演示以下功能:

  • 它是一个 Eclipse 插件,但可以从命令行运行。
  • 可以用它来创建 Eclipse 项,来存储部署基础架构时所需的文件,如部署文件、日志文件等。
  • 该插件提供了编辑器,可用于创建部署文件;部署文件描述了实例、存储卷、IP 地址、需要部署在 IBM Cloud 上的密钥对,以及需要在部署时运行的脚本。
  • 它具有在模拟或真实模式下启动部署文件的功能。
  • 它具有管理实例、映像、IP、密钥对等的功能。
  • 它具有打开映像/实例文档的功能。
  • 它提供了在部署文件中描述的备份实例。
  • 它提供了在部署文件中描述的备份和删除实例。
  • 它可以恢复在部署文件中描述的被删除的实例。
  • 它可以在一个请求中多个附加的存储卷上创建 1 到 N 个不同实例。
  • 它可以在一个请求中创建 1 到 N 个 IP、1 到 N 个存储卷。

随着工具的不断发展,功能还会不断增加。请查阅 IBM SmartCloud Enterprise 部署实用工具 获取最新版本的信息。

我们看看部署实用工具的内部原理及其功能。


内部原理

我们将深入了解以下内容:

  • 部署文件。
  • 管理资源的能力。
  • 在一个请求中创建多个实例的能力。
  • 在一个请求中创建多个存储卷和地址的能力。

部署文件

在部署文件中,需要指定构成拓扑结构的实例、存储卷、地址和密钥对。

可以启动引擎,它会读取部署文件,并按照正确的顺序启动 IBM Cloud 中的不同请求。

对于每个的项目,使用 Properties 选项卡为每个项目指定不同参数。

对于实例,工具会自动从映像定义中检索所需的参数。

如果资源已存在,可以创建资源请求来停止部署或跳过资源创建。

对于每个部署文件,都可以指定一个字符串来创建每个部署资源的名称。字符串要符合 Java™ String 格式。例如,DEMO_%s_1 加上资源名 MyInstance 将会生成 DEMO_MyInstance_1 名称。这样,只要修改字符串就能利用同一个部署文件来创建多个相同的环境。

图 1.MyDeployment 屏幕
MyDeployment 屏幕

管理资源的能力

实例视图列出了所有添加到您用户中的实例,还提供了诸如保存、删除、重启实例的功能,并且能在一个请求中创建多个实例。

图 2.实例视图
实例视图

存储卷视图列出了所有添加到您用户中的存储卷,还提供了诸如克隆、删除存储卷的功能,并且能在一个请求中创建多个存储卷。

图 3.存储卷视图
存储卷视图

IP 视图列出了所有添加到您用户中的 IP 地址,还提供了诸如删除 IP 地址的功能,并且能在一个请求中创建多个 IP 地址。

图 4.IP 视图
IP 视图

错误日志视图提供了当前部署的信息。

图 5.错误日志
错误日志

在一个请求中创建多个实例的能力

使用部署实用工具,通过一个动作就创建多个实例:

  1. 从数据中心选择一个映像。
    图 6.创建实例:选择映像
    创建实例:选择映像
  2. 选择想要创建的实例数、名称(为每个实例添加一个索引)、大小、密钥对等。
    图 7.创建实例:定义实例
    创建实例:定义实例

它还会为每个实例请求新的存储卷。

在一个请求中创建多个存储卷和地址的能力。

使用部署实用工具可以非常轻松地在一个请求中创建多个 IP 地址。只需选择数据中心,选择 VLAN,单击 Finish

图 8.创建多个地址
创建多个地址

这些请求会被同时发送,同时会考虑引擎的参数。

您还可以通过提供名称(有后缀索引)、位置、大小和格式在一个请求中轻松创建多个存储卷。

图 9.创建多个存储卷
创建多个存储卷

这些请求会被同时发送,将引擎参数化考虑在内。


结束语

部署实用工具提供一种功能,让您通过创建一个包含所有所需请求描述的部署文件在 IBM Cloud 上进行复杂的部署工作。该工具能帮助您创建任意个实例、存储和 IP 地址,所有这些都一步完成,并且能帮助您管理 IBM Cloud 上的资源。而且基于向导的设置使得使用该工具变得非常简单。

使用该工具的注意事项

请记住,目前本工具按原样提供,不提供任何明示或暗示的保证;而且它并不是 IBM SmartCloud Enterprise 产品的一部分。您可以在这里注册访问该工具:IBM SmartCloud Enterprise 部署实用工具。您还可以找到发表评论的论坛。您需要在 IBM SmartCloud Enterprise 平台 注册一个帐号来访问工具和论坛。

参考资料

学习

获得产品和技术

讨论

条评论

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
ArticleID=765882
ArticleTitle=IBM SmartCloud Enterprise 技巧: 部署复杂的拓扑结构
publish-date=10172011