【IT168信息化】
Rational ClearCase软件已经有二十多年的历史了,他已经成为大型软件研发公司的首选配置管理工具,不仅是这样,Rational软件产品已经连续多年居市场卓越位。
由于ClearCase软件的复杂性,不同公司对ClearCase软件定制了不同的配置策略。本文内容描述了一套独特的对ClearCase的定制方案,在全球性软件研发公司提供统一的用户管理的实践。以本实践为基础可以提供一套高效的低成本的24小时配置管理服务。
全球性研发团队需要什么样的软件配置管理服务?
有了优秀的配置管理软件不一定能提供优秀的配置管理服务,只用配合适当的流程和有目的性的对Rational Clearcase 进行配置才能显著提高工作效率。本实践就是针对一个大型软件产品(以下简称S软件产品)如何提高效率降低成本的一次实践。
开发什么样的产品就需要有什么样的配置管理模式相配合,首先介绍一下S产品发产品研发团队的规模。S产品的研发团队是一个分布在多个国家具有500人规模的团队。这对配置管理服务工作提出了一些特殊要求。
首先,开发团队分布跨越了24个时区,对配置管理的服务也会是24小时,配置管理支持人员经常会对异地开发提供支持。
其次,S产品分为很多模块这些模块在全球的不同地区开发,开发模式不尽相同导致对配置管理支持的方式差异很大
最后,有些模块是很多site之间紧密合作完成的,一个site出现的问题可能影响到其他site。这要求多个site的配置管理人员沟通十分紧密。
首先我们可以先借鉴一些传统公司的一些配置管理经验
国内的一些有规模的公司还是比较重视软件配置管理工作的,这样得到公司一般会做作CMMI的认证,对公司的配置管理流程有一套完备的配置管理工作的章程,指导书和模板,也会按照CMMI的各个过程域建立一个过程改进的组织架构。
这样的公司在开发团队地理位置分布上基本都是以一个site为主,少有的Multi site模式也只是单方向的提交代码,并非团队协同开发。
配置管理工作特点:
1. 这样的配置管理工作很难做到24小时服务和远程配置管理的支持。
2. 不同产品线的开发流程差异很大,对配置管理支持工作要求差异也很大。只能为项目配置专门的配置管理员。
3. 开发模式基本上是single site模式,没有异地协同开发形式。
传统的跨国软件公司一般会有一套比较完善的流程来保证质量,这些流程是靠一些关键岗位资深员工执行的,虽然没有研发规程和完整的过程改进的组织架构,但还是会有完善的流程图和产出物模板。
配置管理工作特点:
1. 这样的配置管理工作在不同时区都有对应的配置管理支持人员。但很难做到跨时区的配置管理支持。
2. 不同产品开发流程差异较大,项目和配置管理支持人员基本上是单独配置,简单说项目的配置管理工作由特定的配置管理人员完成。
3. 开发模式以multi site 为主,几个site协作完成一个产品。有明确的集成策略来指导开发工作,但是不同site的配置管理员相对独立沟通也较少
传统的multi site用户管理模式是在不同的site维护独立的用户认证机制,这样为异地提供配置管理支持带来很大麻烦,并且因为对同一产品维护多套用户认证机制增加很多成本。
分布式统一用户管理
实现分布式用户管理的前提是对产品的不同组件(或VOB)分配特定的用户组,如果有必要可以分配只读用户组。以此来保证每一次对配置项的改动都是被授权的。
用户的申请特点VOB访问权限请求需要用户的Profile Manager(人事经理)和Access Approver(VOB业务所属经理)双重审批审批。图1-1是用户请求流程图,在流程工具中只有通过双重审批的请求才会被用户管理员执行。

▲图1-1
通过流程工具来统一用户管理流程,这样不仅打破的不同模块用户权限流程的差异,而且还可以统一不同产品在用户管理的流程的差异。
使用Windows Active Directory(活动目录) 进行统一的权限管理,通过分布在不同的时区的域控制器进行管理。并且由统一的账户管理流程工具来实现流程控制。这样会大大减少维护多套用户组的成本,也可以方便的通过一个账号提供远程的配置管理支持。

▲图2-2
图2-2中列举了S产品域网络中几个典型的site拓扑图,每一个site都有一个域控制器,负责管理用户的操作,每个site的域控制器之间都会定期自动同步用户信息。这样对于管理员来说一个域账户可以对所有site的用户进行管理。
同时对于开发人员来说也可以方便的通过自己的账号和CCRC的帮助下方便的参与到本site之外的项目开发,使得不同site间的开发工作更加紧密的结合起来。更容易加速产品研发速度。实现24小时都有人对一个产品进行研发。
ClearCase 的权限控制十分强大,不过也相对的增加了管理和维护成本,如果能保证安全的前提下适当的简化权限控制机制就能提高效率,降低维护成本。在组件内部只使用一个组进行权限控制,对于功能相关性比较大的组件也使用相同的组来进行权限控制。
下面命令是统一当前目录CI的所属权限组的命令,如果在VOB的根目录执行就可以统一VOB的权限组。
cleartool protect -chgrp Domain_name\clearcase_user -r .
命令中 cleartool为ClearCase 工具集命令;protect为变更权限子命令;-chgrp为变更组信息;Domain_name 为AD域名;clearcase_user为权限组名;-r参数为对子目录也进行操作;“.”最后的一个点意思是当前目录。