【しーあいしーでぃーぱいぷらいん】

CI/CDパイプライン とは?

💡 コード変更から本番反映までの「自動化された流れ」
📌 このページのポイント
CI/CD パイプライン CI(継続的インテグレーション) CD(継続的デリバリー) Source Build Unit Test Integration Test Staging Deploy E2E Test Production 本番デプロイ CI: コード変更を自動でビルド・テスト CD: テスト通過後に自動でデプロイ ゲート: 品質チェックを通過したら次へ 各ステージの失敗は即座にフィードバック
CI/CD パイプラインのイメージ
ひよこ ひよこ

パイプラインの中身はどうなってるの?

ペンギン先生 ペンギン先生

一般的な構成は、①ソースステージ(コードプッシュがトリガー)→②ビルドステージ(コンパイル・コンテナイメージ作成)→③テストステージ(ユニットテスト・静的解析E2Eテスト)→④デプロイステージ(ステージング→本番環境)。各ステージで問題があれば後続を止める「ゲート」になるよ

ひよこ ひよこ

GitHub ActionsJenkinsどっちがいい?

ペンギン先生 ペンギン先生

GitHubを使っているならGitHub Actionsが最も手軽だよ。YAMLファイルでパイプラインを定義でき、Marketplaceに豊富なアクションがある。JenkinsオンプレミスでフルカスタマイズしたいGitLab CI/CDGitLabを使っている場合に最適。プロジェクトのエコシステムで選ぶのがベストだね

ひよこ ひよこ

パイプラインが遅いときの改善策は?

ペンギン先生 ペンギン先生

①テストの並列実行、②キャッシュの活用(依存関係Dockerレイヤー)、③不要なステップの削除、④変更されたファイルに関連するテストだけ実行する「影響分析」、⑤高速なランナー(マシン)の使用。パイプラインが10分を超えると開発者の生産性が落ちるから、5分以内を目標にするといいよ

ひよこ ひよこ

セキュリティチェックも入れるべき?

ペンギン先生 ペンギン先生

ぜひ入れるべきだよ。SAST(静的アプリケーションセキュリティテスト)、依存関係脆弱性チェック(Dependabot、Snyk)、コンテナイメージスキャン(Trivy)をパイプラインに組み込む。これが「シフトレフト」の実践で、脆弱性を早期に発見してコストを削減するんだ

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
CI/CDパイプライン」って出てきたら「コード変更からデプロイまでの自動化された流れ」と思えればだいたいOK!
📖 おまけ:英語の意味
「CI/CD Pipeline」 = 継続的インテグレーション/継続的デリバリーのパイプライン
💬 Pipeline(配管)のように、コードが各工程を流れていくイメージ。途中で品質チェックのゲートを通過するよ
← 用語集にもどる