【发布时间】:2026-01-11 07:40:02
【问题描述】:
我应该如何处理 SOA 平台的持续集成?
让我解释一下设置。我们有 30 个 Web 服务解决方案和 5 个客户端解决方案,这些 Web 服务相互依赖(参考合同 dll),并且还共享一些常用的实用程序 dll。
到目前为止,我们对 CruiseControl.net(37 个 CC 项目、5 个客户端、30 个 WS、1 个实用程序项目、1 个集成测试项目)感到满意,所有这些都相互独立地构建和测试。在每次部署之前,我们会以明确定义的顺序触发所有项目的构建,这使我们能够准备好部署工件以部署到大约 7 个不同的服务器。
到目前为止,我们还没有任何版本的服务,每次部署都会部署完整的 shebang。
我们最近投入生产,现在我们需要扩展代码,以便任何进一步的开发都不会破坏我们对现在生产中的内容进行修补的能力。
此外,我们还想分头工作,产生单独的开发工作,创建新客户端或向现有客户端/服务添加主要功能,我认为我们需要以下内容
这样我们总是可以毫不费力地修复 prod,我们将继续每月根据用户反馈改进 prod,并且我们可以在 SOA 堆栈上推出新的主要工作,而不会干扰前两个(直到我们合并代码是:))
问题是:我们应该为 CI 使用哪些工具? 我看到的选项:
- 在我们的 ccnet 实例中重复项目
- 复制 ccnet:xcopy CCnet 到构建机器上的 X 个位置,在不同端口上设置新服务,调整 svn 源,构建位置和部署工件位置
- 使用更适合这些问题的不同 CI 服务器
1:我不喜欢(笨拙,什么时候是绿色的,所有团队使用同一个池)
2:我可以看到我们这样做,但感觉有点笨拙
3:我们应该使用哪个服务器?到目前为止,我已经听说过 Hudson 和 Cruise 这两个名字,这些都适用吗?
4:我的想法完全错了吗?你们其他人如何在旨在支持许多团队开发工作的 SOA 堆栈上执行 CI?
【问题讨论】:
标签: .net continuous-integration soa