跨网络拆分构建?
是否有已知的解决方案可以跨网络计算机拆分构建过程?
用例:
我们是一家普通的软件开发公司。我们拥有大约 50 个开发工作站(四核 2.66Ghz、4 GB 内存、200 GB raid)。不用说,在任何一个时刻,并不是每台机器都负载到最大。
任何时刻都有 5 到 15 个项目同时运行。显然,所有这些都是在服务器上持续构建的,而不是部署到适当的环境中。单个项目构建需要 3 到 15 分钟。
问题:每当我们连续构建 5 个项目时,最后一个项目将在大约 25 - 50 分钟后准备就绪。并行构建并不能解决问题(构建只是游戏的一部分,而不是您需要部署、运行测试等)
是的,正确的解决方案是添加另一个构建服务器,但是“这涉及购买新的昂贵硬件,并且我们已经花了很多钱了!”是的,对(该死的他们)!
反正。 如何在开发人员工作站之间拆分构建?假设每当我们需要构建项目“A”时,我们都会检查 5 个工作站并开始在所有未超载的工作站上进行构建。如果开发人员确实需要其机器的所有功能,并且至少有 1 台机器仍在构建,则可以取消构建。构建完成后,可以将部署执行到适当的环境(托管在某些服务器上,而不是工作站上:))。公司越大,这对我来说就越有意义。
有人尝试过这样的事情吗?有什么好的做法吗?有什么好用的软件吗?
(90%的项目是.net C#,平台 - Windows)
Is there a known solution for splitting build process cross the network machines?
Use case:
We are an average software development company. We own around 50 development workstations (Quad Core 2.66Ghz, 4 GB ram, 200 GB raid). No need to tell that at any single moment not every machine is loaded to the max.
There are 5 to 15 projects running simultaneously at any single moment. Obviously all of them are continuously build on server, than deployed to proper environment. Single project build is taking from 3 to 15 minutes.
The problem: Whenever we build 5 projects in a row the last project is going to be ready after around 25 - 50 minutes. Building in parallel does not solve the problem (build is only a part of the game, than you need to deploy, run tests etc.)
YES the correct solution is to add another build server, but "That involves buying new Expensive hardware, and we already spent a lot!". Yea, right(damn them)!
Anyway. What about splitting build among developers workstation? Lets say whenever we need to build project "A" we check 5 workstations and start build on all that are not overloaded. The build can be canceled by a developer if he really needs all the power of his machine as long as there is at least 1 machine that is still building. After build is finished deployment can be performed to a proper environment (hosted on some server, not on workstation :) ). The bigger the company the more this makes sense to me.
Anyone tried something like this? Are there any good practices? Any helpful software?
(90% of the projects are .net C#, platform - Windows)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您还可以在 http://www.viewtier.com 查看我们的 Parabuild -它允许指定一组机器作为构建场。几乎可以在任何平台上运行。看来这就是您要找的。
You can also check our Parabuild at http://www.viewtier.com - it allows to designate a set of machines as a build farm. Works practically on any platform. It looks like that's what you are looking for.