MENU

TeamCity — JetBrainsが磨いてきたエンタープライズ向けCIサーバー

TeamCity アイキャッチ
TeamCity

TeamCityはチェコ・プラハとロシア・サンクトペテルブルクに拠点を持つJetBrains社が2006年から開発・販売しているエンタープライズ向けの商用CIサーバーです。IntelliJ IDEAやKotlinで知られる同社の開発生産性ツール群の一翼を担い、Microsoft .NET・Java・Kotlin・Scala・C++など多言語をきめ細かくサポートしてきました。WebUIの完成度の高さ、ビルドチェーン機能、Kotlin DSLによるパイプライン定義など、オンプレ志向のエンタープライズに長年支持されてきた「商用CIの代表選手」です。

目次

この記事の目次

  1. プロジェクト・ビルド構成・エージェント
  2. JetBrains×.NETエコの深い結びつき
  3. エンタープライズが評価する機能群
  4. Jenkins・GitHub Actionsとの選び分け
  5. まとめ

プロジェクト・ビルド構成・エージェント

プロジェクト・ビルド構成・エージェント

TeamCityの構造は3階層が中心です。最上位の「Project」は階層化可能で、組織のディレクトリ構造と同じく親プロジェクトの設定(VCS・パラメータ・権限)を子プロジェクトに継承させられます。その中に複数の「Build Configuration」を持ち、これがいわゆるCIジョブの単位で、トリガー・VCSルート・ビルドステップ・依存関係・成果物定義を持ちます。実行は「Build Agent」と呼ばれる別プロセス(別マシン)で行われ、OSやインストール済みツールに応じて自動的に適切なAgentが選択される仕組みです。

ビルドチェーン機能は強力で、「Aが終わったらB、C、Dを並列実行、すべて完了したらEを実行」のような複雑な依存をGUIで描けます。TeamCity独自の「Snapshot Dependencies」では、上流ビルドのVCSリビジョンを下流ビルドにそのまま伝播させ、同一コミットに対する一貫したパイプラインを保証できます。2019年からはKotlin DSLによるパイプライン定義もサポートされ、WebUIで作った設定をKotlinスクリプトに変換してリポジトリで管理する「Configuration as Code」も実現できます。

JetBrains×.NETエコの深い結びつき

JetBrains×.NETエコの深い結びつき

TeamCityの初版は2006年10月にリリースされ、当時としては珍しくWebベースで管理画面を持ち、IntelliJ IDEAなどJetBrains IDEとの統合(IDE内でビルド結果を即座に確認)が売りでした。Java/Kotlin開発との結びつきは創業当初からの強みで、Mavenプロジェクトの依存解析や、Kotlinビルドツール対応も他CIに先んじて実装されました。

同時にMicrosoft .NETエコシステムへの傾倒も強く、NUnit/MSTest/xUnit対応や、NuGetパッケージ管理、TFS/Azure DevOps連携などが充実しています。JetBrains自体がReSharper・Rider・dotCoverといった.NET開発者ツールで主要プレイヤーであるため、Visual Studio中心の組織でTeamCityを採用するパターンが多くなっています。2022年にはSaaS版「TeamCity Cloud」が登場し、長らくセルフホスト一本だった同製品もマネージド時代に対応。2024年には新世代版「TeamCity Pipelines」のEAPも公開されており、現代的なyamlパイプラインへの刷新が進められています。

エンタープライズが評価する機能群

エンタープライズが評価する機能群

TeamCityがエンタープライズに選ばれる理由の1つは、テスト結果の詳細レポートと履歴分析です。「Flaky Test Detection」機能は、たまに失敗する不安定なテストを自動検出して開発者に警告し、「Test Investigation」機能では問題のあるテストを担当者にアサインして追跡できます。ビルド時間・キュー時間・成功率の時系列グラフも完備しており、CIインフラの健全性評価がやりやすい点が好まれています。

「Build Chains」と「Snapshot Dependencies」の組み合わせは、複数モジュールから成る大規模リポジトリ(モノレポ)の運用に強力です。例えばライブラリAを変更したら、それに依存するアプリB・C・Dを同一コミットでビルド・テストし、合格したものだけリリースする、というワークフローを保証できます。権限管理も100人規模の組織を想定して設計されており、LDAP/SAML SSO連携、プロジェクトごとの細かなロール定義、監査ログ機能などが揃っています。Kotlin DSLでConfiguration as Codeを書けば、設定もリポジトリに置けるため、GitOps文化に近い形で運用することも可能です。

Jenkins・GitHub Actionsとの選び分け

Jenkins・GitHub Actionsとの選び分け

TeamCityは商用CIサーバーであり、年額のライセンス料がかかります(無料の「Professional」はビルド構成100件+Agent 3台までの制限あり)。Jenkinsの「無料だが運用は自分次第」との対比で言えば、「JetBrains品質のWebUI・公式サポート・テスト分析機能」に金額を払う価値を見出すエンタープライズが選ぶ製品です。

GitHub Actionsへの移行は新規プロジェクトで進む傾向にありますが、「巨大モノレポでBuild Chainsを使い倒している」「.NETビルドで何百もの構成を運用している」「監査ログとSSO要件が厳しい」といったエンタープライズ要件では、TeamCityが今も第一選択肢として残っています。Azure DevOps(Microsoft)との比較では、JetBrains側のIDE統合と多言語対応の柔軟さが勝る一方、Microsoftエコ完全統合では負ける、という構図です。TeamCity Cloud(SaaS版)の登場や、TeamCity Pipelines(次世代版)の開発が進んでおり、「商用CIサーバーの代表」として今後も独自のポジションを維持していくと見られています。

まとめ

TeamCityはJetBrains社が20年近く磨き続けてきた商用CIサーバーで、Build Chainsやテスト分析機能、Kotlin DSL対応など独自の強みを持ちます。GitHub Actions全盛の現代でも、エンタープライズの厳しい要件と.NET/Java開発の深い統合を求める現場では、今も第一線のCI製品として選ばれ続けています。

※本記事はIT用語辞典の手書きドラフトです。公開前に最新情報・出典を確認のうえ加筆修正してください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次