- 浏览: 30206 次
- 性别:
- 来自: 天津
最近访客 更多访客>>
最新评论
-
confident_f:
这个链接打不开了,可有其他途径找到这个材料
Spring Security-2.0入门教程 -
阳光晒晒:
看不到把传送门发出来
风雨过后见彩虹
BlogJava 首页 新随笔 联系 聚合 管理 posts - 124, comments - 298, trackbacks - 0 (Multi-stage Continuous Integration)多阶段持续集成 一、目前的情况
目前我们要进行持续集成的对象是一个有着100人左右的开发团队,他们开发着一套很庞大的系统。整个开发团队划分为多个开发小组进行协同开发,每个开发小组负责2-3个模块的开发,实际这里的模块已经相当于一个中小型系统。各模块所有的类都通过eclipse整体编译在一起,直接放置在WEB-INF/classes下。本地是无法启动整个系统的,需要耗费大量的资源。
二、碰到的问题
在了解具体情况之前,我们最初的想法是为整个产品做一个持续集成,但是很快就发现这一想法存在很多的问题:
1、整个产品每次构建的时间会很长,这个时间包括代码的编译、启动Weblogic,完成自动化测试,同时对服务器的硬件要求非常高
2、因为构建时间长,所以如果本地构建通过后再提交会严重影响开发效率,况且本地的硬件条件很可能启动不了
3、如果本地不构建提交,则由于开发人数众多,构建会非常不稳定,会经常处于失败状态。而构建失败会导致后续提交的阻塞。
4、作为一个100人的开发团队,代码提交会引发频繁的服务器构建,服务器无法负担。
同时作为客户,他们有这样一种想法:敏捷开发是好的,但是不适合于大的项目和大的团队。
最重要的问题集中在两个方面:
1、启动整个产品过于重量级(不包括自动化测试的情况下已经如此)
2、如何不影响开发人员的频繁提交
三、我们的想法
我们现在的想法是做多阶段的持续集成(multi-stage CI)
可以参考这里http://www.ddj.com/development-tools/212201506
具体而言:
1、各个开发小组内做小组内的持续集成
2、开发小组间集成做整个产品的持续集成
[img=400,183]http://www.blogjava.net/images/blogjava_net/ronghao/ci.gif[/img]
大概:
1、每个开发小组一个分支,整个产品一条主线
2、在小组分支上搭建持续集成环境,小组内的开发向该分支上提交,各个小组可以并发开发,互不影响
3、小组完成一个完整的功能后,从主线更新合并代码,本地构建通过,提交,触发整个产品的持续集成
为使小组内持续集成构建加快,小组内尽量划分清楚对其他模块的依赖,不必要的模块(这里的模块包括基础模块,例如工作流模块)不必加载。
同时推荐轻量级的web服务器例如Tomcat来完成小组内的测试环境。需要启动weblogic的情况或功能依赖过多的情况下,建议在产品持续集成时进行测试。
同时保留原有的启动单独测试服务器进行手工测试的习惯。
http://www.blogjava.net/ronghao 荣浩原创,转载请注明出处:)
posted width = "1" height = "1" />
目前我们要进行持续集成的对象是一个有着100人左右的开发团队,他们开发着一套很庞大的系统。整个开发团队划分为多个开发小组进行协同开发,每个开发小组负责2-3个模块的开发,实际这里的模块已经相当于一个中小型系统。各模块所有的类都通过eclipse整体编译在一起,直接放置在WEB-INF/classes下。本地是无法启动整个系统的,需要耗费大量的资源。
二、碰到的问题
在了解具体情况之前,我们最初的想法是为整个产品做一个持续集成,但是很快就发现这一想法存在很多的问题:
1、整个产品每次构建的时间会很长,这个时间包括代码的编译、启动Weblogic,完成自动化测试,同时对服务器的硬件要求非常高
2、因为构建时间长,所以如果本地构建通过后再提交会严重影响开发效率,况且本地的硬件条件很可能启动不了
3、如果本地不构建提交,则由于开发人数众多,构建会非常不稳定,会经常处于失败状态。而构建失败会导致后续提交的阻塞。
4、作为一个100人的开发团队,代码提交会引发频繁的服务器构建,服务器无法负担。
同时作为客户,他们有这样一种想法:敏捷开发是好的,但是不适合于大的项目和大的团队。
最重要的问题集中在两个方面:
1、启动整个产品过于重量级(不包括自动化测试的情况下已经如此)
2、如何不影响开发人员的频繁提交
三、我们的想法
我们现在的想法是做多阶段的持续集成(multi-stage CI)
可以参考这里http://www.ddj.com/development-tools/212201506
具体而言:
1、各个开发小组内做小组内的持续集成
2、开发小组间集成做整个产品的持续集成
[img=400,183]http://www.blogjava.net/images/blogjava_net/ronghao/ci.gif[/img]
大概:
1、每个开发小组一个分支,整个产品一条主线
2、在小组分支上搭建持续集成环境,小组内的开发向该分支上提交,各个小组可以并发开发,互不影响
3、小组完成一个完整的功能后,从主线更新合并代码,本地构建通过,提交,触发整个产品的持续集成
为使小组内持续集成构建加快,小组内尽量划分清楚对其他模块的依赖,不必要的模块(这里的模块包括基础模块,例如工作流模块)不必加载。
同时推荐轻量级的web服务器例如Tomcat来完成小组内的测试环境。需要启动weblogic的情况或功能依赖过多的情况下,建议在产品持续集成时进行测试。
同时保留原有的启动单独测试服务器进行手工测试的习惯。
http://www.blogjava.net/ronghao 荣浩原创,转载请注明出处:)
posted width = "1" height = "1" />
发表评论
-
关于调整部分政府性基金有关政策的通知
2019-07-15 20:42 280摘要: 允许抵免的投资是指试点企业当年实际发生的,独立举办或 ... -
我最近的工作
2009-08-21 11:47 7251:浪潮服务器 曙光服务器 尖锐湿疣等关键字的排名 2:淘宝上 ... -
09游记·夏:天边的云
2009-07-21 17:08 719[img=560,309]http://hiphoto ... -
玩轮滑的人们
2009-07-05 17:08 913轮滑之所以深受大众的 ... -
蜜月滇藏游(8)香格里拉-美的绚烂美的妖娆
2009-06-27 17:08 738中国国家地理对于广义的香格里拉定义是:从西藏东南部林芝地区到滇 ... -
印尼的天空很归属。
2009-06-19 17:08 957在印度尼西亚没有高楼 ... -
Tapestry最新版5.1.0.5教程(二)续
2009-06-14 08:13 853Tapestry最新版5.1.0.5教程(二)续 ... -
spring junit 测试
2009-06-14 08:01 1297spring junit 测试 Poste ... -
TWaver3.0 SVG WebRadar Chart
2009-06-14 07:58 980TWaver3.0 SVG WebRadar Chart ... -
Duke's Choice Award 2009(译)
2009-06-14 07:55 680Duke's Choice Award 2009(译) ... -
环境无关的环境
2009-06-14 07:45 734环境无关的环境 Pos ... -
唯美颐和园:中国传统文化的胜景
2009-06-11 17:08 831标帜建筑昆明湖前的万寿山上的佛香阁十六孔桥石栏水景塔昆明湖佛香 ... -
风雨过后见彩虹
2009-06-10 15:51 756~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ... -
RAP的超酷应用系统:CAS PIA
2009-06-09 07:40 869RAP的超酷应用系统:CAS PIA 下面是基于RA ... -
Tapestry最新版5.1.0.5教程(三)
2009-06-06 09:37 1058Tapestry最新版5.1.0.5教程(三) P ... -
Spring Security-2.0入门教程
2009-06-05 07:22 1314Spring Security-2.0入门教程 欢迎 ... -
Linux批量替换文件内容
2009-06-02 08:23 2105Linux批量替换文件内容 Posted widt ... -
ubuntu 8.10下手动安装vmvare tools
2009-06-02 08:20 1276ubuntu 8.10下手动安装vmvare tools ... -
webservice 视频教程 Spring+xfire 整合
2009-06-02 08:17 4702webservice 视频教程 Spring+xfire 整合 ... -
Tapestry最新版5.1.0.5教程(二)
2009-06-02 07:44 1036Tapestry最新版5.1.0.5教程 ...
相关推荐
开源项目-itwars-Docker-multi-stage-build#an-example-of-docker-multi-stage-building-with-golang.zip,An example of Docker multi-stage building with Golang
Multi-Stage Progressive Image Restoration文献调研
A Multi-stage Probabilistic Algorithm for Dynamic Path-Planning
开源项目-itwars-Docker-multi-stage-build.zip,An example of Docker multi-stage building with Golang
However, this method becomes very time-consuming when extended to a multi-level threshold problem due to the fact that a large number of iterations are required for computing the cumulative ...
MIL-STD-1235C Single-And Multi-Level Continuous Sampling Procedu
Circuit and device: MOSFET and BJT amps
2019年CV论文 Robust Multi-Modality Multi-Object Tracking 讲稿(配合PPT使用)
食管测压诊断的多阶段机器学习模型_A multi-stage machine learning model on diagnosis of esophageal manometry.pdf
多阶段源地图 该库为多级源映射提供重新映射功能。 安装 npm install multi-stage-sourcemap 概念 基本SourceMap 众所周知的基本sourcemap没问题。 多级SourceMap 多级SourceMap有问题。 不提供将Minified Code...
Then a multi-stage modeling framework for Web service composition is proposed based on formal modeling language. The framework is semi-automatic. It leverages the advantages of process algebra and ...
MIL-STD-1235C Single-And Multi-Level Continuous Sampling Procedures And Tables For Inspection By Attributes – 完整英文版(303页).pdf