★ 初級

01. 全体像 ─ コミット → ビルド → デプロイ

一人で書いていたコードを、複数人で安全に育てていくには「個々の変更をどう取り込み、どうリリースまで届けるか」の取り決めが必要です。チーム開発の標準ワークフローと、それを支える 3 つの自動化(CI / CD / IaC)を整理します。

なぜ「取り決め」が必要か

個人開発では、自分のローカル PC から本番サーバーに直接ファイルを置いても誰も困りません。しかし複数人になると次の問題が一気に噴き出します。

この 4 つの問題を仕組みで解決するのが「Git によるコミットPR によるレビューCI によるビルド・テストCD による自動デプロイ」という標準ワークフローです。

標準ワークフロー(4 ステップ)

コミット → レビュー → ビルド → デプロイの 4 ステップ標準フロー
feature ブランチで作業 → PR でレビュー → CI でテスト → マージ後に CD で本番反映。各ステップで「誰でも差し戻せる」のがチーム開発の要。

コミットとは何か

コミット (commit) は「いつ、誰が、何を、なぜ変えたか」を 1 つの単位で記録すること。Git の最小単位です。

チームでは、feature ブランチに細かくコミットを積み、まとめて Pull Request として提出します。

ビルドとは何か

ビルド (build) は、ソースコードを「実行可能な成果物」に変換する工程。

言語 / 用途ビルド成果物
Go / Rust実行バイナリ
Java / KotlinJAR / WAR
JavaScript フロントバンドルされた JS / CSS / HTML
Pythonそのまま実行(依存解決 + パッケージング)
コンテナDocker イメージ
Terraformterraform plan の結果

チーム開発では、ビルドは 毎回 CI サーバーで自動実行 します。手元で「動いた」を信用せず、クリーンな環境でビルドできることを保証します。

デプロイとは何か

デプロイ (deploy) は、ビルドした成果物を「実際の利用環境に配置」する工程。チーム開発では通常、複数の環境を段階的に通します。

feature → 開発環境 (dev) → ステージング (stg) → 本番 (prod)
                            ↑                        ↑
                        QA / 動作確認            最終承認後に反映

環境ごとに「何が動いていいか」を厳密に分け、prod へのデプロイは main へのマージタグ付け をトリガに、手動承認を挟んで実行することが多いです。

CI と CD の境目

用語正式名やることいつ動くか
CIContinuous Integrationコードを取り込んで、自動でビルド・テストPR 作成 / push の度
CDContinuous Delivery / Deployment成果物を環境に配置main マージ後など

CI = ここまで自動で品質チェック」「CD = ここから自動でリリース」と分けて考えると整理しやすい。両方を 1 つのワークフローに書くことも多いですが、責務は別です。

3 大原則

  1. PR 単位で誰でも差し戻せる ── 一人で進めず、必ず他者の目を通す
  2. 自動テストが落ちたらマージできない ── 仕組みで品質を担保
  3. main は常にデプロイ可能 ── いつでも本番に出せる状態を保つ

これら 3 つを満たすツールとして、GitHub Actions / AWS CodePipeline / Azure Pipelines / Google Cloud Build が使われます。次の章から、各クラウドでどのサービスを組み合わせるかを見ていきます。