microservice
microserviceは、単一のビジネス機能を独立して実行する設計思想に基づいたソフトウェアサービスを指します。従来の巨大な一つのプログラムとして構築するモノリシックな設計とは対照的に、機能を小さく分割して個別に開発・展開・管理することが可能です。これにより、システムの一部に障害が発生しても全体が停止するリスクを軽減でき、特定の機能だけを迅速に更新できる柔軟性が得られます。
モノリスとの対比と利点monolith(モノリス)と呼ばれる単一構造のアプリケーションでは、コードベースが巨大になるにつれて変更の影響範囲を把握することが困難になります。一方でmicroserviceを採用すると、各サービスが独立しているため、サービスごとに最適なプログラミング言語やデータベースを選択できるという利点があります。また、トラフィックが増加した特定の機能だけを個別に拡張(スケーリング)させることができるため、リソースの効率的な運用が可能です。
運用の複雑性とトレードオフ
柔軟性が高い反面、管理すべきサービスの数が増えるため、運用上の複雑さが増大します。特に、複数のサービス間でデータを整合させるための分散トランザクションの管理や、サービス間の通信遅延(ネットワークレイテンシ)への対策が必要になります。そのため、単純な小規模アプリケーションに導入するのではなく、組織の規模が大きく、複雑なビジネスロジックを持つ大規模システムにおいてその真価を発揮します。
意味
単一のビジネス機能を実行し、軽量なプロトコルを介して他のサービスと通信する、小規模で独立したソフトウェアサービスのこと
The team decided to break the monolithic application into a microservice for payment processing.
チームは、モノリシックなアプリケーションを支払い処理用のマイクロサービスに分割することを決定した。