すごいよ、Strangler Applicationパターン! 〜 マイクロサービスアーキテクチャの設計パターン 〜

Tech

Strangler Applicationパターンを一言でいうと

Strangler Applicationパターンは、マイクロサービスアーキテクチャに至るためのリファクタリングに適用可能なパターンです。モノリスなシステムを一挙にマイクロサービスアーキテクチャに変えるのではなく、徐々に、戦略的にマイクロサービスアーキテクチャへ移行する、という考えに適用するのです。

Strangler Applicationパターンの何が凄いのか?

1. マイクロサービスアーキテクチャへの移行の現実解を提示してくれる

Strangler Applicationパターンは、マーチン・ファウラーがはじめて「ストラングラーアプリケーション | Martin Fowler\'s Bliki (ja)」で言及しました。 レガシーなシステムから徐々に新しいシステムへ移行することで、システムを丸ごと書換える際に発生するであろう問題、無駄を避けることができる、としています。また「ストラングラーを使えば着実に価値を提供することができ、 頻繁なリリースによって、進捗をより注意深く観測することができる」のです。

2. ネーミングが素晴らしい

マーチン・ファウラーの「ストラングラーアプリケーション | Martin Fowler\'s Bliki (ja)」では、熱帯雨林に生息する「Strangler Fig」(和訳では「絞め殺しの木」)をオーストラリアでみて、このパターンの着想を得ました。この「Strangler Fig」は、何年もかけて他の植物や岩などに巻きついて絞め殺すように成長するため、この俗称で呼ばれます。レガシーなシステムを何年もの歳月をかけて、徐々に「絞め殺す」というこのイメージは、マーチン・ファウラーのネーミングセンスの素晴らしさを表しています。

3. マイクロサービスに至らないことも許容される

モノリスなシステムからマイクロサービスアーキテクチャに移行しようとしたが断念し、中間状態にとどまることもあります。それでも良しとする、という考え方も、この「Strangler Application」では、暗に許容されていると思います。 中間状態に関しては、以下の記事が参考になります。

結局、Strangler Applicationパターンとは

モノリスなシステムをマイクロサービスアーキテクチャに丸ごと書換えたい、という陥りがちな誘惑から、我々を守ってくれる、救いの教えです。この教えに背いたとき、デスマーチによって、我々が絞め殺されてしまうかもしれません。

参考(書籍)

「マイクロサービスパータン」の「Chapter 13 マイクロサービスのリファクタリング」を参照。

参考(サイト)

参考(動画)

  • Strangler Application Pattern | e-Commerce Application Case Study | Monolith to Microservices (英語)

    モノリスからマイクロサービスアーキテクチャへの移行を図解でわかりやすく説明されている。移行の中間段階である「Modular Monoliths」に関しても言及されている。

  • Strangler (converting to microservices) (英語)

タイトルとURLをコピーしました