Skip to content

デプロイ用語

定義: Blue-Greenデプロイは、2つの完全に同じ環境(BlueとGreen)を用意し、トラフィックを切り替えるデプロイ戦略です。

なぜ重要なのか:

  • ダウンタイムなし: ダウンタイムなしでデプロイできる
  • 簡単なロールバック: 問題があれば即座にロールバックできる
  • リスクの最小化: デプロイのリスクを最小化できる

デプロイの流れ:

  1. Blue環境(現在の本番環境)でサービスを提供
  2. Green環境(新しいバージョン)を準備
  3. トラフィックをGreen環境に切り替え
  4. 問題があればBlue環境に戻す

関連用語:

  • Canaryデプロイ
  • Rollingデプロイ
  • ロールバック

定義: Canaryデプロイは、新しいバージョンを少数のユーザーに段階的にリリースするデプロイ戦略です。

なぜ重要なのか:

  • 段階的なリリース: リスクを最小化しながら新機能をリリースできる
  • 問題の早期発見: 問題を早期に発見できる
  • ユーザーへの影響最小化: 少数のユーザーにのみ影響する

デプロイの流れ:

  1. 新しいバージョンを少数のインスタンスにデプロイ
  2. トラフィックの一部を新しいバージョンにルーティング
  3. 問題がなければ段階的にトラフィックを増やす
  4. 問題があれば即座にロールバック

関連用語:

  • Blue-Greenデプロイ
  • Rollingデプロイ
  • 段階的リリース

定義: Rollingデプロイは、新しいバージョンを段階的にインスタンスにデプロイする戦略です。

なぜ重要なのか:

  • ダウンタイムなし: ダウンタイムなしでデプロイできる
  • リソース効率: 追加のリソースが不要
  • シンプル: 実装が比較的シンプル

デプロイの流れ:

  1. 新しいバージョンを1つのインスタンスにデプロイ
  2. ヘルスチェックが成功したら次のインスタンスに
  3. すべてのインスタンスが更新されるまで繰り返す
  4. 問題があればロールバック

関連用語:

  • Blue-Greenデプロイ
  • Canaryデプロイ
  • ヘルスチェック

定義: CI/CDは、Continuous Integration(継続的インテグレーション)とContinuous Deployment(継続的デプロイ)の略です。

なぜ重要なのか:

  • 開発速度の向上: 自動化により開発速度が向上する
  • 品質の向上: 自動テストにより品質が向上する
  • リリースの迅速化: リリースが迅速に行える

CI/CDの流れ:

  1. CI(継続的インテグレーション): コードの統合とテストの自動化
  2. CD(継続的デプロイ): 自動デプロイ

使用例:

# GitHub Actionsの例
name: CI/CD
on: [push]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- run: npm test
deploy:
needs: test
runs-on: ubuntu-latest
steps:
- run: npm run deploy

関連用語:

  • 継続的インテグレーション
  • 継続的デプロイ
  • 自動化