PUBLIC
DEVOPSAUTOMATION12 MIN READ

CI / CD変更を、安全に届け続ける仕組み

CI/CDは単なる「自動デプロイ」ではありません。小さな変更を何度も検証し、 リリースの不確実性を減らすための一連の考え方と仕組みです。

01CODE
02BUILD
03TEST
04DEPLOY
FLOW

コードの変更を起点に、検証済みの成果物を環境へ届ける基本の流れ。

CONTENTSこの記事の目次

QUICK OVERVIEW

30秒でつかむ

01PURPOSE

変更を安全に届ける

小さな変更を同じ手順で検証し、リリースの不確実性を減らします。

02TRIGGER

変更をきっかけに動く

GitへのPushなどを起点に、ビルド・テスト・デプロイを実行します。

03NOT JUST A TOOL

中心は開発習慣

自動化ツールだけでなく、小さく統合し早く直す習慣まで含む考え方です。

01 — THE PROBLEM

なぜCI/CDが
必要なのか

変更をまとめて手作業でリリースすると、一度に確認すべき範囲が大きくなり、 「どの変更が問題だったのか」を特定しにくくなります。

CI/CDは、コードの変更をきっかけにビルド・テスト・デプロイを同じ手順で繰り返します。 人が毎回手順を思い出すのではなく、機械が再現できるパイプラインとして定義するのがポイントです。

02 — CI & CD

同じパイプライン、
異なる役割

CIは変更を統合して確かめる工程。CDは確かめた成果物を届ける工程です。

CI

CONTINUOUS
INTEGRATION

継続的インテグレーション

変更を共有ブランチへ頻繁に統合し、そのたびにビルドとテストを実行します。

  • 01コードをPush
  • 02依存関係を取得
  • 03ビルド・静的解析
  • 04自動テスト
OUTPUT 検証済みの成果物
CD

CONTINUOUS
DELIVERY / DEPLOYMENT

継続的デリバリー

CIで作られた成果物を、同じ方法でステージングや本番環境へ届けます。

  • 01成果物を受け取る
  • 02環境へ配置
  • 03動作確認
  • 04本番へリリース
OUTPUT 動作中のアプリ

Delivery は本番反映の直前までを自動化し、最後は人が承認。Deployment は本番反映まで自動化します。

03 — PIPELINE

変更が本番へ
届くまで

パイプラインは一直線ではなく、失敗したらすぐ開発者へ戻るフィードバックループです。

TRIGGER: GIT PUSHRUN #184
01AUTOMATED
CODE

変更する

開発者がコードを書き、GitへPushする。

02AUTOMATED
BUILD

組み立てる

実行できる形式へ変換し、成果物を作る。

03AUTOMATED
TEST

確かめる

自動テストで変更が安全か確認する。

04CONTROLLED
DEPLOY

届ける

検証済みの成果物を環境へ反映する。

PROCESS

途中で失敗した場合は先へ進まず、開発者へすぐフィードバックします。

04 — EXAMPLE

パイプラインを
コードで定義する

設定ファイルもGitで管理すれば、手順の変更履歴をコードと一緒に追跡できます。

deploy.ymlGITHUB ACTIONS
name: test-and-deploy

on:
  push:
    branches: [main]

jobs:
  verify:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - run: npm ci
      - run: npm test
      - run: npm run build

  deploy:
    needs: verify
    runs-on: ubuntu-latest
    steps:
      - run: ./scripts/deploy.sh

01push mainへの変更を開始条件にする

02needs テスト成功後だけデプロイする

03steps 誰が実行しても同じ手順にする

05 — MISCONCEPTIONS

よくある誤解

ツールを導入するだけでは、CI/CDの価値は生まれません。

01

「CI/CD = GitHub Actions」

GitHub Actionsは実現手段のひとつ。中心にあるのは、小さな変更と早い検証という開発習慣です。

02

「すべて自動化すべき」

影響の大きい本番反映では、承認を残す設計も有効です。速度と安全性のバランスを選びます。

03

「テストが通れば安全」

テストで確認していないことは保証されません。監視、ロールバック、段階的リリースも組み合わせます。

IN ONE SENTENCE

CI/CDとは?

コードの変更を、小さく・繰り返し・同じ手順で検証し、利用者へ安全に届けるための仕組み。

KEEP EXPLORING

SECURITYSecret Manager掲載中DEVOPSGit掲載中DEVOPSDocker掲載中SECURITYWorkload Identity掲載中

SOURCES / GITHUB OFFICIAL

Continuous integration ↗Continuous deployment ↗Understanding GitHub Actions ↗Controlling deployments ↗