统一配置服务 成功管理分布开发
—— ClearCase/ClearQuest在虚拟数据中心的应用

2009-11-13 作者:路彩霞,林媛媛,王建秋 来源:IBM

 

发展迅速、成本不断上升以及不期而至的工作量突升,这一切使IT管理人员疲于奔波。许多公司希望能够快速部署新服务和应用程序,却已无力支付高昂的能源和不动产成本,并且无力应对因服务器无序造成的复杂局面。为增强业务灵活性,各企业纷纷将目光转向虚拟化技术,期望借此技术能够更好地利用手中的计算资源。

虚拟化技术有多种解决方案,主要包括IBM System p服务器高级虚拟化解决方案,以及Sun推出的UltraSPARC + Sun Fire Server并使用带有容器技术的Solaris 10操作系统的虚拟化解决方案。

IBM ClearCase/ClearQuest借助以上虚拟化解决方案搭建一个虚拟软件配置中心,将ClearCase/ClearQuest不同服务器集中在一个物理实体中,为企业级软件开发团队提供统一的软件配置服务,成功的管理分布地域的开发。

为了描述方便,在后文中统一将ClearCase简称为CC,将ClearQuest简称为CQ。

1. 虚拟数据中心简介

1.1 IBM p5服务器逻辑分区(LPAR)

IBM的p5系统服务器虚拟化技术允许在一台物理的服务器上同时运行多套不同的操作系统,每个操作系统及其所使用的资源定义文件就组成了一个逻辑分区,也叫LPAR。

IBM的p5系统服务器不仅能够将硬件逻辑地划分为多个LPARs,而且还提供了在分区正常运行时动态添加、删除或在分区之间移动资源的能力。可以对正在运行的分区添加或删除CPU、内存,而不必首先关闭该LPAR。动态逻辑分区(DLPAR)为计算环境提供了大量的灵活性。随着环境条件的改变,可以通过将硬件资源移动到需要的地方而不中断对LPAR的服务作出反应。

每个LPAR包含自己的操作系统,该操作系统可以是AIX、Linux或i5/OS。

1.2 Sun Solaris容器技术

Solaris 10操作系统是Sun公司虚拟化战略的基石,它具有跨平台的能力和系统分区功能(Solaris Containers)。Solaris Containers有资源管理器和Solaris Zones软件分区技术两个组成部分。这两个组件分别代表该容器能够实现的两种不同的功能,两者协同工作可以创建完整的容器环境。利用资源管理器可以根据Zone中运行的应用程序的变化来动态分配系统资源。Zone软件分区技术提供从应用程序到平台资源的虚拟映射,利用这种技术可以使应用程序组件彼此隔离,互不影响。

Solaris Zones软件分区技术属于操作系统分区类的解决方案,它提供虚拟操作系统服务,对用户和应用而言就像不同的Solaris实例一样。这种架构隔离了进程,隐藏了底层的平台,使必须运行在不同物理系统上的多种应用能够共存在同一台机器上的不同的Zone里。

Solaris 10操作系统支持两种类型的Zone:Global Zone(全局Zone)和Non-Global Zone(非全局Zone)。

· Global Zone

每个Solaris 10系统都有一个Global Zone。Global Zone是系统的缺省Zone,同时也是用来执行系统管理控制的默认Zone。只有在Global Zone里才能够对非全局Zone进行配置、安装、管理或反安装。如果全局管理员没有创建任何非全局Zone,所有的进程都运行在Global Zone中。

· Non-Global Zone

非全局Zone包含一个已安装的完整Solaris操作系统软件包的子集,也能包含从全局Zone共享的Solaris软件包以及其他的已安装的非共享的软件包。在非全局Zone中不会意识到其他任何Zone的存在,它无法安装、管理与反安装任何其他非全局Zone。

1.3 虚拟数据中心的优势

·集中管理服务器资源,降低管理费用:服务可以更安全地部署在较少的服务器上,通过减少操作系统实例及相关软件的许可证费用,从而减少了管理的复杂性和成本。

·提高资源的利用率,从而降低运营成本:动态资源再分配,提高资源的利用率,让闲置的资源转移到其他容器所需的位置。

图 1 虚拟数据中心的实现

2. CC/CQ在虚拟数据中心环境下的部署

根据企业应用的不同,IBM Rational CC/CQ提供多种可定制的部署方案。下面将以Solaris Container虚拟数据中心为例,介绍在虚拟数据中心环境下常用的几种CC/CQ部署方案:CQ的部署、UCM-CQ的部署和CC/CQ的分布式部署。由于IBM CC/CQ完全支持IBM AIX逻辑分区(LPAR), 因此以上解决方案在IBM p5服务器虚拟化环境下同样能够实现。

