1ヶ月でWebデザイン・プログラミングスキルをオーダーメイドのカリキュラムで学べるスクール、それがWebCamp。

子供の想像力を伸ばしアイデアを形にする小学生向けプログラミング教室「プロスタキッズ」

サービスを分割!マイクロサービスアーキテクチャのメリット・デメリット

Pocket

はじめに

ソフトウェアアーキテクチャをご存じですか?

ソフトウェアアーキテクチャとは、プログラムの全体構造の設計方法を指します。
特定の実装を指しているわけではなく、あくまで概念的なものです。
いろいろなアーキテクチャが考案されてきましたが、最近では「マイクロサービスアーキテクチャ」が話題になっています。

この記事では、新しいアーキテクチャを知りたいエンジニアの方のために、マイクロサービスアーキテクチャについてお伝えしていきます。
ぜひご一読して、プログラム設計の参考にして下さい。

マイクロサービスアーキテクチャの基礎知識

マイクロサービスアーキテクチャでは、複数のマイクロサービス(単機能の小さなプログラム)を組み合わせてひとつの大きなサービスを構成します。
各サービスは完全に独立しており、必要であればデータベースも別々に持たせます。

もちろん、ひとつのサービスとして提供するためにはマイクロサービス間の連携が必要です。
そのため、REST API(HTTP)やRabbitMQなどのメッセージングプロトコルを使って互いに通信します。
マイクロサービス間にはそれ以上の依存関係はないため、互いに疎結合で独立性の高いサービスになっています。

各サービスは独立しているため、別々の実行環境に配置することができます。
これは、近年導入が進んでいるクラウドコンピューティングとも相性がよく、サービスを分散させることで単一ホストの停止によるサービス障害を防ぐことができます。
このため、マイクロサービスは一般的に別々のホスト環境にデプロイされます。

マイクロサービスアーキテクチャのメリット

各マイクロサービスに別々の技術を採用できる

各マイクロサービスは完全に独立しているため、他のマイクロサービスと通信できるのであれば、どのような技術でも採用できます。
つまり、サービスごとに適切な技術を採用できるわけです。
サービスを開発するチームが得意な技術を採用してもよいでしょう。

小さなチームで開発できる

一般的に、開発メンバーが増えるほどコミュニケーションパスが増加し、開発効率が悪くなっていきます。マイクロサービスは十分に小さいため、少人数のチームで開発できます。
そのため、生産性が高く、口頭やチャットを駆使することで、最低限のドキュメントで開発を進めることができます。

障害耐性が高い

各マイクロサービスは独立しているため、冗長化もしやすく、いずれかのサービスが停止してもサービス全体としては動作し続けることができます。
また、メンテナンスのために特定のマイクロサービスのみを停止することも容易です。
メンテナンス性も高いといえるでしょう。

再利用性が高まる

各マイクロサービスはシンプルなので、別のサービスにも再利用できる可能性が高まります。
再利用する際も、既存のサービスと同様のプロトコルを使ってアクセスすればよいため簡単です。

マイクロサービスアーキテクチャのデメリット

サービス全体の複雑度が増加する

各マイクロサービス自体はシンプルですが、サービスの数が多くなることでサービス全体としてはモノリシック(従来通りの一枚岩)サービスよりも複雑度は増します。
このため、サービスの規模によっては、マイクロサービスアーキテクチャは適切ではありません。

マイクロサービスへの分割が難しい

もともとモノリシックなサービスをマイクロサービスへと分割するのは容易ではありません。
また、新規開発サービスであっても、開発初期段階から適切なサービスを見つけ出すのは困難です。
依存関係が生まれないように慎重にサービスを分割する必要があります。

まとめ

いかがでしたでしょうか?

マイクロサービスアーキテクチャはどちらかというと大規模システム向けなので、規模の小さいシステムであればモノリシックに設計したほうがシンプルかもしれません。
どの場合にでも適合する究極のアーキテクチャというものは存在しませんので、設計するシステムに合わせて最適なアーキテクチャを選択しましょう。

投稿者:プロスタ編集部

  • このエントリーをはてなブックマークに追加
  • follow us in feedly

初心者がプログラミングで挫折しない学習方法を無料動画で公開中。オンラインに特化したプログラミングスクール「TechAcademy(テックアカデミー)」が解説。

この記事が気に入ったら
いいね!しよう

プロスタの最新情報をお届けします

あわせて読みたい

関連記事

ページ上部へ戻る