Skip to the content.

Microservice horizontal pattern

Usecase

Architecture

依存関係のない複数の推論モデルを平行して実行するのが並列マイクロサービス・パターンです。並列マイクロサービス・パターンでは各推論サーバに平行して推論リクエストを送信することで、複数の推論結果を得ることができます。要件に応じて、複数の推論結果を集計することや、特定の推論結果のみをレスポンスすることも可能です。
推論は用途によって同期的・非同期的に実行する方針を決める必要があります。同期的に実行するユースケースとしては、全推論を得てから結果を集計する場合が考えられます。非同期的に実行する場合は、推論を得たら即時にアクションを取るユースケースが考えられます(Asynchronized horizontal)。
クライアントと推論サーバの間には推論を仲介するプロキシを置くことが可能です。プロキシを配置することでデータ取得や推論結果の集約等のタスクをクライアントから隔離することが期待できます。推論のための入力データはプロキシで一括して収集することも、各推論サーバで取得することも可能です(Synchronized horizontal with data retrieval)。前者のメリットはDWHやストレージへのアクセス回数を減らし、オーバーヘッドを削減できることです。後者のメリットは各モデルが必要なデータを取得することで、複雑なフローを実現することができます。

Diagram

Synchronized horizontal

diagram1

Synchronized horizontal with data retrieval

diagram2

Asynchronized horizontal

diagram3

Pros

Cons

Needs consideration

Sample

https://github.com/shibuiwilliam/ml-system-in-actions/tree/main/chapter4_serving_patterns/horizontal_microservice_pattern