说明:本文中讲到的在虚拟数据中心下的部署都使用的是CC和CQ 7.0.1版本。

2.1 CQ的部署

图 2  CQ安装拓扑图

在这种应用场景下,Sun Solaris 10被划为一个Global Zone和两个Non-Global Zone。

·Global: Global Zone,创建CQ的release area。

·user-ngzone: Non-Global Zone,安装CQ的"ClearQuest"组件。

·license-ngzone: Non-Global Zone,安装License Server。

根据企业的实际应用需要,在Global Zone上安装DB2或者Oracle数据库,用做CQ的数据库服务器。

2.2 UCM-CQ的部署

在Sun Solaris 10的环境下,Base CC-CQ的集成和UCM-CQ的集成都可以成功部署和应用,由于这两种集成方式的环境部署过程比较类似,因此本文只对其中的UCM-CQ的集成进行详细介绍,提供具体的部署和应用过程。

2.2.1 环境部署

图 3  UCM-CQ安装拓扑图

在这个实例中,我们将Sun Solaris 10分为一个Global Zone和两个Non-Global Zone。

·Global Zone: 安装CC VOB Server, View Server和CQ数据库服务器。

·License Zone:Non-Global Zone,安装License Server。

·user-ngzone:Non-Global Zone,安装CC的"ClearCase Full Function Installation"与"ClearQuest Integration with ClearCase"组件以及CQ的"ClearQuest"组件。

2.2.2 管理员和开发者操作

· 管理员

由于在Solaris平台下,CQ不支持创建模式库和用户数据库以及创建用户和组的功能,所以需要借助Windows平台下的CQ来做这些准备工作。在Windows平台中,管理员创建CQ模式库和用户数据库,用户数据库采用UCM Schema,同时在用户管理工具中创建用户和用户组,如Peter为管理员用户,Joe为开发者。为了增加用户的安全性,对创建的这些用户做LDAP匹配。管理员也可以做一些CQ的基本操作,如创建、修改和改变defect的状态。

在Global Zone中,CC的管理员创建UCM project VOB和component VOB。

在user-ngzone中, CC的管理员创建CQ-Enabled的工程(project),根据工程的进展情况,管理员将对工程(project)的集成流创建新的基线(baseline)并作为推荐基线(Recommended Baseline)。

· 开发者

如果Sun Solaris 10上的硬件资源比较空闲,可以划分单独的Non-Global Zone作为开发者的工作站。当然开发者也可以使用Windows或者Linux作为自己的工作站,来远程访问Sun Solaris 10 上的各个Server。

开发者的基本操作:连接工程(join project),然后在自己的开发视图下对element进行相关操作,如创建、修改和删除操作,在操作的过程中需要选择关联的CQ记录。在完成开发工作之后,开发者需要将自己所做的工作deliver到这个工程的集成流(integration stream)上,为了获取到其他成员已经deliver到集成流上的工作,开发者需要将project上的推荐基线rebase到自己的开发流上。

2.3 CC & CQ的分布式部署

2.3.1 CC & CQ分布式部署概述

对于较大规模的企业级应用,由于数据量巨大,CC/CQ在实际部署的时候通常采用分布式部署, 将VOB Server,View Server,Registry Server,Database Server分别部署在不同的硬件机器上,这样的部署虽然能满足企业级的需要,但造成拓扑结构过于庞大,会给IT管理带来巨大开支,同时也不利于后期的维护与升级。如下图:

    图 4 传统的CC/CQ分布式部署

越来越多的企业基于IT管理的成本与后期维护升级的需要,采用了诸如Sun Fire Server这样大型服务器实现虚拟数据中心。

IBM Rational CC/CQ 系列产品提供了支持虚拟数据中心环境下的部署模式,利用强大的Sun Solaris 10服务器的性能,划分出若干不同的相对独立的Non-Global Zone,将CC/CQ的不同组件分别部署在Global Zone和不同的Non-Global Zone中。这种部署方式有效的利用了Sun服务器的软硬件资源,将复杂的部署拓扑结构实现在同一台服务器中。

