为多个项目推荐的TeamCity设置

时间:2014-01-13 10:42:04

标签: php .net unit-testing continuous-integration teamcity

我被要求开始为我们公司内部正在开展的一些(.NET和PHP)项目设置持续集成环境。由于我不是那么有经验,但这需要在设置这些环境的最佳实践方面进行一些挖掘。

到目前为止我无法解决的一个主要问题是,是否建议将一个中央TeamCity服务器用于所有不同(和独立)的项目,或者是否最好将它们进一步分开为每个项目安装TeamCity?

我对这两种方法的优点和缺点都非常感兴趣,所以如果有人能提供他们的意见,我将非常感激。

2 个答案:

答案 0 :(得分:1)

拥有多个TeamCity安装肯定没什么好处。单独安装需要单独的服务器(或至少端口)和单独的许可证(如果不使用免费版本)。

TeamCity支持项目层次结构(基本上是构建配置的容器),因此您可以在同一安装中根据需要创建任意数量的项目,每个项目都有一组构建配置。 TeamCity还支持多个构建代理,因此您可以在不同的计算机上同时运行构建,无论它们是基于Windows还是基于Linux。

除非您有一些特殊的安全要求,即TeamCity的访问控制权限无法满足,或者您正在运行数百个项目和代理,并且性能很差,我认为没有任何理由可以从多个安装开始

如果将来需要,您可以随时将项目迁移到另一个安装而不会太痛苦。

答案 1 :(得分:1)

我可以看到分离实例的以下优点:

  • 您可以使用所有或部分项目的免费版来节省许可证费用
  • 缩放更容易,例如工件的存储空间(“分而治之”)
  • 停机时间更容易管理:一个实例上的团队和项目越多,找到停机时间窗口就越困难(更新,更改,插件安装......)
  • 每个实例可以具有不同的配置,例如不同的插件或其版本
  • 隔离项目之间的数据(安全)
  • 如果您无论如何需要将项目彼此隔离(访问权限,角色,可用代理......),
  • 配置会容易得多。
  • 实例管理员权限可以提供给不同的人或团体

缺点:

  • 必须重复更新和插件安装
  • 可能有许多可能的TeamCity配置
  • 数据无法在实例之间轻松共享

尝试总结:如果项目共享很多(工件,源代码,角色,管理员,发布周期......),请将它们放在一个实例上。如果他们不这样做,那么您可以考虑将它们放在不同的实例上以获得上述优势,但您必须准备好付出代价,特别是在管理方面。