Jenkins vs TeamCity: セルフホスト CI 比較
どちらもセルフホストの CI サーバーです。Jenkins はオープンソースで無限に拡張可能です。TeamCity は JetBrains が洗練させたライセンスベースの製品です。
Jenkins と TeamCity はどちらも controller と agent を使い自前のインフラ上で動きます。Jenkins はプラグインとソフトウェアの価格で勝り、TeamCity は UX、build chain、すぐ使える機能で勝ります。以下が比較です。
| Jenkins | TeamCity | |
|---|---|---|
| 設定 | Jenkinsfile (Groovy) または UI | UI + Kotlin DSL |
| ホスティングモデル | セルフホストの controller + agent | セルフホストのサーバー + agent |
| 料金 | 無料ソフトウェア + 自前のインフラ | 無料枠 + 有償ライセンス |
| エコシステム | 1,800以上のプラグイン | プラグイン + JetBrains ツール群 |
| すぐ使える機能 | プラグインで組み立て | 豊富な組み込み機能 (build chain、再実行) |
| メンテナンス | 高 | 高 (ただしより導かれる) |
料金とメンテナンス
Jenkins のソフトウェアは無料です。TeamCity は無料枠があり、それを超えると agent/サーバーの有償ライセンスが必要です。どちらもサーバーと agent を運用し、その継続的なコストを負担する必要があります。
設定とエコシステム
Jenkins はプラグインで最も拡張性が高い一方で脆くなりがちです。TeamCity はより洗練された UX、賢い再実行、そして組み立ての手間が少ない build chain を提供します。JetBrains を使うチームは TeamCity を好む傾向があります。
agent 運用をスキップする
どちらも agent の運用を強いられます。GitHub 上のチームは、GitHub Actions とマネージドランナー (例: Latchkey) でこれを完全に回避できます。安価なコンピューティング (GitHub-hosted より約70%安い)、warm pool、自己修復を、保守するサーバーなしで得られます。
結論
最大限の拡張性とライセンスコストゼロが欲しいなら Jenkins を、洗練され機能豊富な JetBrains 体験が欲しいなら TeamCity を選びましょう。いずれにせよ、マネージドランナーは GitHub チームにとって低運用の代替手段です。