新しいデータベース、新しいフレームワーク、新しいプラットフォームへの大規模なマイグレーションは、すべてに影響を与え、完了するまでユーザーに見えるメリットがないため、高いリスクを伴います。安全なアプローチは段階的かつ可逆的であり、決して一括切り替えではありません。検証とロールバックが可能なスライス単位でマイグレーションを実行します。
なぜ重要なのか
text
1. Know WHY — a migration with no clear payoff isn't worth the risk.
2. Migrate INCREMENTALLY — never flip everything at once.
3. Run OLD and NEW in parallel — strangler-fig pattern.
4. Use feature flags / DUAL WRITES to shift traffic gradually.
5. VERIFY continuously — compare old vs. new outputs (shadow traffic).
6. Keep a ROLLBACK path at every step.
7. Clean up the old system only AFTER the new one is proven.
ストラングラーフィグパターン
古いシステムをラップし、新しいシステムに機能のスライスを1つずつルーティングし、古いシステムが完全に「窒息」されて削除できるようになるまで続けます。すべての時点で、動作するシステムと戻る方法があります。これは最も重要なマイグレーション手法です。
具体的な例
データベースマイグレーション: 両方に二重書き込み、履歴データのバックフィル、トラフィックの小さな割合で新しいDBから読み取り、結果を比較し、段階的に増やし、新しいDBが一定期間100%きれいに処理された後にのみ古いDBを廃止します。
