deployment-strategies
本番環境へのデプロイメント戦略に関するスキルです。ブルーグリーンデプロイメント、カナリアデプロイメント、ローリングアップデート、リクリエイトなどの手法に対応します。ダウンタイムなしでのデプロイメント、ロールバック手順、データベースマイグレーションの調整、デプロイメント自動化を実現できます。 【このスキルを使用する場合】ユーザーが「ブルーグリーン」「カナリアデプロイメント」「ローリングアップデート」「ゼロダウンタイム」「デプロイメント戦略」「ロールバック」「デプロイパイプライン」などに言及した場合。 【このスキルを使用しない場合】CI/CDパイプラインの構文(GitHub Actionsを使用)、コンテナオーケストレーション(Kubernetesを使用)、Infrastructure as Code(Terraformを使用)。
description の原文を見る
Production deployment strategies. Blue-green, canary, rolling update, recreate. Zero-downtime deployments, rollback procedures, database migration coordination, and deployment automation. USE WHEN: user mentions "blue-green", "canary deployment", "rolling update", "zero-downtime", "deployment strategy", "rollback", "deploy pipeline" DO NOT USE FOR: CI/CD pipeline syntax - use `github-actions`; container orchestration - use `kubernetes`; IaC - use `terraform`
SKILL.md 本文
デプロイメント戦略
戦略の比較
| 戦略 | ダウンタイム | リスク | ロールバック速度 | リソースコスト |
|---|---|---|---|---|
| リクリエート | あり | 高 | 遅い(再デプロイ) | 低 |
| ローリングアップデート | なし | 中 | 中程度 | 低 |
| ブルーグリーン | なし | 低 | 即座(切り替え) | 2倍のリソース |
| カナリア | なし | 非常に低 | 高速(ルート変更) | +10-20% |
ブルーグリーンデプロイメント
┌─── Blue (v1) ← 現在のトラフィック
Load Balancer ──────┤
└─── Green (v2) ← ここにデプロイ、テスト、切り替え
AWS (ALB Target Groups)
// ブルーからグリーンへトラフィックを切り替え
await elbv2.modifyListener({
ListenerArn: listenerArn,
DefaultActions: [{
Type: 'forward',
TargetGroupArn: greenTargetGroupArn, // グリーンをポイント
}],
});
// ロールバック: ブルーに戻す
await elbv2.modifyListener({
ListenerArn: listenerArn,
DefaultActions: [{
Type: 'forward',
TargetGroupArn: blueTargetGroupArn,
}],
});
カナリアデプロイメント
# Kubernetes: Argo Rollouts
apiVersion: argoproj.io/v1alpha1
kind: Rollout
spec:
strategy:
canary:
steps:
- setWeight: 5 # カナリアへ5%のトラフィック
- pause: { duration: 5m }
- setWeight: 20
- pause: { duration: 10m }
- setWeight: 50
- pause: { duration: 10m }
- setWeight: 100 # 完全なロールアウト
analysis:
templates:
- templateName: error-rate
startingStep: 1 # ステップ1からチェック開始
ローリングアップデート (Kubernetes)
apiVersion: apps/v1
kind: Deployment
spec:
replicas: 4
strategy:
type: RollingUpdate
rollingUpdate:
maxUnavailable: 1 # 最大1つのポッドがダウン
maxSurge: 1 # 最大1つの余分なポッド
データベースマイグレーション調整
1. v2コード(v1スキーマとの後方互換性あり)をデプロイ
2. フォワードマイグレーション実行(追加のみ:新しいカラム、テーブル)
3. v2が正常に動作することを確認
4. 次のリリースで消去マイグレーション実行(古いカラムを削除)
拡張・契約パターン
-- リリース1: 拡張(新しいカラムを追加)
ALTER TABLE users ADD COLUMN full_name TEXT;
UPDATE users SET full_name = first_name || ' ' || last_name;
-- リリース2: コードがfull_nameを使用し、first_name/last_nameへの書き込みを停止
-- リリース3: 契約(古いカラムを削除)
ALTER TABLE users DROP COLUMN first_name, DROP COLUMN last_name;
ロールバックチェックリスト
# 1. 問題を検出(自動または手動)
# 2. トラフィックを前のバージョンに戻す
kubectl rollout undo deployment/my-app
# 3. ロールバックが成功したことを確認
kubectl rollout status deployment/my-app
# 4. DBマイグレーションが実行された場合、バックワードマイグレーション実行
# (マイグレーションが後方互換性があった場合のみ)
アンチパターン
| アンチパターン | 修正方法 |
|---|---|
| デプロイとマイグレーション同時実行 | デプロイとマイグレーションを分離 |
| 破壊的なDBマイグレーション | 拡張・契約パターンを使用 |
| レディネスチェックなし | レディネスプローブを設定 |
| 自動ロールバックトリガーなし | エラー率の閾値を設定 |
| 手動デプロイ | CI/CDパイプライン経由で自動化 |
本番環境チェックリスト
- ゼロダウンタイム戦略を選択(ローリング/ブルーグリーン/カナリア)
- ヘルスチェック設定(ライブネス+レディネス)
- ロールバック手順がドキュメント化され、テスト済み
- データベースマイグレーションが後方互換性あり
- エラー率スパイク時の自動ロールバック
- チームへのデプロイメント通知
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- claude-dev-suite
- ライセンス
- MIT
- 最終更新
- 2026/5/10
Source: https://github.com/claude-dev-suite/claude-dev-suite / ライセンス: MIT
関連スキル
superpowers-streamer-cli
SuperPowers デスクトップストリーマーの npm パッケージをインストール、ログイン、実行、トラブルシューティングできます。ユーザーが npm から `superpowers-ai` をセットアップしたい場合、メールまたは電話でサインインもしくはアカウント作成を行いたい場合、ストリーマーを起動したい場合、表示されたコントロールリンクを開きたい場合、後で停止したい場合、またはソースコードへのアクセスなしに npm やランタイムの一般的な問題から復旧したい場合に使用します。
catc-client-ops
Catalyst Centerのクライアント操作・監視機能 - 有線・無線クライアントのリスト表示・フィルタリング、MACアドレスによる詳細なクライアント検索、クライアント数分析、時間軸での分析、SSIDおよび周波数帯によるフィルタリング、無線トラブルシューティング機能を提供します。MACアドレスやIPアドレスでのクライアント検索、サイト別やSSID別のクライアント数集計、無線周波数帯の分布分析、Wi-Fi信号の問題調査が必要な場合に活用できます。
ci-cd-and-automation
CI/CDパイプラインの設定を自動化します。ビルドおよびデプロイメントパイプラインの構築または変更時に使用できます。品質ゲートの自動化、CI内のテストランナー設定、またはデプロイメント戦略の確立が必要な場合に活用します。
shipping-and-launch
本番環境へのリリース準備を行います。本番環境へのデプロイ準備が必要な場合、リリース前チェックリストが必要な場合、監視機能の設定を行う場合、段階的なロールアウトを計画する場合、またはロールバック戦略が必要な場合に使用します。
linear-release-setup
Linear Releaseに向けたCI/CD設定を生成します。リリース追跡の設定、LinearのCIパイプライン構築、またはLinearリリースとのデプロイメント連携を実施する際に利用できます。GitHub Actions、GitLab CI、CircleCIなど複数のプラットフォームに対応しています。
tracking-application-response-times
API エンドポイント、データベースクエリ、サービスコール全体にわたるアプリケーションのレスポンスタイムを追跡・最適化できます。パフォーマンス監視やボトルネック特定の際に活用してください。「レスポンスタイムを追跡する」「API パフォーマンスを監視する」「遅延を分析する」といった表現で呼び出せます。