# デプロイ標準

[目的: 環境とパイプラインのパターンを明確にし、安全で再現可能なリリースを実現する]

## 基本方針
- 自動化する。デプロイ前にテストし、デプロイ後に検証する
- 高速なロールバックを伴う段階的ロールアウトを優先する
- 本番の変更は、可観測（observable）かつ可逆（reversible）でなければならない

## 環境
- Dev: 高速なイテレーション、デバッグ有効
- Staging: 本番をミラーリング、リリース検証
- Prod: 堅牢化、監視あり、最小権限

## CI/CD フロー
```
コード → テスト → ビルド → スキャン → デプロイ（段階的）→ 検証
```
原則:
- テスト／スキャンは早期に失敗させ、デプロイをブロックする
- 成果物のビルドは再現可能にする（ロックファイル、バージョン固定）
- 本番は手動承認を要し、監査可能な記録を残す

## デプロイ戦略
- ローリング: インスタンスを段階的に置き換える
- ブルーグリーン: 2つのプール間でトラフィックを切り替える
- カナリア: まず少数の % のユーザーに展開し、健全性を見て拡大する
リスクプロファイルに応じて選択し、既定を文書化する。

## ゼロダウンタイムとマイグレーション
- ヘルスチェックでトラフィックを制御する。グレースフルシャットダウンを行う
- ロールアウト中は後方互換な DB 変更にする
- マイグレーションは別ステップに分け、ロールバック経路をテストする

## ロールバック
- 直前バージョンを待機させておき、切り戻しを自動化する
- 修正して前進（fix-forward）するより速くロールバックする。トリガーを文書化する

## 設定とシークレット
- 12-factor に従い env で設定する。シークレットは絶対にコミットしない
- シークレットマネージャを使う。ローテーション、最小権限、アクセス監査を行う
- 起動時に必須の環境変数を検証する

## ヘルスと監視
- エンドポイント: `/health`、`/health/live`、`/health/ready`
- レイテンシ、エラー率、スループット、飽和度を監視する
- SLO 違反やスパイクでアラートする。疲労を避けるよう調整する

## インシデント対応と DR
- 標準プレイブック: 検知 → 評価 → 緩和 → 周知 → 解決 → ポストモーテム
- 保持期間付きのバックアップ、リストアのテスト、RPO／RTO の定義

---
_ロールアウトのパターンとセーフガードに焦点を当てること。プロバイダ固有の手順は記載しない。_
