
GitLab CI/CDは、GitLab社が提供するソースコード管理プラットフォームGitLabに最初から組み込まれているCI/CD機能です。GitLab自体はウクライナ出身のドミトリー・ザポロジェッツが2011年に開発を始め、2012年に共同設立されました。2015年にはCI機能をGitLab本体へ統合し、リポジトリと同じUIでパイプラインを設定できる「シングルアプリケーション」戦略を打ち出しました。.gitlab-ci.ymlの一枚でビルドからデプロイ、レビューアプリ、コンテナレジストリまでをカバーするオールインワン構成が特徴です。
この記事の目次
- ステージ・ジョブ・ランナーの構造
- ウクライナ発のオールインワン戦略
- 代表的なパイプライン例
- GitHub Actionsとの住み分け
- まとめ
ステージ・ジョブ・ランナーの構造

GitLab CI/CDの設定は、リポジトリ直下に置く .gitlab-ci.yml 1ファイルで完結します。最上位に stages: を宣言してビルド・テスト・デプロイなどの順序を定義し、各ジョブはどのステージに属すかを stage: キーで指定します。同じステージのジョブは並列実行され、前のステージが全て成功して初めて次のステージへ進むという、わかりやすい線形パイプラインモデルです。
実際にスクリプトを走らせるのは「GitLab Runner」と呼ばれるエージェントで、Goで書かれたオープンソースのバイナリを任意のサーバー、コンテナ、Kubernetesクラスタに配置できます。GitLab.com上では共有ランナーが用意されているため、まずは無料枠で試し、自社の機密データを扱う段階で自己ホストランナーに切り替える、というステップアップが取りやすい設計です。ランナーは複数登録でき、タグでジョブと紐付けて「Linuxジョブはこのプール」「Windowsジョブはあのプール」と振り分けられます。
ウクライナ発のオールインワン戦略

GitLabはドミトリー・ザポロジェッツ(当時ウクライナ・ハリコフ)が、自社で使うGitホスティングをRubyで書いたところから始まりました。2012年に共同創業者のシド・シブランディと法人化、Y Combinator 2015冬期に採択されてシリコンバレー資本を呼び込みます。完全リモート企業として有名で、数十カ国の社員がオンラインでハンドブックを共有する文化が確立しています。
2015年にはCI機能をGitLab本体へ統合し、「リポジトリ・CI・パッケージ・セキュリティ・運用監視を1つのアプリで」というシングルアプリケーション戦略を打ち出しました。2021年10月にはNASDAQに上場(ティッカーGTLB)。GitHubがMicrosoft資本でAzure統合に進んだのに対し、GitLabはセルフホスト可能なOSSコミュニティエディションを残し続け、オンプレ志向の金融・政府機関でのシェアを伸ばしてきました。
代表的なパイプライン例

GitLab CI/CDで定番なのが、マージリクエスト(MR)が作られると自動でビルド・テストを走らせ、結果をMR画面に表示する流れです。特徴的なのは「レビューアプリ」機能で、ブランチごとにKubernetes上へ一時環境を立ち上げ、URLをMRに紐付けて「このボタンを押すと実物が見られる」体験を提供できます。デザイナーやプロダクトマネージャーが手元で動かさずレビューできるため、フロントエンド系で重宝されます。
GitLabはコンテナレジストリ・パッケージレジストリ・ヘルムチャートリポジトリも内蔵しているため、ビルドした成果物を別サービスに送る必要がなく、docker push 先がそのままGitLab内に存在します。さらに「Auto DevOps」というテンプレートを有効化すると、ビルド→テスト→Dockerイメージ作成→Kubernetesデプロイまでの一連のステージが自動生成されるため、ymlを書かずに最低限のCI/CDを始められます。SAST・DAST・依存関係スキャン・コンテナスキャンといったセキュリティ機能が標準搭載されている点も差別化要因です。
GitHub Actionsとの住み分け

GitHub ActionsとGitLab CI/CDはコンセプトが似ているため、選定では「リポジトリの置き場所」と「セルフホスト要件」が決め手になります。GitHubでオープンソースを公開していて公開リポ無料の恩恵を受けたいならGitHub Actions、社内ネットワーク内に閉じたCI/CD基盤を作りたい、あるいはセキュリティ機能を標準で揃えたいならGitLab CI/CD、というのが一般的な棲み分けです。
GitLabはCommunity Edition(無料・MITライセンス)とEnterprise Edition(有償)の二本立てで、オンプレ展開時の運用コストや責任範囲が読みやすい点が評価されています。また include: ディレクティブでyamlを階層化し、組織全体の共通パイプラインをテンプレ化する仕組みが整っているため、数百リポジトリを抱える大企業のプラットフォームエンジニアリングチームが選ぶ事例も多くあります。GitLab Premium/Ultimateでは脆弱性管理ダッシュボードやコンプライアンス機能が解放され、規制業種で人気です。
まとめ
GitLab CI/CDは、リポジトリ・CI・レジストリ・セキュリティ・運用監視を一画面で扱える「シングルアプリケーション」戦略の核を担う機能です。セルフホスト可能で、オンプレ志向の組織に強く、GitHub Actionsと並ぶ主要CI/CDサービスの一角として、特に大規模・規制業種で根強い支持を集めています。
※本記事はIT用語辞典の手書きドラフトです。公開前に最新情報・出典を確認のうえ加筆修正してください。

コメント