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参数为对子目录也进行操作;“.”最后的一个点意思是当前目录。
分布式统一用户管理的业务价值
任何软件和流程都是为了提供某种服务而存在,分布式统一用户管理可以提供一套统一的24小时的用户管理支持服务。并且为全球性研发公司实现智慧的配置管理解决方案提供可能。
下面用一个实际工作中如何进行配置管理支持的例子来说明分布式统一用户管理是如何协调工作的。
某个星期一的早晨9:00一位美国的配置同时联系我说我们的一台VOB服务器有些VOB异常。
首先问题的原因是服务器上VOB的磁盘空间满了,导致在服务器与其他site同步代码数据的时候出错,并且造成vob文件损坏无法进行访问。
解决方案是先清理磁盘空间。然后解锁对应的VOB,当服务器重新启动的时候才能恢复正常。
在和美国的配置管理同时讨论解决方案后我们开始工作了:
1. 10:00发出通知声明目前损坏的VOB情况,并告知在下班后需要对VOB服务器进行一次两小时的停机维护,这样能保证其他VOB在工作时间不会停止工作。
2. 18:00在我每天都会发出的一封配置管理总结报告中说明服务器清理情况,把工作交给我的美国同事。
3. 第二天早晨很高兴的收到我的美国同事发回的服务器一切正常的邮件。所有VOB工作正常了。总结了一下本次停机的经验我们的这次完美的服务就结束了。
这是多么让人心情愉快的一次服务经历啊。我想这样的紧密结合的工作模式不仅仅存在于我所在的配置管理团队,它也存在于我们的研发团队,即24小时不停的工作模式。
如果换成是传统公司的解决办法那简直就是一场灾难…
找到正确的人,在正确的时间里,做正确的事情,这是一个智慧的选择。
首先,找到正确的人:
有些模块是很多site之间紧密合作完成的,一个问题可能是由于其他site影响。
在统一的管理平台,解决了一个问题就相当解决了所有site的问题,这样也大大减少了配置管理支持的工作量。在统一用户管理平台中配置管理人之间协同完成多site的支持工作,这也增加了配置管理人员间的经验交流,整合集体智力。
其次,在正确的时间里:
通过分布式统一用户管理模式,可以提供高效的24小时的支持,同时不会增加成本。
分布在中国和德国和美国配置管理人员,在正常8小时的工作时间提供本地的用户也会支持其他site非正常工作时间产生的少量的支持工作。
最后,做正确的事:
通过用户管理流程工具统一不同组件的用户管理流程,统一的流程大大的简化了配置管理人员对异地用户支持的工作。
分布式统一用户管理是在正确的时间,找到正确人,做正确的事情。
1. 分布式统一用户管理,使全球性软件研发公司智慧的配置管理的服务成为可能。
2. 统一的用户权限组可以为配置管理支持人员远程用户提供高效的支持提供可能。
3. 通过统一的用户管理的实践,为统一其他配置管理工作提供经验。
4. 统一用户管理提高了支持人员和开发人员协同工作的能力,达到24小时研发的高效模式。
名词解释
全球性公司:区别于跨国公司的特点是,跨国公司在每个国家的分支是具有所有功能的子公司,是相对独立的,全球性公司的特点是全球性公司会在适合的国家建立适合的部门,使得这些分支公司的联系更加紧密。比如在劳动力相对便宜的国家建立采购中心,在财务人才比较多的国家建立财务部门等。
VOB: Versioned Object Base 版本控制目标库,用来存贮项目代码或文档。
Blue Page: 是一个基于LDAP认证员工信息数据库,用来存储员工信息和识别用户。员工的人事经理信息自然也是员工信息的一部分也存储在Blue
Page中。
CCRC: ClearCase Remote Client 是Clearcase远程客户端,通过ClearCase
WEB Platform 将允许远程用户通过CCRC来连接CC服务器达到访问代码的功能。
CI: Configuration Item 配置项。可以是代码或是文档形式的项目资产。
AD域: Active Directory 控制的网络。
|