ストラングラー・フィグ・パターンとは

ストラングラー・フィグ・パターンは、レガシーシステムを段階的に新しいシステムに置き換えていくための戦略的アプローチであり、既存の機能を少しずつ新しいサービスへと移行させていく手法です。

ストラングラー・フィグ・パターンの概要と目的

ストラングラー・フィグ・パターン(Strangler Fig Pattern)は、ITシステムが肥大化・複雑化したレガシーシステムを、一度にすべて置き換えるのではなく、徐々に新しいシステムへ移行させるための設計パターンです。

この名前は、締め殺しのイチジク(Strangler Fig)という植物の生態に由来しています。

この植物は、宿主となる木に巻きつきながら成長し、最終的に宿主を覆い尽くしてその役割を奪う性質があります。同様に、ストラングラー・フィグ・パターンでは、既存のレガシーシステムの上に新しい機能やサービスを段階的に構築し、徐々にレガシーシステムの機能を置き換えていくことで、最終的にはレガシーシステムを「締め殺し」、新しいシステムが主役となることを目指します。

このパターンの主な目的は、大規模なリライト(一からの書き直し)に伴うリスクを最小限に抑えつつ、システムの近代化を安全かつ継続的に進めることにあります。

ストラングラー・フィグ・パターンの必要性

多くの企業が抱えるレガシーシステムは、長年の運用を経て、そのコードベースが複雑になり、技術的負債が蓄積していることが少なくありません。このようなシステムに対して、一度に全面的なリプレース(置き換え)を行うことは、以下のような大きなリスクを伴います。

  • 高コストと長期間の開発: 全面リプレースは膨大な開発コストと期間を要し、ビジネスの変化に追いつけない可能性があります。
  • ビジネスリスク: 新システムへの移行中にサービスが停止したり、予期せぬ不具合が発生したりするリスクが高まります。
  • 専門知識の喪失: レガシーシステムの詳細な知識を持つ人材が不足している場合、新しいシステムへの正確な機能移行が困難になることがあります。
  • 不確実性: 全てを刷新するため、計画段階での見積もりが外れるリスクが高く、途中でプロジェクトが頓挫する可能性もあります。

ストラングラー・フィグ・パターンは、これらのリスクを回避し、継続的にビジネス価値を提供しながらシステムの近代化を進めるための有効な手段として注目されています。

ストラングラー・フィグ・パターンの仕組みとプロセス

ストラングラー・フィグ・パターンは、主に以下のステップで進行します。

  1. 境界の特定と機能の切り出し:
    • レガシーシステムの中で、ビジネス価値が高く、かつ独立して新しいシステムに移行しやすい機能(モジュールやサービス)を特定します。これは、多くの場合、マイクロサービスなどの独立したサービスとして構築されます。
    • 外部からのアクセスを制御するためのファサード(またはプロキシ)層を導入し、クライアントからのリクエストをレガシーシステムと新システムの間でルーティングできるように準備します。
  2. 新しい機能の実装とデプロイ:
    • 切り出した機能を、新しい技術スタックやアーキテクチャ(例: マイクロサービスアーキテクチャ)で実装し、デプロイします。この新しいサービスは、レガシーシステムとは独立して稼働します。
  3. トラフィックの段階的なルーティング:
    • クライアントからのリクエストのうち、新システムで処理可能な機能に関するものだけを、ファサード層を介して新しいサービスへとルーティングします。
    • ルーティングは、最初は特定のユーザーグループや、特定の機能のみを対象とするなど、リスクを管理しながら段階的に切り替えていきます。これにより、万が一新システムに問題があっても、すぐにレガシーシステムに戻す(ロールバックする)ことが可能です。
  4. レガシー機能の廃止:
    • 新しいサービスが安定して稼働し、レガシーシステムの当該機能が完全に置き換えられたと確認できた時点で、レガシーシステムの古い機能を削除します。このプロセスを繰り返すことで、最終的にはレガシーシステム全体が新しいシステムに置き換えられます。

ストラングラー・フィグ・パターンのメリットと考慮点

メリット

  • リスクの低減: 一度にすべてを置き換えるリスクを回避し、小さな変更を積み重ねていくため、障害発生時の影響範囲を限定できます。
  • 継続的な価値提供: 既存システムを運用しながら段階的に移行できるため、ビジネスの継続性を維持できます。
  • 学習と適応: 新しい技術やアーキテクチャを小規模な範囲で試しながら、経験を蓄積し、フィードバックを次の移行に活かせます。
  • 投資の最適化: 優先度の高い機能から順に近代化できるため、投資対効果の高い領域から着手できます。

考慮点

  • ファサード層の複雑性: リクエストのルーティングを担うファサード層が、移行の進行とともに複雑になる可能性があります。
  • 二重管理の期間: レガシーシステムと新システムの両方を並行して運用する期間が発生するため、一時的に運用コストが増加する可能性があります。
  • 移行戦略の策定: どの機能をどの順序で移行するか、慎重な計画と戦略が必要です。特に、データ移行の課題が複雑になることがあります。
  • チームの文化とスキル: アジャイルな開発と継続的なデリバリーに適応できるチームの文化とスキルが求められます。

ストラングラー・フィグ・パターンは、大規模なレガシーシステムの近代化に直面している組織にとって、現実的かつ効果的なアプローチであり、多くの成功事例を生み出しています。

関連用語

リファクタリング(refactoring) | 今更聞けないIT用語集
マイクロサービスアーキテクチャ | 今更聞けないIT用語集
リファクタリング

お問い合わせ

システム開発・アプリ開発に関するご相談がございましたら、APPSWINGBYまでお気軽にご連絡ください。

APPSWINGBYの

ソリューション

APPSWINGBYのセキュリティサービスについて、詳しくは以下のメニューからお進みください。

システム開発

既存事業のDXによる新規開発、既存業務システムの引継ぎ・機能追加、表計算ソフトによる管理からの卒業等々、様々なWebシステムの開発を行っています。

iOS/Androidアプリ開発

既存事業のDXによるアプリの新規開発から既存アプリの改修・機能追加まで様々なアプリ開発における様々な課題・問題を解決しています。


リファクタリング

他のベンダーが開発したウェブサービスやアプリの不具合改修やソースコードの最適化、また、クラウド移行によってランニングコストが大幅にあがってしまったシステムのリアーキテクチャなどの行っています。