您的位置:首页 > 职场人生

程序员应该用到的配置管理

2013-11-11 14:52 351 查看
1、前言
   在软件开发、软件系统维护项目实施过程中,经常听到开发人员、维护人员抱怨,开发代码混乱、部署代码不一致等问题。
   这些问题属于配置管理范畴,也是开发人员参与造成的问题,也是管理、工具使用、配置技术协同脱节问题。
   在此只是介绍开发人员应具备的配置管理方面的知识和技术,并要求开发人员按配置管理规范执行,特别在云技术应用开发项目中,团队开发要求更高。

2、团队开发理想模型案例
  在流程服务平台中提供了非常完整的7套开发环境测试部署管理环境,各个环境可以按不同的许可进行单独部署安装,可用于不同阶段进行开发、测试与部署管理:
  离线环境:提供离线环境,开发人员基于流程服务虚拟机环境进行开发,所有开发工程文件保存在个人的电脑中。
  在线环境:开发人员通过SNV同步离线环境中的工程文件到在线环境进行集中测试。
  SIT环境:开发人员通过SVN同步在线环境中的工程文件到SIT环境进行集成测试
  UAT环境:在用户接受度环境测试中需要将应用打包成CAP包,并直接发布运行时的CAP流程应用包,进行用户可用性测试
  准生产环境:发布CAP流程应用包,进行准生产环境测试
  生产环境:发布经过充分测试的CAP流程应用包到正式生产环境
在线开发工具:在生产境中,各租户提供在线的开发工具,对各租户的开发管理员可以基于浏览器进行个性化的流程应用定制开发、测试及部署功能。



3、实际团队开发环境与配置库
3.1、开发环境
   考虑开发、实施的可操作性、经济性,把环境简化为最低要求,只有:开发环境、测试环境和生产环境。开发、测试、生产环境部署都是围绕着配置管理服务进行开发管理的。



3.2、配置管理库



   配置库以SVN为例,一级目录包括:trunk、branches、tags。
   其中trunk是主干,也就是开发库,存放日常的文档和代码,branches是分支,存放为不同用户定制的不同版本,tags是基线库,用打TAG的方式,以TAG名称作为目录名称。
   Svn的branhces和tags本质没有区别,都是通过svn copy方式建立的。

4、开发实施过程与配置库
4.1、开发实施过程与配置库关系



   测试环境理论上与生产环境保持一致,至少应用、数据模型版本上保持一致;
   开发环境也尽量与生产环境保持一致,如果不一致,而且影响新应用的开发,则卸载不一致内容(保存到配置库)。

4.2、分支开发管理过程




   每次变更/新需求将产生分支开发,此分支开发过程围绕着分支进行,在上线时与主干合并后发布。



5、配置管理跟踪记录
   作为程序员,除了日常代码提交到配置库、相互间协作外,还应重点关注如下操作:
   1、源代码检出/或工程检出(从哪儿检出、检出哪个版本、这些版本定义说明在哪里?);
   2、代码合并处理(可能不进行具体操作,但必须有此过程);
   3、源代码入库(入库申请、配置管理员审计);
   4、配合配置管理员形成基线(或临时基线)。

6、生产环境变更管理
6.1、管理规则

   1、工作时间不允许在生产环境进行测试活动(包括功能测试、性能测试);
   2、工作时间不允许在生产环境进行数据迁移活动(包括格式化数据、非格式化数据);
   3、原则上工作时间不允许进行发布平台应用、修改配置参数活动。对于为保证系统业务持续性而必须在工作时间进行的紧急发布,必须得到PM的邮件确认;
   4、各开发组(或厂商)的上线活动、数据变更活动需要经过PM及CCB的审批才能进行。厂商需根据其发布/变更内容提供测试报告、变更影响分析说明文档;
   5、一般情况下,变更定期发布,例如定期在周四晚上发布变更应用,其他时间原则不发布变更;
   6、系统组、运维组应定期修改数据库、操作系统用户/口令/权限。至少每3个月修改一次。

6.2、生产环境变更管理流程







   1、CCB由PM、发布单负责人、系统组长、运维组长、平台SA、实施组长组成;
   2、紧急变更需要由PM审批;其它变更活动由CCB、PM及厂商共同评审;

   3、Owner负责牵头准备变更方案:包括变更影响范围、变更实施步骤、回滚方案、以及对其它厂商/运维组/系统组/实施组的配合要求。特别对于上线性能测试,在变更方案中要明确性能指标、测试场景、测试用例、测试脚本、测试步骤等内容。

......待续
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: