2014-01-13 48 views
1

我被要求開始爲我們公司內部正在開展的一些(.NET和PHP)項目設置持續集成環境。由於我還沒有那麼有經驗,這就需要在設置這些環境的最佳實踐中進行深入研究。針對多個項目的推薦TeamCity設置

到目前爲止,我還沒有能夠解決的一個主要問題是,是否推薦對所有不同的(獨立的)項目使用一箇中心TeamCity服務器,還是最好將它們分開通過爲每個單獨的項目安裝TeamCity?

我對這兩種方法的優缺點都很感興趣,所以如果有人能提供他們的意見,我會非常感激。

+0

未使用TC,但我看不到有多個安裝的優勢 - 聽起來像會導致更多的維護工作。首先用最簡單的方法,然後從那裏調整,如果你的工作流程變成需要它。 – halfer

回答

1

擁有多個TeamCity安裝絕對沒有什麼優勢。單獨安裝需要單獨的服務器(或至少端口)和單獨的許可證(如果不使用免費版)。

TeamCity支持一個項目層次結構(基本上是一個用於構建配置的容器),因此您可以在同一個安裝中創建儘可能多的項目,每個項目都有一組構建配置。 TeamCity還支持多個構建代理,因此您可以在不同的計算機上同時運行構建,無論它們是基於Windows還是Linux。

除非您有一些TeamCity的訪問控制權限無法滿足的特殊安全要求,或者您正在運行數百個項目和代理程序,並且性能很差,否則我認爲沒有任何理由以多個開始安裝。

如果將來需要出現,您可以隨時將項目遷移到另一個安裝而不會太痛苦。

1

我可以看到如下的優勢,以實例分離:

  • 可以使用免費版本的項目
  • 比例是比較容易,如全部或部分保存許可證成本工件的存儲空間(「分而治之」)
  • 停機時間更易於管理:一個實例中的團隊和項目越多,找到停機時間窗口越困難(更新,更改,插件安裝...)
  • 每個實例可以有不同的配置,例如不同的插件或其版本
  • 隔離項目(安全之間的數據)
  • 配置,如果你反正需要隔離的項目容易得多彼此(訪問權限,角色,可用代理...)
  • 例如管理權限可賦予不同的人或羣體

不利的一面:

  • 必須重複
  • 許多潛在的可能的TeamCity配置
  • 更新和插件安裝數據不能輕易在實例間共享

試圖總結:如果項目共享很多(工件,源代碼,角色,管理員,發佈週期...),將它們放在一個實例上。如果他們不這樣做,那麼你可以考慮將它們放在不同的實例上以獲得上述優勢,但是你必須準備好支付價格,特別是在管理方面。