Bamboo vs GitLab

GitLab compared to other tools

Bambooサーバーは、Atlassianの開発ツールスイートの一つの、CI/CDソリューションです。セルフマネージド構成のみが利用可能な、クローズドソース向けのソリューションです。Bambooはビルド・テスト・デプロイメントの自動化を提供します。また、ソースコード管理のためにAtlassian Bitbucketやソースコードがどのように変更されたのかを理解するのに役立つFisheyeとの連携が優れています。さらに、150以上のツールと連携出来ます。一方、GitLabは、単一のアプリケーションで、Gitベースのソースコード管理・インテグレーション・コード変更のトレーサビリティーを提供します。

Bambooはビルド計画を定義するためのGUIを提供しますが、コードで定義可能なパイプラインを提供しません。また、Bambooはデプロイメント計画・プレデプロイメントビジビリティ・環境毎デプロイメント権限を提供します。GitLabは環境毎のリリーストラッキングやデプロイメントでの変更を可視化する機能を提供しますが、デプロイメントの権限はブランチの権限で制御する必要があります。

Elastic Bambooと呼ばれる機能でBambooを構成している場合は、Bambooのステップはエージェント横断的に並列実行することが可能で、それらのエージェントは必要に応じてオートスケールさせることができます。Elastic Bambooを利用するには、追加の費用を支払い、「リモートエージェント」が必要です。オートスケール機能を使用するには、AWS EC2を利用する必要があり、AWSの利用料金が別途かかります。一方、GitLabではリモートエージェント(Runner)の利用に追加の費用は発生せず、様々なクラウドやコンテナソリューションでスケールします。

FEATURES

統合されたCI/CD

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

CI/CDの詳細

アプリケーションのパフォーマンス監視

Prometheusを利用して、GitLabはデプロイしたアプリケーションのパフォーマンスメトリクスを収集し表示できます。開発者はマージが本番環境に与える影響を、GitLabから離れることなく、簡単に確認できます。

デプロイしたアプリケーションの監視の詳細

GitLabサーバーの監視

オンプレミスで運用しているGitLabサーバーをPrometheusで監視できます。これにより、自身のGitLabサーバーの稼働状況を簡単に確認できます。

GitLabサーバーの監視の詳細

サイクル分析

GitLabは計画からモニタリングまでに要した時間を計測するためのダッシュボードを提供します。GitLabには、アイディアを本番環境にデプロイするまでに必要なツールのすべてが組み込まれているので、このようなデータの提供が可能です。

サイクル分析の詳細

Review Appsで変更をプレビュー

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

Review Appsの詳細

包括的なAPI

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

APIのドキュメントを表示

GitLab CI/CDの水平オートスケーリング

GitLab CI/CDのクラウドネイティブなアーキテクチャでは、ワークロードが増加した場合に、新しいノードを追加することで簡単に水平方向にスケールできます。GitLab Runnerはパイプライン処理が開始されると、自動的に新しいコンテナを作成し、処理が完了して不要になったコンテナを削除します。これにより、CI/CDのコストを抑えることができます。.

GitLab CI/CDの水平オートスケーリングの詳細

クラウドネイティブ

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

Kubernetes 連携

統合されたウェブターミナルでコンテナをデバッグ

GitLabにビルトインされたウェブターミナルを使用すると、あらゆる環境のコンテナを簡単にデバッグできます。アプリケーションをKubernetesにデプロイしている場合は、GitLabの環境メニューから直接ターミナルのセッションを開始することができます。この強力な機能により、ブラウザから離れることなく、問題の調査を素早く行うことができます。

ウェブターミナルの詳細

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

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

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

HTML成果物をオンラインで表示

テストレポート、コード品質、コードカバレッジなどの情報を、 ダウンロードせずに、直接ブラウザで表示できます。

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

成果物をブラウズ可能

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

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

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

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

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

コード品質

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

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

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

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

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

保護変数

権限のあるユーザーだけが変数の値を取得できるように、変数を保護することができます。 「保護変数」は「保護ブランチ」で実行されているジョブからだけ取得できます。

保護変数の利用方法の詳細

デプロイメントプロジェクト

デプロイメントプロジェクトには、ビルドおよびテストされたリリースやリリースがデプロイされた環境など、デプロイしているソフトウェアプロジェクトが含まれます。

GitLabのプロジェクトの詳細

環境とデプロイメント

GitLab CIを使用すると、ビルドやテストだけではなく、インフラへのデプロイもできます。 また、CIのジョブのタグに似ている、環境を利用するとデプロイ履歴をトラッキングできます。

環境の詳細

環境ごとの権限

本番環境とは別に、開発者やQA担当者はそれぞれの環境に対してデプロイできます。これにより、ビルドエンジニアや運用チームにデプロイを依頼する必要がなくなり、彼らの負担を下げることができます。

GitLabの保護ブランチの詳細

環境履歴

環境履歴を使用するとサーバーに現在、何がデプロイされているのかを確認できます。また、環境の詳細画面では過去のすべてのデプロイ情報を表示できます。 この画面から現在のバージョンを再デプロイしたり、何か問題が発生した場合は、過去の安定バージョンにロールバックすることができます。

環境履歴の詳細

特定環境用の変数

どの環境から変数の値を取得できるのか制限することができます。

特定環境用変数の設定方法の詳細

グループレベル変数

グループレベルで変数を定義し、グループ内のすべてのプロジェクトから使用することができます。

変数の設定方法の詳細

悪いテストを隔離

テストが失敗することを常態化させてはなりません。1クリックで不安定なテストや壊れたテストを一時的に蚊帳の外に置いて、テストをGreenな状態に保つことができます。

GitLabでの脆弱性の排除の詳細