我应该如何处理SOA平台的持续集成?
让我来解释一下设置。我们有30种web服务解决方案和5种客户端解决方案,web服务非常依赖于彼此(引用契约dll),并且共享一些常见的实用程序dll。
到目前为止,我们一直对CruiseControl.net (37个CC项目,5个客户,30个WS,1个公用事业项目,1个集成测试项目)感到满意,所有这些都是相互独立的构建和测试。在每次部署之前,我们以一个定义良好的顺序触发所有项目的构建,这使我们可以随时部署到大约7个不同的服务器上。
到目前为止,我们还没有对服务进行任何版本控制,每个部署都会部署完整的shebang。
我们最近开始生产,现在我们需要扩展代码,这样任何进一步的开发都不会影响我们修复现在生产中的内容的能力。
此外,我们希望分散我们的努力,产生单独的开发努力,创建新的客户端,或者在现有的客户/服务中添加主要的功能,我的想法是,我们需要以下内容
这样,我们就可以用很少的努力来修复prod,我们将继续每月根据用户反馈来改进prod,并且我们可以在SOA堆栈上启动新的主要工作,而不干扰前两个(直到合并代码,即:)。
问题是:我们应该为CI使用什么工具?如我所见,可供选择:
他说:我不喜欢它(笨重的,什么时候是绿色的,所有的球队都使用相同的游泳池)
他说:我可以看到我们这样做,但感觉有点笨重。
他说:我们应该使用哪台服务器?到目前为止,我已经听说过哈德逊和克鲁斯的名字,这些名字适用吗?
他说:我想错了吗?其他人是如何在SOA堆栈上进行CI的?SOA堆栈的目的是支持许多团队的开发工作?
发布于 2009-11-07 14:11:59
我会把Teamcity加入其中。它使用了一个构建代理网格,它可以给您提供更多的马力,以及执行同步构建的能力。
由于您的项目数量众多,在任何特定构建服务器的同一个实例中复制您的构建三次可能很困难。这将是100多个项目,以保持在同一页上跟踪。
选项2绝对是可行的,尽管我可能考虑利用虚拟机,创建一个构建服务器映像,然后托管其中的三个实例,这将导致三个漂亮的urls而不使用不同的端口以及三个相同的设置来维护。
另一个考虑因素是:通过分组相关组件并使用nant\msbuild\ruby\powershell脚本,您可以将37+项目折叠到更少的ccnet构建中。如果您可以减少到15个版本,那么在同一个服务器实例中运行所有三个变体就变得更可行了。
https://stackoverflow.com/questions/1692359
复制相似问题