如今,云计算将应用程序开发、业务和系统操作结合得更紧密。这意味着,软件开发人员需要比以前更好地了解业务流程和系统操作。这也意味着,业务利益相关者和操作人员必须消费更多自定义软件。
云计算的承诺是,集中化、标准化和自动化将简化用户体验并降低成本。然而,要实现这些好处,就需要一种新的思维方式,其中,开发人员必须考虑到业务流程和系统操作,以构建和部署最有效的云应用程序。
本文有意涵盖较广泛的范围,包括应用程序开发和操作的各个方面,并提供在该过程中有帮助的 Rational 工具的示例。
云计算最有趣的方面之一是,它实现了新的工具和协作水平。它支持团队人员对工作产品(尤其是映像)的重用。例如,有一个操作系统专家建立了一个基础的操作系统映像,软件开发人员在它上面添加一个软件产品映象,业务用户使用该映像,获取适合其企业需求的映像快照。本文将重点讨论如何可以使用此工具在云上开发应用程序。
公共云业务场景
让我们从讨论驱动云计算的一些用例范围开始:
- 云计算的许多优点可能对于独立的用例更重要。
- 基础架构的虚拟化也带来了大量新的可能性,以及各种在传统计算中完全没有用过的新 IT 资产。
- 在公共 Internet 环境中的操作提供了新的协作可能性,而在同一时间,又带来了新的安全挑战。
若干操作者在云用例中一起协作:
- 云服务开发人员开发软件和其他资产,供消费者在云上消费。
- 云服务消费者请求云资源,并批准业务开支。云服务消费者可能包括用户、管理员和业务管理人员。
- 云服务提供商向消费者提供云服务。
考虑一个概念证明 (POC) 用例。企业在决定使用新技术之前,通常会对其建立概念证明或试点研究。企业往往会聘请外部 IT 顾问来完成该工作,IT 顾问一般会承受很大压力,他们要在很短的时间内交付的功能数量是具有挑战性的。通常情况下,如果顾问在这个领域中没有经验,他将无法提供所需要的信息。
可以在不同作业中反复使用的资产是至关重要的。云计算可以直接重用已保存的映像,并且让顾问和企业用户可以轻松地共享相同的网络空间,从而有助于更容易实现这一点。与其让顾问到哪里都带着物理计算机,或者在她的笔记本电脑上安装所有软件,或者试图在很短的时间内在企业现场安装所有软件,这样做会容易得多。
该场景的用例图如图 1 所示。
图 1. 在云上的概念证明的用例图
为了让企业能够添加顾问帐户,在提供用户管理支持的公共云环境中工作是关键。另外,顾问可以使用自己的帐户空间,并只需通过 HTTP 等网络协议允许访问。
如果企业批准一个概念证明,那么它可能想长期使用 POC。它可以保存映像,并在虚拟局域网上启动一个实例,从而将 POC 迁移到企业的私有网络中。
表 1 对传统的概念证明和在云上的概念证明进行了比较。
表 1. 在传统设置中的 POC 和在云上的 POC 比较
对于该用例,云的主要优点是弹性的可扩展性、从 Internet 接入、能够保存和重用项目资产。
#p#
IBM SmartCloud Enterprise 背景
IBM SmartCloud Enterprise 是一个公共基础架构即服务 (IaaS) 云,这是一个适合于企业的独特云产品。云使用户能够创建和管理使用 Linux? 和 Windows? 操作系统的 x86 虚拟机,并管理相关的资源,包括映像、存储卷和 IP 地址。
IBM 的云与众不同之处是,它包括广泛的服务和产品、自助服务功能、支持协作的委托管理模式、适合企业的业务支持服务,以及一个由卓越映像开发中心创建的虚拟机映像的大型目录。(若您包括 IBM PureSystems? 产品家族及相应服务,您甚至还能通过预构建的***实践虚拟模式采用更多成熟的配置管理和部署专业知识。)
以编程方式与 SmartCloud Enterprise 通信的一种基本方法。它包含许多功能,其中有一个自助服务用户界面,可以用来管理实例、映像、存储和 IP 地址。为方便起见,还提供包装了 REST 服务的命令行 API 和 Java? API 客户端。在资产目录中向注册用户免费提供了 Java API 客户端和命令行工具所需要的下载。命令行很方便,可以使熟练的用户提高操作速度,但如果您需要创建一个可以解释 API 输出的应用程序,那么您就需要编写一个程序。
您可以使用 IBM SmartCloud Enterprise API 添加额外的功能,或将云管理集成到其它应用程序。对于 Java? 程序员来说,最便捷的选择将是 Java API。使用其他语言的开发人员可以使用 REST API。
大多数工具都是通过 API 与云集成。
云项目的任务、工具、功能和可交付物
本节描述了应用程序生命周期管理 (ALM) 工具及其云计算连接。最近的趋势是,将这些工具集成到云环境。这样,它们就可以在云上运行,以某种方式利用云计算,或可用于开发面向云的应用程序,这一切都在云环境空间中进行。
ALM 工具帮助规划、设计、协作、开发、测试、交付和维护的软件项目。若您扩展到多人软件项目,配备了要部署到应用程序服务器的构建构件,您就会发现自己需要一些工具的帮助。我们要谈讨的工具包括以下类型:
需求管理工具:记录和跟踪功能性及非功能性需求。例如 Rational Requirements Composer。
规划工具:规划项目所需的时间和资源,帮助您跟踪该项目的执行。例如 Microsoft Project 和 IBM Rational Team Concert。
源代码存储库:集中管理代码。例如开源工具 CVS 和 Subversion,还有 Microsoft Visual Source Safe 和 IBM Rational Team Concert 等商用工具。
集成开发环境 (IDE):编辑和调试源代码。例如开源的 Eclipse IDE 以及 IBM Rational Application Developer 和 Microsoft Visual Studio 等商用工具。
测试工具:协助执行和跟踪功能测试、性能测试、集成测试、全球化测试及回归测试。
缺陷跟踪系统:跟踪缺陷。
票据跟踪系统:用于客户支持。在开源项目和云项目中,在许多情况下都用论坛取代。
当项目规模已超出单人范围时,最根本的需要可能是在一个中央存储库中共享源代码。Concurrent Versions System (CVS) 是一个开源的源代码管理系统,多年来一直很流行。它是可伸缩的,并且可以通过插件的形式在集成开发环境中方便地使用。最近,一些改进的开源源代码管理系统,特别是 Subversion,已经开始完善并取代 CVS。商用替代方案可提供的功能远远不止这些,其中一个示例是 IBM Rational Team Concert (RTC)。云计算对于源代码管理工具的主要影响是,它们可以方便地在云上运行。
当您将源代码保存到中央存储库之后,您需要将它构建成可部署的构件。Ant 或 Maven 等开源构建工具可以完成该工作。Maven 在范围更广的生命周期事件方面具有更广泛的功能。而商用构建服务器 IBM Rational Build Forge 甚至提供了更强大的特性集。IBM Cloud 在企业目录中提供了一个 Build Forge 映像。
除了源代码编译,您还应该尝试单元测试、部署到运行时系统和功能性测试等流程的自动化。随着您的应用程序包括越来越多组件(如关系数据库、应用程序服务器和 Hadoop),这个任务的挑战性也越来越大。这种类型工具的新发展之一是可以自动设置并拆除在云上的复合环境,在 Build Forge 中尤其如此。
为了实现优质代码开发,理想情况下,开发人员应充分测试自己的代码,并且测试人员应确认它是否正常工作。单元测试就是该流程的起点。JUnit 是一个简单而有用的工具,以推动单元测试,并可以提供有用的报告,但是,若代码与更多不同的系统集成,执行单元测试可能会很难。Mock 对象可以用来表示这些依赖关系。开源的 EasyMock 工具对于这种情况非常有用。
功能性验证测试意味着,执行测试,以验证代码可以根据设计在运营环境中执行所有不同的功能。通过在 Web 浏览器中观察不同的屏幕,可以手动完成该工作。理想情况下,通过记录用户所执行的步骤,应该可以自动该过程。IBM Rational Functional Tester (RFT) 是可以完成该工作的一个商用产品。
云可以支持概念证明、试点、beta 程序和咨询项目的不同可交付物集。在传统的环境中,企业网络的限制(尤其是安全性)往往要求顾问使用他们不熟悉的工具。这可能会导致记录部署步骤和***实践的书面报告对于客户来说不易于使用。
在其他情况下,在项目已经 “完成” 了很长之间之后,顾问还要提供***支持。云支持一组不同的可交付物,包括虚拟机映像、部署拓扑结构模型和软件捆绑,如表 2 所示。
表 2. 传统项目构件与云项目构件的对比
利用 Rational Asset Manager 进行目录文档管理
文档管理系统管理文件,所以文件可以被存储在一个中央位置,实现方便的访问、索引和搜索。现代文档管理系统让用户可以添加自己的文档注释,并具备诸如标记和评分等 Web 2.0 特性。它们在文档管理中支持基于角色的访问管理,可以放置围绕文档工作流,以确保文档在发布前经过审查和批准。
在 IBM SmartCloud Enterprise 中,文档管理是由 IBM Rational Asset Manager (RAM) 负责。这是特别合适的,因为在云中的文件大多是虚拟机映像,它们本身就是软件资产。Rational Asset Manager 是标准的 IBM 产品,您也可以在自己的项目中使用它。在映像目录中有一个 Rational Asset Manager 条目,让您可以启动自己的服务器。
SmartCloud Enterprise 目录中的所有映像都拥有公共可见的映象资产。当您将虚拟机保存为 SmartCloud Enterprise 中一个映像时,将创建一个映象资产。您可以添加 “入门” 等文档和屏幕截图来帮助您的映像用户,并且 Rational Asset Manager 也支持论坛特性,让您的用户可以提问。
最初,您的映象资产将具有私有可见性。也就是说,它只对您可见。但是,您还可以让它对企业中的其他成员可见。
Rational Asset Manager 还支持其他类型的文档,如文本文档。SmartCloud Enterprise 的大部分支持文档都被存储为 Rational Asset Manager 的文档资产。当在 Rational Asset Manager 中创建一个新文档时,您会看到图 2 所示的画面。
图 2. 在 Rational Asset Manager 中创建文档
您可以添加名称、简短描述、详细描述和附件。您可以配置一个审批工作流,在使文档对其他人可见之前自动执行该工作流。审批工作流的示例步骤如图 3 所示。
图 3. 审查提交给 Rational Asset Manager 的文档
在本例中,有两个步骤:申请审查,然后接受/拒绝文档。
#p#
端到端开发场景
现在我们说明如何在云上设置 Rational Software Architect,并将虚拟机保存为可以用作一个标准开发环境的映像。换句话说,我们将在一个端到端开发场景中演示如何使用 Rational 工具和 SmartCloud Enterprise。
Rational Software Architect 是一个面向 Java、J2EE、Web 2.0 和其他平台的集成开发环境。SmartCloud Enterprise 在目录中提供了 Rational Application Developer 的映像。此外,Rational Application Developer 有一个云插件,让您在云上配置和集成 WebSphere? Application Server 等服务器。这样做可以让您实现以下场景:
- 在目录中找到 Rational Application Developer Virtual Image。
- 选择虚拟机属性。
- 利用 NX Client 设置虚拟桌面连接。
- 在远程桌面上启动 Rational Application Developer。
- 添加新的 WebSphere 云服务器。
- 设置云凭据。
- 在云上为 WebSphere 请求一个虚拟机。
映像开发
首先,在目录中找到 Rational Software Architect,并配置一个实例。
使用 NX Client 远程登录到 Rational Software Architect。NX 远程桌面技术依赖于 NX Server 和 NX Client。NX Server 可由 NoMachine 以商用方式或开源分发方式提供。SmartCloud Enterprise 上的一些映像使用 FreeNX 开源软件包。NX Server 负责用户身份验证和会话激活。第三个组件是 NX Node。nxservice 和相关的命令并不是守护程序,需要由 SSH 服务器激活。
配置文件通常位于目录 /etc/nxserver 中,该目录中还包括身份验证所需要的密钥。如果您遇到麻烦,node.cfg 文件中的 NX_LOG_LEVEL 是一个有用的设置。您可以针对 Server-Client communication 将它设置为 4。在 node.cfg 中也配置了日志文件的位置,默认设置为 /var/log/nxserver.log。
可以从 NoMachine 网站免费下载 NX Client。安装后,导入并保存您的 SSH 密钥(由 PuTTY 取消转换),在 Server 字段中设置虚拟机的 IP 或主机名。配置屏幕如图 4 所示。
图 4. NX 客户端连接向导
客户端配置用户界面让您选择桌面,如 KDE 或 GNOME。这里可能会产生错误,如果您在身份验证后无法建立会话,您可以尝试另一个值。客户端配置和会话文件保存在用户的 .nx 目录(在 Windows 上是 C:Documents and SettingsAdministrator.nx)。如果出现错误,请检查会话目录,该目录也在 .nx 下面。
在您已经导入密钥并输入主机名称或 IP 地址之后,使用您的用户名和密码登录。图 5 显示了通过 NX Client Remote Session 连接到 SmartCloud Enterprise 上的 Rational Software Architect Desktop。
图 5. 通过 NX Client Remote Session 连接到 SmartCloud Enterprise 上的 Rational Software Architect Desktop
您可以从 下载 Rational Team Concert 和 Rational Asset Manager 客户端,并使用 Install Manager 安装它。
安装完毕后,保存映像。使映像可以用作标准开发客户端的***一步是,在 SmartCloud Enterprise 自助服务用户界面中将可见性从 private 修改为 enterprise。如图 6 所示。
图 6. Rational Software Architect 映象的共享可见性
现在,您已准好让开发团队的其他成员开始使用标准开发环境。
项目管理
除了源代码管理之外,Rational Team Concert 也是一个全功能的开发协作工具,支持 Agile 项目管理、构建服务器和缺陷管理。SmartCloud Enterprise 目录中提供了 Rational Team Concert 映象。Rational Team Concert 支持浏览器、Eclipse 和 Microsoft Visual Studio 的客户端。Rational Team Concert 支持项目管理员、项目负责人和项目团队成员等不同角色,通过委托管理的方式支持多个项目和团队。
#p#
试用 Rational Team Concert:
在目录中搜索它,然后单击 Start an instance of your image 链接。要访问 Web 用户界面,可以使用 URL https://hostname/jazz/web/。
您会看到提示,要求输入在配置虚拟机实例时所输入的管理密码。
登录后,显示一条消息,执行 Jazz Team Server 安装。请遵循 Fast Path。
有两个面向开发人员的嵌入式许可,您可以在安装过程中分配它们。在用户注册表处选择 Tomcat User Database。
导航到 Project Management Area。在开始时,这里没有项目。单击链接转到 Project Area Management 部分。您看到的屏幕应该与图 7 类似。
图 7. Rational Team Concert Project Areas Management 部分
单击 Create Project Area。输入项目的名称、摘要和描述。
单击 Deploy predefined process templates 链接。
使用 User Management 部分将用户添加到 Rational Team Concert,如图 8 所示。在您创建了用户之后,将它们添加到项目。
图 8. Rational Team Concert 中 User Management 部分的屏幕截屏
在 Rational Team Concert 中配置电子邮件设置:
设置电子邮件服务器,然后导航到 Server > Configuration > E-mail Settings 并输入电子邮件服务器的值,如图 9 所示。
图 9. Rational Team Concert E-mail Settings 配置
将 Enable E-mail Notification 设置为 true。输入 localhost 作为 SMTP 服务器。对于 E-Mail From Address,使用服务器的完全限定的域名作为电子邮件的***一部分,例如,idcuser@vhost029put。
单击 Save。
添加一个用户:
导航至 Project Management > Project Name。
在 Members 标题下面,将用户添加到项目。为了生成一个邀请,鼠标悬浮在包含成员的行上,并单击图标 Invite to Join Team,只有将鼠标悬浮在它上面才能看见该图标。您应该看到如图 10 所示的 Invite to Join Team 窗口。
图 10. Rational Team Concert 团队成员邀请
Web 用户界面可用于多种用途,但您应该将 Rational Team Concert Eclipse 客户端用作一个开发工具,或用于管理 Rational Team Concert。
结束语
我们希望通过向您展示如何在应用程序生命周期管理工具的帮助下扩大开发流程的范围,您可以实现集中化、标准化和自动化等好处,这些都是云环境可以向您的开发工作提供的好处。