長年使ってきた業務システムが、保守できる人がいなくなった、改修のたびに別の場所が壊れる、新しい要件に対応できない。こうした『レガシー化』はどの組織にも訪れます。問題は、その直し方です。全部を一度に新しく作り直す一括リプレイスは、最も分かりやすい反面、最も失敗しやすいアプローチでもあります。
なぜ一括リプレイスは危ないのか
稼働中のシステムには、ドキュメントに残っていない例外処理や、長年の運用で積み上がった暗黙のルールが大量に埋まっています。一括で作り直すと、それらの『見えない仕様』を取りこぼし、移行当日に業務が止まります。さらに、開発期間中は新旧どちらも動かないため、その間の業務変更にも対応できません。
- 隠れた仕様を取りこぼし、移行時に業務が停止するリスク。
- 長期間リリースできず、投資の成果が見えないまま費用だけ膨らむ。
- 全機能を同時にテストする必要があり、品質保証が困難。
ストラングラーパターンという考え方
ストラングラー(絞め殺しの木)パターンは、古いシステムを一気に壊さず、外側から新しい実装で少しずつ覆い、機能単位で置き換えていく手法です。最終的に旧システムの役割がなくなったら退役させます。名前は、宿主の木を時間をかけて覆っていく植物に由来します。
- 1新旧の前段に窓口(ルーティング層やAPIゲートウェイ)を置き、リクエストをどちらに流すか制御できるようにする。
- 2影響が小さく切り出しやすい機能から、新しい実装に置き換える。
- 3置き換えた機能へのリクエストだけを新システムに振り向け、残りは旧システムのまま動かす。
- 4これを繰り返し、すべての機能が移ったら旧システムを停止する。
小さく出して、戻せるように
段階移行の利点は、各ステップが小さく、問題が起きても切り戻せることです。リスクを一度に背負わず、検証しながら前に進めるのが安全な移行の本質です。
進める前に決めておくこと
段階移行を成功させるには、技術以前の準備が要ります。特にデータの扱いと、移行の順番の設計が肝心です。
- 現状の棚卸し: どの機能が何に依存しているかを可視化し、切り出しやすい単位を見つける。
- データ移行の方針: 新旧でデータをどう同期するか、最終的にどちらを正とするかを先に決める。
- 優先順位: ビジネス価値が高く、かつ切り出しやすい機能から着手する。
- 撤退ライン: うまくいかないときに旧システムへ戻す条件をあらかじめ定めておく。
段階移行が向かないケースもある
万能ではありません。システムが十分に小さい、あるいは新旧を並行稼働させる仕組みのコストが見合わない場合は、計画的な一括移行のほうが合理的なこともあります。重要なのは『流行りの手法だから』ではなく、対象の規模・リスク許容度・業務の止められなさから方式を選ぶことです。プランタンではレガシーシステムの現状分析から移行計画の策定、実装までをご支援しています。