LESSON 20分

CI/CDツール比較

ストーリー

「CI/CDの概念は理解できたか?次は実際に使うツールを選定しよう」

木村先輩がディスプレイに主要なCI/CDツールの一覧を表示した。

「今の時代、CI/CDツールは山ほどある。Jenkins、GitHub Actions、 GitLab CI、CircleCI......どれを選ぶかはプロジェクトの状況次第だ」

「どれが一番いいんですか?」

「銀の弾丸はない。だが、うちのチームはGitHubをメインで使っているから、 GitHub Actionsが最もスムーズに導入できる。 まずは各ツールの特徴を把握して、なぜGitHub Actionsを選ぶのか 理屈を理解しておこう」


主要なCI/CDツール

ツール一覧

ツールタイプ提供形態初期リリース
JenkinsセルフホストOSS2011年
GitHub ActionsクラウドSaaS2019年
GitLab CI/CDクラウド/セルフホストSaaS/OSS2015年
CircleCIクラウドSaaS2011年
AWS CodePipelineクラウドSaaS2015年
Azure DevOpsクラウドSaaS2018年

各ツールの詳細

Jenkins

業界で最も歴史があるCI/CDツールです。

Jenkins アーキテクチャ

┌──────────────┐
│  Jenkins      │
│  Controller   │
│  (マスター)    │
└──────┬───────┘
       │
  ┌────┴────┐
  ▼         ▼
┌─────┐  ┌─────┐
│Agent │  │Agent │
│  1   │  │  2   │
└─────┘  └─────┘
長所短所
高いカスタマイズ性セットアップが複雑
豊富なプラグイン(1800+)運用・保守の負担が大きい
セルフホストで完全制御UIが古い
大規模組織での実績豊富セキュリティパッチの適用が必要

GitHub Actions

GitHubに統合されたCI/CDサービスです。

GitHub Actions アーキテクチャ

┌──────────────────────────┐
│  GitHub リポジトリ          │
│                            │
│  .github/workflows/        │
│    ├── ci.yml              │
│    ├── cd.yml              │
│    └── release.yml         │
│                            │
│  push/PR → ワークフロー発火  │
└──────────┬───────────────┘
           │
    ┌──────┴──────┐
    ▼              ▼
┌───────┐    ┌───────┐
│Runner  │    │Runner  │
│(GitHub │    │(Self   │
│Hosted) │    │Hosted) │
└───────┘    └───────┘
長所短所
GitHubとのシームレスな統合GitHubに依存
Marketplaceで豊富なアクション複雑なワークフローは管理しにくい
YAMLベースで学習コストが低いセルフホストRunnerは自己管理
パブリックリポジトリは無料実行時間に制限あり

GitLab CI/CD

GitLabに統合されたCI/CDサービスです。

長所短所
GitLabとの統合(オールインワン)GitLabエコシステム前提
Auto DevOpsで自動設定学習コストがやや高い
セルフホスト版ありRunnerの管理が必要
セキュリティスキャン内蔵高機能な分複雑

CircleCI

開発者体験に重点を置いたCI/CDサービスです。

長所短所
高速な実行環境有料プランが必要になりやすい
Docker最適化GitHub/GitLab連携が必要
並列実行が得意独自の設定形式
SSHデバッグが可能ベンダーロックイン

ツール比較マトリクス

観点JenkinsGitHub ActionsGitLab CICircleCI
セットアップ容易性
学習コスト
GitHub連携プラグインネイティブ連携可連携可
拡張性非常に高い高い高い中程度
運用負荷高い低い中程度低い
コスト(小規模)無料(サーバー代別)無料枠あり無料枠あり無料枠あり
エンタープライズ強い強い強い中程度

なぜGitHub Actionsを選ぶのか

今月のカリキュラムでGitHub Actionsを採用する理由を整理します。

選定理由

┌─────────────────────────────────────┐
│  チームの状況                          │
│                                       │
│  - ソースコード管理: GitHub            │
│  - チーム規模: 小〜中規模              │
│  - CI/CD経験: 初めて導入               │
│  - 予算: 限定的                        │
│                                       │
│         ↓ 最適なツールは?              │
│                                       │
│  ┌───────────────────────────┐       │
│  │  GitHub Actions             │       │
│  │                             │       │
│  │  理由:                      │       │
│  │  1. GitHubとネイティブ統合    │       │
│  │  2. 設定がYAMLで簡単         │       │
│  │  3. 無料枠で始められる       │       │
│  │  4. Marketplaceが充実        │       │
│  │  5. 追加インフラ不要          │       │
│  └───────────────────────────┘       │
└─────────────────────────────────────┘

GitHub Actions の無料枠

プラン月間利用枠ストレージ
Free2,000分/月500MB
Team3,000分/月2GB
Enterprise50,000分/月50GB

※パブリックリポジトリは無制限で無料


ツール選定のフレームワーク

実際のプロジェクトでCI/CDツールを選定する際のチェックポイントです。

チェックポイント質問
ソースコード管理どのGitホスティングを使っている?
チームスキルチームのCI/CD経験レベルは?
予算ツール費用にどれだけ投資できる?
カスタマイズ性特殊なビルド要件はある?
コンプライアンスセルフホストが必須か?
スケーラビリティ将来のチーム拡大を想定するか?

まとめ

ポイント内容
Jenkins高いカスタマイズ性、運用負荷も高い
GitHub ActionsGitHub統合、YAMLで簡単、無料枠あり
GitLab CIオールインワン、Auto DevOps
選定基準チームの状況・スキル・予算・要件に応じて選択

チェックリスト

  • 4つの主要CI/CDツールの特徴を説明できる
  • GitHub Actionsの長所・短所を把握した
  • ツール選定時のチェックポイントを理解した
  • 自チームに最適なツールを判断する基準を持てた

次のステップへ

次のセクションでは、CI/CDを成功させるためのベストプラクティスを学びます。 ツールだけでなく、チームの文化や運用ルールも重要な要素です。


推定読了時間: 20分