是否有一个已知的解决scheme来跨越networking机器拆分构build过程?
用例:
我们是一家普通的软件开发公司。 我们拥有大约50个开发工作站(四核2.66Ghz,4GB RAM,200GB RAID)。 没有必要告诉,在任何时候,并不是每台机器都被加载到最大。
有5到15个项目同时运行。 显然,他们都在服务器上不断构build,而不是部署到适当的环境。 单个项目构build需要3到15分钟。
问题是 :当我们连续build立5个项目时,最后一个项目将在大约25-50分钟后准备就绪。 并行构build并不能解决问题(构build只是游戏的一部分,比你需要部署,运行testing等)
是的,正确的解决scheme是添加另一个构build服务器,但“这涉及到购买新的昂贵的硬件,我们已经花了很多!” 对,对(该死的)!
无论如何。 在开发人员工作站之间进行拆分呢? 让我们说,每当我们需要build立项目“A”时,我们检查5个工作站,并开始build立在所有不超载。 只要至less有一台机器还在build造中,如果开发商确实需要机器的所有function,则构build可以被开发人员取消。 构build完成后,部署可以执行到适当的环境(托pipe在某个服务器上,而不是在工作站上:))。 公司越大,这对我来说就越有意义。
任何人都试过这样的事情? 有什么好的做法吗? 任何有用的软件?
(90%的项目是.net C# ,platform – Windows )
通常切换到分布式构build环境意味着更改构build链,因为您不希望在开发和生产中使用不同的编译器。
你提到的游戏让我认为你在VS和使用Windows,但我会提供一些一般性的build议
我知道还有很多其他的解决scheme(在http://wiki.gridengine.info/wiki/index.php/Distributed-Compilation上列出了一些),但是不知道更多关于你的环境和要求,很难给你一个更好的build议比看看各种系统,看看他们有多适合你当前的环境,并select一个。
顺便说一下,当你在50位开发人员的时候,你的公司可能已经达到了创build分布式构build环境的大小,只需提高开发人员的工作效率即可。 pipe理层通常不喜欢在等待构build服务器时松开开发人员…;)