2014-01-13 42 views
1

我被要求开始为我们公司内部正在开展的一些(.NET和PHP)项目设置持续集成环境。由于我还没有那么有经验,这就需要在设置这些环境的最佳实践中进行深入研究。针对多个项目的推荐TeamCity设置

到目前为止,我还没有能够解决的一个主要问题是,是否推荐对所有不同的(独立的)项目使用一个中心TeamCity服务器,还是最好将它们分开通过为每个单独的项目安装TeamCity?

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

+0

未使用TC,但我看不到有多个安装的优势 - 听起来像会导致更多的维护工作。首先用最简单的方法,然后从那里调整,如果你的工作流程变成需要它。 – halfer

回答

1

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

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

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

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

1

我可以看到如下的优势,以实例分离:

  • 可以使用免费版本的项目
  • 比例是比较容易,如全部或部分保存许可证成本工件的存储空间(“分而治之”)
  • 停机时间更易于管理:一个实例中的团队和项目越多,找到停机时间窗口越困难(更新,更改,插件安装...)
  • 每个实例可以有不同的配置,例如不同的插件或其版本
  • 隔离项目(安全之间的数据)
  • 配置,如果你反正需要隔离的项目容易得多彼此(访问权限,角色,可用代理...)
  • 例如管理权限可赋予不同的人或群体

不利的一面:

  • 必须重复
  • 许多潜在的可能的TeamCity配置
  • 更新和插件安装数据不能轻易在实例间共享

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