マイクロサービスアーキテクチャ とは

より俊敏で柔軟なITを実現するアーキテクチャ

かつての銀行のオンラインアプリケーションのように、より多くの機能と多くの画面をひとつのソフトウェアとして開発する手法ではなく、Amazon や Netflix が用いている手法、すなわち、より小さいソフトウェアをAPIのような疎結合のテクノロジーでつないでいく手法「マイクロサービスアーキテクチャ」が注目されています。これは、ビジネスの要求にあわせた俊敏性や柔軟性を実現できるように進化を遂げたITインフラの現在形です。

マイクロサービスアーキテクチャとは

マイクロサービスとは、ThoughtWorks社のマーチン・ファウラーとジェームス・ルイスが提唱したソフトウェアアーキテクチャで、モノリシック(一枚岩)なアーキテクチャとは異なり、ビジネス機能に沿った複数の小さい「マイクロサービス」に分割し、連携させることで大きいソフトウェア機能を実現することです。これにより、迅速な開発、実行、および、頻繁な機能強化、優れた可用性やスケーラビリティを実現しやすくなります。

マイクロサービスアーキテクチャの利点

マイクロサービスアーキテクチャにおいては、巨大なソフトウェアを単一(一枚岩:モノリシック)のものとして扱うのではなく、ビジネス機能ごとに分割し、独立したサービスを、ネットワークプロトコルを介した通信とAPIによって連携させ、全体を構成していきます。これは、AmazonやNetflixのように、ソフトウェアによってビジネスを実行/改善し続ける企業で採用されているアーキテクチャです。このアーキテクチャの利点は、サービスごとに独立した開発チームが最適なインフラや開発言語を選んで機能をリリースしていける柔軟性と独立性です。開発チームはAmazonのCEOジェフ・ベゾス氏がいう「2つのピザルール」、つまり2枚のピザで賄えるサイズのチームが生産性が高く保てることを実践しやすくなります。また、サービスはそれぞれ独立しているため、ひとつのサービスが全体をダウンさせるようなこともなく、チームごとに最適な開発とリリースを行えるため、機能拡張とスケーリングがしやすくなります。少し似たような考え方として、SOA (Service Oriented Architecture) がありますが。マイクロサービスアーキテクチャにおいては、SOAでシステム連携の中心となるESB (Enterprise Service Bus) の考えはなく、標準のHTTPプロトコルを使う REST API で連携する方式が多くなってきています。