legacy-modernizer について
レガシーシステムを全面的に書き換えず、段階的に近代化するチーム向けのスキルです。トラフィックの切り替え、システム境界の分離、データ同期の移行パターンを扱います。
主な機能
- 01段階的な移行ロードマップの策定
- 02Strangler Fig と抽象化パターンの適用
- 03腐敗防止層によるドメインモデルの分離
- 04CDC による移行データの同期
- 05優先順位の評価とロールバック計画
活用シーン
- 01モノリスを段階的にマイクロサービス化
- 02新旧システム間のデータ同期
- 03互換性を保ちながらレガシー API を置換
- 04移行中の二重書き込みとトラフィック切り替え
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ 404kidwiz/ claude-supercode-skills --skill legacy-modernizerインストール後、Claude Code で/legacy-modernizerを入力して読み込まれたか確認します。
詳細
レガシーシステムのモダナイゼーション
目的
システムを全面的に書き換えることなく、レガシーシステムを段階的にモダナイズするための専門知識を提供します。ストラングラーフィグ、変更データキャプチャ(CDC)、腐敗防止層などの移行パターンを専門とし、事業継続性を維持しながらシステムを安全に進化させます。
使用する場面
- モノリスからマイクロサービスへの移行を計画する
- ストラングラーフィグパターンを実装する
- 旧システムと新システムの間に腐敗防止層を設計する
- データ同期のために変更データキャプチャを設定する
- レガシーデータベースを段階的にモダナイズする
- 互換性を維持しながらレガシー API を置き換える
- モダナイゼーションの優先順位を決めるためにレガシーコードベースを評価する
- 移行中のデュアルライトのシナリオを管理する
クイックスタート
次の場合にこのスキルを呼び出します:
- レガシーモノリスを最新のアーキテクチャに移行する
- ストラングラーフィグまたはブランチ・バイ・アブストラクションを実装する
- 腐敗防止層を設計する
- システム間のデータ同期のために CDC を設定する
- 段階的なモダナイゼーションのロードマップを計画する
次の場合は呼び出さないでください:
- グリーンフィールドのマイクロサービス設計 →
/microservices-architectを使用します - 移行を伴わない一般的なリファクタリング →
/refactoring-specialistを使用します - 移行を伴わないデータベースの最適化 →
/database-optimizerを使用します - レガシーシステムに関する考慮が不要な API 設計 →
/api-designerを使用します
判断フレームワーク
Migration Strategy?
├── Replace Incrementally
│ └── Strangler Fig: Route traffic to new service gradually
├── Abstract and Replace
│ └── Branch by Abstraction: Interface → implement new → switch
├── Data Sync Required
│ └── CDC with Debezium/similar for real-time sync
└── Protect New from Old
└── Anti-Corruption Layer: Translate between domains
主なワークフロー
1. ストラングラーフィグの実装
- 切り出す境界づけられたコンテキストを特定します
- レガシーシステムの前面にファサード/プロキシを作成します
- 同じインターフェースを実装する新しいサービスを構築します
- トラフィックの一部を新しいサービスにルーティングします
- 新しいサービスに流すトラフィックの割合を徐々に増やします
- 移行が完了したらレガシーコンポーネントを廃止します
2. 腐敗防止層のセットアップ
- 新しいシステム用のクリーンなドメインモデルを定義します
- レガシーシステムとの統合ポイントを特定します
- モデル間の変換レイヤーを構築します
- レガシー API/データ用のアダプターを実装します
- 変換の失敗を監視する仕組みを追加します
- マッピングルールを文書化します
3. CDC によるデータ移行
- CDC ツール(Debezium、AWS DMS)をセットアップします
- レガシーデータベースで変更キャプチャを設定します
- 新しいシステムに変更を適用するコンシューマーを構築します
- 変換を使ってスキーマの違いに対処します
- 検証と照合作業を実装します
- 切り替えとフォールバックの戦略を計画します
ベストプラクティス
- 段階的に移行し、一括書き換えは避けます
- 移行中も機能の同等性を維持します
- フィーチャーフラグを使ってトラフィックのルーティングを制御します
- 移行中は包括的な監視を実施します
- 切り替えが完了するまでレガシーシステムと新システムの同期を保ちます
- すべての統合ポイントと依存関係を文書化します
アンチパターン
| アンチパターン | 問題 | 正しいアプローチ |
|---|---|---|
| 一括書き換え | リスクが高く、期間も長い | 段階的な移行 |
| 腐敗防止層がない | 新しいシステムがレガシーの影響を受ける | ACL で分離する |
| CDC を使わないデュアルライト | データの不整合 | 同期には CDC を使う |
| すべてを一度に移行する | 複雑さに圧倒される | ビジネス価値に基づいて優先順位を決める |
| ロールバック計画がない | 移行に失敗すると身動きが取れなくなる | 常にフォールバックを計画する |
コメント
Markdown 対応