- 浏览: 31468 次
- 性别:
- 来自: 天津
最近访客 更多访客>>
最新评论
-
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 365摘要: 允许抵免的投资是指试点企业当年实际发生的,独立举办或 ... -
我最近的工作
2009-08-21 11:47 7751:浪潮服务器 曙光服务器 尖锐湿疣等关键字的排名 2:淘宝上 ... -
09游记·夏:天边的云
2009-07-21 17:08 763[img=560,309]http://hiphoto ... -
玩轮滑的人们
2009-07-05 17:08 960轮滑之所以深受大众的 ... -
蜜月滇藏游(8)香格里拉-美的绚烂美的妖娆
2009-06-27 17:08 789中国国家地理对于广义的香格里拉定义是:从西藏东南部林芝地区到滇 ... -
印尼的天空很归属。
2009-06-19 17:08 999在印度尼西亚没有高楼 ... -
Tapestry最新版5.1.0.5教程(二)续
2009-06-14 08:13 892Tapestry最新版5.1.0.5教程(二)续 ... -
spring junit 测试
2009-06-14 08:01 1346spring junit 测试 Poste ... -
TWaver3.0 SVG WebRadar Chart
2009-06-14 07:58 1008TWaver3.0 SVG WebRadar Chart ... -
Duke's Choice Award 2009(译)
2009-06-14 07:55 720Duke's Choice Award 2009(译) ... -
环境无关的环境
2009-06-14 07:45 785环境无关的环境 Pos ... -
唯美颐和园:中国传统文化的胜景
2009-06-11 17:08 870标帜建筑昆明湖前的万寿山上的佛香阁十六孔桥石栏水景塔昆明湖佛香 ... -
风雨过后见彩虹
2009-06-10 15:51 817~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ... -
RAP的超酷应用系统:CAS PIA
2009-06-09 07:40 916RAP的超酷应用系统:CAS PIA 下面是基于RA ... -
Tapestry最新版5.1.0.5教程(三)
2009-06-06 09:37 1094Tapestry最新版5.1.0.5教程(三) P ... -
Spring Security-2.0入门教程
2009-06-05 07:22 1350Spring Security-2.0入门教程 欢迎 ... -
Linux批量替换文件内容
2009-06-02 08:23 2147Linux批量替换文件内容 Posted widt ... -
ubuntu 8.10下手动安装vmvare tools
2009-06-02 08:20 1337ubuntu 8.10下手动安装vmvare tools ... -
webservice 视频教程 Spring+xfire 整合
2009-06-02 08:17 4736webservice 视频教程 Spring+xfire 整合 ... -
Tapestry最新版5.1.0.5教程(二)
2009-06-02 07:44 1068Tapestry最新版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
6. **文件"3_Multi-stage Amplifier_BJT+MOSFET"**: 这个文件很可能是详细的设计图纸、仿真结果或理论计算,涵盖了BJT和MOSFET多级放大器的具体电路配置、参数选择以及性能评估。通过研究这些内容,我们可以更深入...
开源项目-itwars-Docker-multi-stage-build.zip,An example of Docker multi-stage building with Golang
标题与描述均提到了一种多阶段概率算法在动态路径规划中的应用,这表明文章的核心是介绍并探讨一种结合了概率抽样方法与快速探索随机树(RRT)的新型算法,旨在解决高度动态环境下的路径规划问题。标签进一步强调了...
03_MICROSAR_Multi-core_Integration
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 ...
在2017年5月3日即将发行的 Docker 17.05.0-ce 中,Docker 官方提供了简便的多阶段构建 (multi-stage build) 方案,下面这篇文章主要给大家介绍了关于Dockerfile中multi-stage(多阶段构建)的相关资料,需要的朋友可以...
多阶段源地图 该库为多级源映射提供重新映射功能。 安装 npm install multi-stage-sourcemap 概念 基本SourceMap 众所周知的基本sourcemap没问题。 多级SourceMap 多级SourceMap有问题。 不提供将Minified Code...
Multi-layer AHB(多层高级微控制器总线架构)是一种基于AHB(Advanced High-performance Bus)协议的互连方案,它支持多个主设备与从设备之间的并行访问路径。这种设计旨在提高系统性能、减少延迟并增加带宽,特别...
这篇讲稿是关于2019年的一篇计算机视觉(CV)领域的论文,主题是“鲁棒多模态多目标跟踪(Robust Multi-Modality Multi-Object Tracking, MMOT)”。多模态多目标跟踪(MOT)旨在在一个场景中同时追踪来自不同传感器(如...
**OBS多路推流插件obs-multi-rtmp详解** OBS(Open Broadcaster Software)是一款开源且免费的屏幕捕捉与实时视频流媒体软件,广泛应用于直播、录制和视频编辑等领域。在OBS中,"obs-multi-rtmp"是一款重要的插件,...