deha magazine / システム開発 / マイクロサービスアーキテクチャとは?メリット・デメリットを紹介
マイクロサービスアーキテクチャとは?メリット・デメリットを紹介
2021/11/29
マイクロサービスアーキテクチャとはあるアプリケーションをビジネス機能に沿った複数の小さなマイクロサービスに分割して開発を行なっていく手法のことです。
これにより開発の効率化や、変更に柔軟に対応することができるようになります。
実際、AmazonやNetflixなどでも取り入れられているマイクロサービスアーキテクチャ。本日はそんなマイクロサービスアーキテクチャについて徹底解説していきます。
- マイクロサービスアーキテクチャが気になる方
- 開発効率を上げたい方
- ラボ型開発に興味がある方
- 社内のIT人材が不足している方
これらに当てはまる方におすすめの記事となっています。これを読めばマイクロサービスアーキテクチャがどんな開発手法なのか丸わかりですよ。
マイクロサービスアーキテクチャとは?
マイクロサービスアーキテクチャとはソフトウェア開発技法の1つで、ThoughtWorks社のマーチン・ファウラーとジェームス・ルイスによって提唱されました。
ビジネス機能に沿った複数の小さなマイクロサービスに分割し、それらを組み合わせて単一のアプリケーションを開発するアプローチのことを指します。
アマゾン CEO ジェフ・ベゾスが大きすぎるチームではメンバー間の意思疎通が困難になり生産性が低下すると「ピザ2枚ルール」を提唱していますが、マイクロサービスアーキテクチャはその考えをもとに作られたと言われています。
「ピザ2枚ルール」とは、チーム編成や会議において、無駄がなく生産性が高い人数の条件は、ピザ2枚を配りきれる程度の人数(8~10名程度)という考えのことです。
このピザ2枚を配りきれる人数によって、効率的で、各々のモチベーションも高く、またお互いをフォローしあえる状況にあるため、チームの団結力が強くなると考えられています。
実際、マイクロサービスアーキテクチャにより、迅速な開発や機能の改善、柔軟な拡張などが可能になります。
マイクロサービスアーキテクチャのメリット
メンテナンスやテストがしやすい
マイクロサービスアーキテクチャでは共有される部分を減らし、小さなサービスを開発、改善していきます。
メンテナンスやテストもそれぞれで 行うので、管理がしやすくなります。
ひとつのサービスが全体をダウンさせるようなことがない
マイクロサービスアーキテクチャでは個々で開発を行うので、それぞれのサービスが独立をしています。そのため各サービスは違うプログラム言語で開発をしていても問題がありません。
だからこそ、単一のコンポーネントの中で障害が発生しても、他のコンポーネントに影響を与えることは少ないのです。
開発が柔軟になる
先ほども言ったように各サービスは違うプログラム言語で開発することができます。さらに、データモデルやデータベーススキーマなどもサービスごとに各個に設計をしていきます。柔軟な開発が可能になりますよ。
ちなみに、各チームで開発したものはREST APIやRPCによって通信して連携を行なっていきます。
マイクロサービスアーキテクチャのデメリット
プロジェクト型の開発には向かない
マイクロサービスアーキテクチャは変化に柔軟に対応できると言ったメリットがありましたが、こうした開発手法は持続的な開発や継続的にリリースに向いています。
そのため完成までに長い工期を要するプロジェクト型の開発にはあまり向いていません。アジャイル開発などの開発手法でマイクロサービスアーキテクチャが重要な役割を果たすことができると言えるでしょう。
合わせて読みたい>>【注目】アジャイル開発とは?オフショア開発に効果的!?
サービス間のインターフェースが重要
お気づきかもしれないですが、マイクロサービスアーキテクチャで開発を行う場合、それぞれのチームで開発したものを連携させるインターフェースが重要になります。
単純にサービスを分割すればするほどインターフェースの数が増えてしまいます。複数回のネットワーク通信が発生することでシステムのパフォーマンスが劣化する可能性も。
また、サービス間を実際に結合して試験するためには、互いに実装がある程度成熟している必要もあるのです。
まとめ
いかがでしたか。本日はマイクロサービスアーキテクチャについて、どんな開発技法なのか、どんなメリット・デメリットがあるのかなどを解説していきました。
マイクロサービスアーキテクチャでは小さな単位にサービスを分割することで、仕様変更に柔軟に対応でき、開発効率をあげることができました。
アジャイル型の開発を行なっているチームでは重要な役割を果たすに違いありません。ぜひ今回紹介したマイクロサービスアーキテクチャを自社システムにも取り入れてみてはいかがでしょうか。
dehaでは、5年ほど前から、ベトナムオフショア開発を行っています。
より詳しくマイクロサービスアーキテクチャについて知りたい方、オフショア開発について知りたい方はぜひご気軽にお問い合わせください。