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

小さなサービスをつないで大きな柔軟性を実現

より俊敏で柔軟な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 で連携する方式が多くなってきています。

一枚岩(モノリシック)のアーキテクチャでは一部の変更は全体におよび柔軟な拡張が難しい

monolythic

マイクロサービスアーキテクチャではサービスごとに独立した複数の小さいピースで全体を構成する

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

国内における採用事例

米国のネット企業を中心に採用されているマイクロサービスアーキテクチャですが、国内での導入も増えています。2016年6月1日〜3日に開催されたAWSのイベント「AWS Summit Tokyo」では、キヤノンがAPIを中心に据えたマイクロサービス化の事例が発表され、1年に数回だったアプリの改変を週に数回のペースに上げ、インフラやネットワークなどのトラブル件数や脆弱性を大幅に減少させたとのことです。この他にも、国内企業でのマイクロサービスの採用は着実に増えている状況です。
参考:ITpro キヤノンがマイクロサービスで週に数回のアプリ改変を実現へ
参考:ITpro 取り組んで分かった、マイクロサービスの利点と課題
参考:ITpro ファストリが「マイクロサービス」を導入、週に数回のアプリ改変が可能に