ストラングラー・パターンの理論と実践
Chapter 1 of 10

ストラングラー・パターンの理論と実践

アーキテクチャ設計原則と実装戦略

Document Version 1.0 | 株式会社CET | エンタープライズ・モダナイゼーション・プロジェクト向け

1. レガシーシステムの隠れた価値

レガシーシステムのモダナイゼーションを議論する前に、まずその価値を正しく理解する必要があります。古いコードを「技術的負債」として一蹴する姿勢は、重要な現実を見落としています。レガシーシステムには、組織内の他のどこにも存在しない、長年にわたって蓄積された組織的知識が含まれているのです。

1.1 組織的記憶としてのレガシーコード

開発者がレガシーコードに初めて触れたとき、よくある反応は苛立ちです。コードは複雑に絡み合い、命名規則は一貫性がなく、論理的に意味をなさない任意の条件分岐が存在します。自然な衝動として、そのコードを「悪い」と断じ、完全な書き直しを主張したくなります。

この反応は理解できますが、根本的な真実を見落としています。本番システムにおける「奇妙な」コードの各行は、通常、苦い経験から学んだ教訓を表しています。

事例:数千万円を救った天候チェック

あるECサイトのレガシーシステム監査中、配送料計算モジュールに一見不可解な天候チェックルーチンが組み込まれているのを発見しました。このコードは気象APIを呼び出し、配送先地域に悪天候警報が発令されている場合、配送予定日に2日を加算するものでした。

調査の結果、このコードは2012年10月のハリケーン・サンディの際に約500万円相当の商品が破損・紛失した後に追加されたものでした。コードの肥大化に見えたものは、実は500万円の教訓がシステムにエンコードされたものだったのです。

図1.1 — 組織的知識リポジトリとしてのレガシーコード
Loading diagram…

1.2 レガシーコードの真の定義

Michael Feathersは『レガシーコード改善ガイド』の中で、「レガシーコードとは、テストのないコードである」と定義しました。この定義は一見シンプルですが、深い洞察を含んでいます。問題は「古さ」ではなく「安全に変更できないこと」にあるのです。

1.3 レガシーシステムの経済学

経済産業省は2018年に「2025年の崖」について警告しました。日本企業がレガシーシステムのモダナイゼーションに失敗した場合、2025年以降、年間最大12兆円の経済損失が発生する可能性があると試算しています。

重要な洞察

レガシーコードは、帳消しにすべき技術的負債ではありません。モダナイゼーション中に体系的に抽出し、保存すべき組織的記憶なのです。

2. リライトの罠:失敗のパターン

「白紙からやり直す」という誘惑は強力です。しかし業界データは一貫して、フルリライトが70%以上の確率で失敗することを示しています。

2.1 リライト失敗の4フェーズ

図2.1 — リライトプロジェクト失敗の4フェーズ
Loading diagram…

2.2 知識分布の問題

図2.2 — レガシーシステムにおける知識の分布
Loading diagram…

警告

フルリライトは、正式に文書化された15%から100%の動作を再構築しようとします。このアプローチの数学は、失敗をほぼ避けられないものにします。

3. ストラングラー・フィグ・パターンの基本概念

Martin Fowlerは2004年にストラングラー・フィグ・パターンを紹介しました。オーストラリアの熱帯雨林で観察した「絞め殺しのイチジク」から着想を得たものです。

図3.1 — ストラングラー・パターン移行タイムライン
Loading diagram…

主要な利点

ストラングラー・パターンでは、新システムにコミットする前に実際の本番トラフィックに対して検証できます。問題はユーザーの1%にのみ影響する段階で発見されます。

4. リファレンス・アーキテクチャ設計

CET Legacy Bridgeアーキテクチャは、ストラングラー・パターンを実装するための本番環境対応の設計図です。

図4.1 — CET Legacy Bridge リファレンスアーキテクチャ
Loading diagram…
コンポーネント責務推奨技術
ロードバランサトラフィック分散、SSL終端AWS ALB, NGINX
APIゲートウェイルーティング、認証Kong, Envoy
Feature Flag動的ルーティング制御LaunchDarkly, Unleash
ACLプロトコル/データ変換カスタム, Camel

5. Anti-Corruption Layer(腐敗防止層)

ACLは、モダンシステムがレガシーの複雑さに汚染されることを防ぐ重要なパターンです。

図5.1 — Anti-Corruption Layerのデータフロー
Loading diagram…

6. 移行フェーズとトラフィック管理

移行は4つのフェーズで進行します。各フェーズには明確な目標と成功基準があります。

図6.1 — フェーズ別アーキテクチャ
Loading diagram…

7. リクエストフローとフォールバック機構

フォールバック機構により、モダンシステムで問題が発生しても、ユーザーには透過的にサービスが継続されます。

図7.1 — 自動フォールバック
Loading diagram…

8. 意思決定フレームワーク:アプローチの選択

すべてのプロジェクトにストラングラー・パターンが最適とは限りません。状況に応じて適切なアプローチを選択します。

評価軸ビッグバンストラングラー
リスク高(集中)低(分散)
初回価値創出18-36ヶ月後3-6ヶ月後
ロールバック困難即座に可能
成功率約30%約85%

CET Legacy Bridgeの3原則

ビジネス継続性:移行中もシステムは完全稼働

段階的価値創出:各フェーズで測定可能な価値を提供

安全な変更:常にロールバック可能

次の章

第2章:Discovery — 現状分析とホットスポット特定

第2章へ進む