【しーあいしーでぃー】

CI/CD とは?

💡 コード変更から本番反映まで「全自動」にする
📌 このページのポイント
CI/CD パイプライン CI(継続的インテグレーション) CD(継続的デリバリー / デプロイ) コード Git Push PR作成 ビルド コンパイル 依存解決 テスト 単体テスト 結合テスト デプロイ ステージング 本番リリース フィードバック(失敗時に通知・修正) 自動化ツール例 GitHub Actions / Jenkins / GitLab CI / CircleCI / AWS CodePipeline コードの変更からデプロイまでを自動化し、品質と速度を両立
CI/CDはビルド・テスト・デプロイを自動化する開発プラクティス
ひよこ ひよこ

なんでCI/CDが必要なの?

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

手動でテスト→手動でビルド→手動でデプロイだと、ヒューマンエラーが起きるし時間もかかる。CI/CDで自動化すれば「push したら10分後に本番反映」が実現する。バグの早期発見、リリース頻度の向上、開発者のストレス軽減など良いことずくめだよ

ひよこ ひよこ

CIとCDの違いは?

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

CIは「コードを書いたらすぐ統合・テスト」。PRを出すと自動でテストが走り、パスしないとマージできない。CDは「テスト通過後に自動でデプロイ」。Continuous DeliveryはデプロイReady状態まで自動化(最終判断は人間)、Continuous Deploymentは本番デプロイまで完全自動化だね

ひよこ ひよこ

おもしろい!GitHub Actionsの始め方は?

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

.github/workflows/ci.yml を作成して、トリガー(on: push)、実行環境(runs-on: ubuntu-latest)、ステップ(npm install → npm test)を定義するだけ。GitHubに無料枠があるから、個人プロジェクトでもすぐ始められるよ。まずはlintとテストの自動実行から始めよう

ひよこ ひよこ

CI/CDのベストプラクティスは?

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

①テストは高速に(10分以内が理想、遅いと開発者がCIを待たなくなる)、②main/masterブランチは常にデプロイ可能な状態を保つ、③フィーチャーフラグリリースデプロイを分離、④ロールバック手順を用意しておく。CI/CDは「文化」であって「ツール」ではないというのが重要な考え方だよ

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「CI/CD」って出てきたら「コードの統合・テスト・デプロイを自動化する仕組み」と思えればだいたいOK!
📖 おまけ:英語の意味
「Continuous Integration / Continuous Delivery (Deployment)」 = 継続的インテグレーション / 継続的デリバリー(デプロイメント)
💬 Continuous(継続的に)Integration(統合)とDelivery/Deployment(配信/配備)を行う手法だよ
← 用語集にもどる