マイクロサービスとは

microservices_600x300

Microservicesでは、特定のビジネス機能を実行し、Web インターフェイスを介して通信する個別に展開可能なサービスから分散アプリケーションを構築するアーキテクチャ プロセスについて説明します。 DevOps チームは、個々の機能をマイクロサービスに組み込み、マイクロサービスをビルディング ブロックのように組み合わせて、より大規模なシステムを構築します。

マイクロサービスは、オープン/クローズ原則の例を適用します。

  • 拡張が可能です (公開されているインターフェイスを使用)
  • 変更は受け付けられていません (それぞれが個別に実装され、バージョン管理されています)

マイクロサービスには、モノリシック アーキテクチャに比べて多くの利点があります。

  • 1 つのサービスの問題がクラッシュしたり、アプリケーションの他の部分に影響を与えたりしないようにすることで、単一障害点 (SPOF) を除去できます。
  • 個々のマイクロサービスを個別にスケールアウトして、追加の可用性と容量を提供できます。
  • DevOps チームは、アプリケーションの他の部分に不必要に影響を与えることなく、新しいマイクロサービスを追加することで機能を拡張できます。

マイクロサービスを使用すると、チームの速度が向上します。 継続的インテグレーション継続的デリバリーなどの DevOps 実践は、マイクロサービスの展開を推進するために使用されます。 マイクロサービスは、ソフトウェア開発チームがイベント駆動型プログラミングや自動スケールなどのシナリオを利用できるようにすることで、クラウドベースのアプリケーション アーキテクチャを適切に補完します。 マイクロサービス コンポーネントは、他のサービスと通信するために、通常は REST プロトコル経由で API (アプリケーション プログラミング インターフェイス) を公開します。

コンテナ クラスターを使用してマイクロサービスを実装する方法がますます一般的になってきています。 コンテナーを使用すると、マイクロサービスの分離、パッケージ化、デプロイが可能になり、オーケストレーションによってコンテナーのグループがアプリケーションにスケールアウトされます。

次のステップ

Azure 上のマイクロサービスの詳細をご覧ください。