在每个Non-Global Zone中部署不同的应用,它们对系统硬件资源的需求是不同的。为了满足这一需求,管理员可以在Global Zone中对系统的资源进行动态分配。在实际使用的过程中,管理员可以针对实际的工作环境的变化以及对每个Server的访问量的变化来动态调整Non Global Zone所占用的系统资源,这样可以达到充分利用资源的目的。例如,在对CQ Database Server访问量减少,而对VOB Server的访问量增多的情况下,管理员可以将分配给CQ Database Server中的闲置的资源调配给VOB Server,这样既提高了VOB Server的性能,而且也提高了系统资源的利用率。

2.3.2 Zone的资源划分建议

在分布式部署CC和CQ的过程中,需要将不同的组件放在Global Zone和不同的Non-Global Zone上,这些Zone的资源划分需要遵循一定的原则。

服务器 资源划分原则
CQ WebServer  推荐采用动态分配资源的方式。管理员可以根据企业的实际情况的变化来动态调整硬件资源,包括CPU、内存、硬盘空间大小。
CQ Application Server
CQ Server
CQ Database Server
CCRC Server
CC VOB Server
CC View Server
License Server 用户量的变化对License Server的影响不是很大,建议采用静态分配资源。

关于VOB Server的资源划分建议:物理内存是影响VOB性能的最重要的因素,它可以影响到访问VOB的速度以及并发访问VOB的用户数量。在不降低性能的情况下,可以通过增加VOB Server内存大小来满足更多的用户同时访问VOB。

