JetBrains TeamCity vs GitLab

GitLab compared to other DevOps tools

このページのコンテンツ

要約

Team City Java-based build management and continuous integration server from JetBrains. They are widely know for their extended family of integrated development environments (IDEs) for SQL and the programming languages Java, Kotlin, Ruby, Python, PHP, Objective-C, C++, C#, Go and JavaScript. Team City is known for its ease of configuration, reliability and GitHub configuration.

In contrast, GitLab already provides more than what TeamCity does with CI only, by providing a fully integrated single application for the entire DevOps lifecycle. More than TeamCity, GitLab also provides planning, SCM, packaging, release, configuration, and monitoring (in addition to the CI TeamCity is focused on).

リソース

FEATURES

統合されたCI/CD

GitLabにはCI/CD機能が統合されているので、CI/CDのために他のツールをインストールする必要はありません。GitLabのCI/CDを使用して、ウェブサイト(GitLab Pages)やウェブアプリケーションをビルド・テスト・デプロイできます。ジョブの結果はマージリクエストに表示され、簡単にアクセスできます。

CI/CDの詳細

統合されたコンテナレジストリ

GitLab Container Registryは、Dockerイメージのためのセキュアでプライベートなレジストリです。 GitLab CIからイメージを簡単にアップロードしたりダウンロードしたりすることができます。 Gitリポジトリ管理と完全にインテグレーションされています。 (Codefresh社は2020年5月1日をもってプライベートなDockerレジストリのサポートを終了する予定です。)

コンテナレジストリのドキュメント

レビューアプリで変更をプレビュー

GitLab CI/CDを利用して、ブランチごとに新しい環境を作成することができ、開発プロセスを高速化できます。自分のブランチをプレビューできるマージリクエスト用の動的な環境を起動できます。レビューアプリは静的・動的なURLの両方をサポートします。

レビューアプリの詳細

包括的なAPI

GitLabは、インテグレーションの開発を可能にするために、多くの機能をAPIとして提供しています。

APIのドキュメントを表示

コンテナや Docker を用いたビルド

GitLabは、GitLab独自のコンテナレジストリとDocker CI Runnerを搭載しているため、それだけでCI/CDでのコンテナワークフローを完結できます。つまり追加のプラグインをインストール、設定、管理する必要はありません。

クラウドネイティブ

GitLabとGitLab CI/CDはクラウドネイティブな設計で開発されています。GitLab は Kubernetes 上に簡単にデプロイできます。また、Gitlab を使用してアプリケーションをそのまま Kubernetes に対しデプロイできます。

Kubernetes 連携

柔軟なパイプライングラフ

複数のジョブを直列、または並列に実行するパイプラインの構造は非常に複雑です。 GitLabでは単一のパイプライングラフですべてのジョブのステータスを表示できるので、 何が起こっているのかを簡単に確認できます。

パイプライングラフの詳細

成果物をブラウズ可能

GitLab CIを使用すると、外部サービスを必要としないで、GitLab内にジョブの成果物をアップロードできます。 これによって、アップロードした成果物をGitLabのウェブインターフェースで表示できます。

プロジェクト内のジョブアーティファクトの利用の詳細

パイプラインをスケジュール実行

cronのように、パイプラインをスケジュール実行できます。

GitLabでパイプラインがスケジュール実行される仕組の詳細

コード品質MRウィジェット

マージリクエストのウィジェットエリアに表示されるコード品質レポートにより、変更がコードの品質に与える影響を事前に知ることができます。

コード品質の詳細

コード品質レポート

コード品質レポートは、パイプラインページで利用可能で、組織の推奨スタイルや基準を満たしていないコードの領域を表示します。

コード品質レポートの詳細

複数プロジェクトのパイプライングラフ

マイクロサービスアーキテクチャでは、パイプラインの設計はより複雑なものになります。 複数プロジェクトのパイプライングラフを使用すると、アップストリームとダウンストリームのパイプラインが、プロジェクトのトリガーを通して、どのように協調しているのかを表示することができます。

複数プロジェクトのパイプライングラフの詳細

構築済みのKubernetesクラスタと容易に連携

構築済みのKubernetesクラスターをプロジェクトに追加できます。CI/CDパイプラインから、 追加したKubernetesクラスターへ簡単にアクセスでき、Review Appsをホストしたり、アプリケーションをデプロイしたりすることができます。

この課題の詳細を確認

最小限のCI/CDの設定

GitLab CI/CDは、Jenkinsのようなツールで同様のパイプラインを実行する場合と比べて、より少ない設定で済みます。

GitLab CI/CDの詳細

Kubernetes podログの表示

生成されたログファイルにより、サーバ、アプリケーション、ネットワーク、セキュリティデバイスを監視し、エラーや問題を特定して分析します。GitLab では、接続された Kubernetes クラスタ内で実行中の Pod のログを簡単に見ることができる。GitLab でログを直接表示することで、開発者はコンソールツールを管理したり、別のインタフェイスにジャンプする必要がなくなります。

Kubernetes podログの表示の詳細