ストラングラーフィグパターン

機能の特定の部分を新しいアプリケーションやサービスに徐々に置き換えることで、レガシ システムを段階的に移行します。 レガシ システムからの機能が置き換えられていくと、新しいシステムは最終的に古いシステムの機能すべてを置き換え、古いシステムを抑圧して使用停止できるようにします。

ref. ストラングラー フィグ パターン - Azure Architecture Center | Microsoft Learn

システムが古くなるにつれ、このシステムが構築された開発ツール、ホスティング テクノロジ、システム アーキテクチャも徐々に使われなくなっていきます。 新機能が追加されると、これらのアプリケーションも大幅に複雑化し、メンテナンスや新機能の追加が難しくなっていきます。

複雑なシステムを完全に置き換えるには、膨大な作業が発生することがあります。 多くの場合、まだ移行されていない機能を古いシステムで処理し続けながら、新しいシステムに段階的に移行する必要があります。

何が嬉しいのか

  • 段階的に新システムに移行できる
    • インクリメンタルな開発が可能
  • リリース時のリスクを最小化
    • ビッグバンリリースはリスクを伴う

元ネタ: マーチン・ファウラー先生の記述

The most important reason to consider a strangler fig application over a cut-over rewrite is reduced risk. A strangler fig can give value steadily and the frequent releases allow you to monitor its progress more carefully.

StranglerFigApplication

事例

See also