推荐的内存大小=db_servers的最大数量(即并发用户最大数量)×每个db_server进程占用空间大小(大约5MB)+vobrpc_servers的最大数量(即vob最大数量)×每个vobrpc_server进程占用空间大小(大约10MB)例如:Solaris VOB Server为了满足200个VOB,300个并发用户访问,则推荐的对换空间大小=300×5MB+200×10MB=3.5GB。当并发用户数和VOB数量增加的情况下,管理员就需要给VOB Server增加内存资源,以满足需求。(参考[CC Admin] Rational ClearCase/ClearCase LT Administrator's Guide)

2.3.3 环境部署

为了将CC和CQ分布式的部署在Sun Solaris 10服务器上, 通常情况下的部署方案是:

    图 5 分布式部署CC和CQ拓扑图

license-ngzone: 将Rational License Server部署在这个Zone中,统一管理Rational系列产品的License服务。

web-ngzone: 部署用于接收来自CQ Web Browser请求的Web Server,并将请求转发给相应的应用服务器。

was-ngzone: 部署CQ Application Server,处理CQ Web应用服务。

cqserver-ngzone: 部署CQ Server。CQ Core部分部署在这个Zone中。

ccrc-ngzone: 部署CCRC Server,CC Core部分部署在这个Zone中。

注:如果要通过CC/CQ的无缝集成,来实现Rational提供的统一变更解决方案(UCM),此时应将CCRC Server与CQ Server部署在同一个Non-Global Zone中。

db-ngzone: 部署CQ Database Server,由于CQ支持多种数据库,根据企业需要选择部署DB2或者Oracle等企业级数据库Server。

ccuser-ngzone: 部署CCRC for Eclipse的客户端,开发人员通过这个客户端或者Web浏览器来访问CCRC Server。

cquser-ngzone:部署CQ RCP客户端,用户可以通过CQ RCP客户端或者CQ Web来做变更管理工作。

Global Zone:由于Sun Solaris Container技术的限制,CC Vob Server,CC View Server,CQ和CC的Release Area只能部署在Global Zone中。

根据需要,可以在Sun服务服务器中划分出几个user-zone安装CC或者CQ Client端组件,同时也可以利用开发人员远程的机器作为CC或者CQ的客户端访问服务器端的数据。

2.3.4 CQ分布式部署过程

(1)在db-ngzone中根据企业需要选择部署DB2或者Oracle等企业级数据库Server。

(2)在license-ngzone中部署用于统一管理Rational系列产品的License Server。

(3)在cqserver-ngzone中部署CQ Server:

安装CQ的"ClearQuest"组件和"ClearQuest Server"组件。

(4)在was-ngzone中部署CQ Application Server:

·安装CQ的"ClearQuest Web Application"组件。

·安装完之后修改如下的配置文件,使其指向CQ Server。

如果CQ安装在/opt目录下,则修改

/opt/rational/common/rwp/EmbeddedExpress/profiles/profile1/installedApps/DefaulNode/RationalClearQuestWeb.ear/CQWebModule.war/WEB-INF/classes/目录下的jtl.properties文件。

    修改 JTLRMIREGISTRYSERVERS=localhost:1130

    为 JTLRMIREGISTRYSERVERS=[ CQ Server IP或者机器名]:1130

修改完之后需要重新启动RWP服务来使修改的内容生效。

(5)在web-ngzone中部署用于接收来自CQ Web Browser请求的Web Server:

·在CC和CQ的组件中都包括部署Web Server所需要的组件。如果使用CC来部署Web Server,需要安装"ClearCase Web Interface Server"组件;如果使用CQ来部署Web Server,需要安装CQ的"ClearQuest Web Application"组件。

·安装完之后,需要修改如下的配置文件,使其指向CQ Application Server,达到将http请求重新定向并转发给CQ Application Server的目的:

如果CQ/CC安装在/opt目录下,则修改

/opt/rational/common/rwp/EmbeddedExpress/profiles/目录下的plugin-cfg.xml文件

    修改"Transport Hostname" 为"CQ Application Server IP"

1<ServerCluster Name="profile1_Cluster">
2    <Server Name="server1">
3        <Transport Hostname=" CQ Application Server IP " Port="10080" Protocol="http"/>
4    </Server>
5</ServerCluster>

修改完之后需要重新启动RWP服务来使修改的内容生效。

(6)部署工作结束。

(7)验证以上部署过程是否成功:

在cquser-ngzone中用户可以通过Web Browser访问Web Server来使用CQ Web客户端。

URL:http://Web Server IP/cqweb/login,在这个客户端中可以做一些CQ的基本操作。

2.3.5 含有多个CQ Server的CQ分布式部署

在实际的企业应用中,如果用户访问量比较大,在CQ分布式部署过程中可以部署多个CQ Server,在某个CQ Server因为宕机等原因导致不能正常使用的时候,Web请求可以自动转向其他的CQ Server来处理。通过这种方式可以减轻单个CQ Server的负担,同时可以避免因为CQ Server宕机而导致的无法访问CQ Web的情况。部署拓扑图如下:

    图 6 含多个CQ Server的CQ分布式部署图

这种部署的具体过程跟2.3.4类似,请参考2.3.4,这里不再赘述。唯一不同的是在修改Application Server上的配置文件时需要指向多个CQ Server,如下:

如果CQ安装在/opt目录下,则修改

/opt/rational/common/rwp/EmbeddedExpress/profiles/profile1/installedApps/DefaulNode/RationalClearQuestWeb.ear/CQWebModule.war/WEB-INF/classes/目录下的jtl.properties文件。

    修改 JTLRMIREGISTRYSERVERS=localhost:1130

    为 JTLRMIREGISTRYSERVERS=[CQ Server 1]:1130, [CQ Server 2]:1130

2.3.6 CC分布部署过程

在 Sun Solaris 10环境下分布部署CC的具体过程如下:

(1)在Global Zone中部署Vob Server和View Server:

安装CC的"ClearCase Full Function Installation"或者"ClearCase Server-Only Installation"组件。

(2)在ccrc-ngzone中部署CCRC Server:

·安装CC的"ClearCase Web Interface Server"组件和"ClearCase Full Function Installation"组件。在安装的过程中registry server指向Global Zone。

·验证CCRC Server是否部署成功:在Web浏览器中输入http://CCRC Server IP/ccrc/update/,如果关于IBM Rational ClearCase Remote Client的页面能够正常显示,则说明部署成功。

(3)在ccuser-ngzone中部署CCRC for Eclipse的客户端,开发人员通过这个客户端或者Web浏览器来访问CCRC Server。

·访问CC Web的URL:http://ccrc-ngzone IP/ccweb,通过访问CC Web,用户可以创建自己的view来工作。

·在使用CCRC for Eclipse客户端时,连接CCRC Server的URL是:http://CCRC Server IP /ccrc。

3. 结束语

综上所述,在Sun Solaris 10环境下,CC和CQ可以分布式的部署在不同的Non-Global Zone中,管理员可以在Global Zone中根据实际的工作环境来分配系统的资源,以达到提高资源利用率的目的。IBM p5系统服务器的动态逻辑分区具有相同的功能,并且可以在不重新引导系统或影响分区的情况下,将CPU、内存等资源从一个分区转移到另一个分区,以达到资源的动态分配。这种集中管理的方式可以降低服务器的维护成本,从而为企业节约成本。


火龙果软件/UML软件工程组织致力于提高您的软件工程实践能力,我们不断地吸取业界的宝贵经验,向您提供经过数百家企业验证的有效的工程技术实践经验,同时关注最新的理论进展,帮助您“领跑您所在行业的软件世界”。
资源网站: UML软件工程组织