SVN、TeamCity 虚拟化/硬件要求
我正在尝试将一个新环境的要求放在一起,该环境由运行 Sql Server 的 TeamCity、几个构建代理(目前)和一个 SVN 存储库组成。
目前有 6 名开发人员,将有 5 个活跃的解决方案参与 CI 流程,随着时间的推移,这些解决方案显然会增加。 目前,所有解决方案的构建时间都不超过 10 分钟,因此它们的复杂性和可扩展性并不高。 地点
构建项目本身需要一个 sql server 实例,以便可以运行自动化测试 - 我认为它们应该与 TeamCity sql 实例分开。
任何人都可以建议适合运行这些的硬件配置。 磁盘 I/O 是否比实际 CPU 功率更重要?
我可以在单个多 cpu、raid 和虚拟化上运行所有这些吗?
我们应该运行 Windows 2008 和 Hyper-V 吗?
我总是让其他人处理服务器需求和构建,但现在我必须亲自动手。
任何建议都非常欢迎
I am trying to put a requirement together for a new environment to consist of TeamCity running of Sql Server, a couple of build agents (for now) and an SVN repository.
There are 6 developers and there will be 5 active solutions partaking in the CI process for now which will obviously grow over time. None of the solutions take >10 minutes to build currently so they are not huge in terms of complexity & loc.
The build projects will themselves need an instance of sql server so the automated tests can run - I assume they should be kept separate from the TeamCity sql instance.
Can anyone suggest a hardware config suitable to run these. Is disk i/o going to be more important than actual CPU power.
Can I run all these on a single multi cpu, raid and virtualisation?
Should we be running with windows 2008 and hyper-v?
I have always let others deal with server requirements and build but now I have to get my feet dirty.
Any advice most welcome
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
数据点:
我们的 TeamCity 环境位于(如果我没记错的话)三台 8 核服务器,每台服务器都有 32Gb RAM,运行 Windows 2008 和 HyperV。 我们的 SVN 存储库位于不同的服务器上(由于历史原因)。 我认为现在一切都在 SAN 上,为了可靠性(如果其中一台主机出现故障,我们可以轻松地将虚拟机移动到另一台主机)。
我们有 10 个构建代理,全部在虚拟机中运行。 其中 4 个用于直接构建; 其中 6 个用于构建和运行系统测试(这涉及在测试中协调其他虚拟机)。 我们选择这样做是因为我们的一些系统测试需要 11 个小时才能运行,而且我们不想阻塞构建队列。 我们分阶段发布——理想情况下,项目在通过自动化单元和系统测试之前不会发布到测试部门。
我们有大约 12 名开发人员,同时活跃于 3 或 4 个项目。 我们还使用 TeamCity 构建修补程序和维护版本。
在您的情况下,我会选择在您有预算的最大机器上安装 Windows 2008 和 HyperV。 磁盘 I/O 比 CPU 能力更重要,但通过更多内核,您可以更轻松地扩展到更多虚拟机。 分配给每个虚拟机的大量 RAM 可以避免交换,并有助于缓存,这意味着更少的磁盘 I/O。 在某个时候,您可能会考虑拥有两个或更多盒子,用于故障转移,因为有时购买两个具有 32Gb RAM 的盒子比购买单个盒子的 64Gb 选项更便宜。
使用虚拟机的优点之一是您可以对它们进行快照并定期恢复它们。 每个项目可能都应该有自己的 SQL Server 实例。
A data point:
Our TeamCity environment is on (if I recall correctly) a trio of 8-core servers each with 32Gb of RAM, running Windows 2008 and HyperV. Our SVN repository is on a different server (for historical reasons). I think that everything is on a SAN now, for reliability (if one of the hosts goes down, we can easily move the VMs to another host).
We have 10 build agents, all running in VMs. 4 of them are used for straight builds; 6 of them are used for builds and to run system tests (which involves coordinating other VMs in the tests). We opted for this because some of our system tests take 11 hours to run, and we don't want to hold up the build queue. We have phased releases -- a project ideally doesn't get released to the test department until it passes automated unit and system testing.
We have about a dozen developers actively working on 3 or 4 projects at a time. We also use TeamCity for building hotfix and maintenance releases.
In your scenario, I'd opt for Windows 2008 and HyperV, on the biggest box that you have the budget for. Disk I/O is more important than CPU power, but with more cores you can more easily scale to more VMs. Plenty of RAM assigned to each VM avoids swapping, and aids caching, meaning less Disk I/O. At a certain point, you might consider having two or more boxes, for fail-over, and because it's sometimes cheaper to buy two boxes with 32Gb of RAM than to buy the 64Gb option for a single box.
One advantage of using VMs is that you can snapshot them and revert them periodically. Each project should probably have its own instance of SQL Server.
您应该查看我们文档中的“操作方法”部分:http://confluence.jetbrains .net/display/TCD65/How+To... 您将在其中找到“估计 TeamCity 的硬件要求”主题。 也许会有帮助。
You should take a look at the How to section in our documentation: http://confluence.jetbrains.net/display/TCD65/How+To... There you will find "Estimate hardware requirements for TeamCity" topic. Probably it will help.
上一篇文章中的链接已损坏
以下是正确的。
http://confluence.jetbrains.com/display /TCD65/How+To...#HowTo...-硬件要求
The link in previous post is broken
Following is the correct one.
http://confluence.jetbrains.com/display/TCD65/How+To...#HowTo...-hardwarerequirements