Skip to main content
QUICK REVIEW

[論文レビュー] Microservices: Granularity vs. Performance

Dharmendra Shadija, Mo Rezai|arXiv (Cornell University)|Sep 26, 2017
Software System Performance and Reliability参考文献 11被引用数 7
ひとこと要約

本稿は、クラウドおよびIoT環境におけるマイクロサービスの細粒度とアプリケーションパフォーランスのトレードオフを調査する。シミュレーションを用いて、大学入学選抜システムの単一コンテナおよびマルチコンテナデプロイメントを比較し、両者の間で遅延差がほとんどないことを見いだした。これは、適切にオーケストレーションされたクラウドネイティブアーキテクチャにおいて、細粒度マイクロサービスがパフォーランスを著しく低下させないことを示唆している。

ABSTRACT

Microservice Architectures (MA) have the potential to increase the agility of software development. In an era where businesses require software applications to evolve to support software emerging requirements, particularly for Internet of Things (IoT) applications, we examine the issue of microservice granularity and explore its effect upon application latency. Two approaches to microservice deployment are simulated; the first with microservices in a single container, and the second with microservices partitioned across separate containers. We observed a neglibible increase in service latency for the multiple container deployment over a single container.

研究の動機と目的

  • クラウドおよびIoT環境におけるマイクロサービスの細粒度がアプリケーションの遅延に与える影響を調査すること。
  • モノリスコンテナデプロイメントと分散コンテナデプロイメントのマイクロサービス間でのパフォーランスを比較すること。
  • マイクロサービスベースのクラウドアプリケーションの設計または移行を行うアーキテクトに実用的なガイドラインを提供すること。
  • 特にエッジおよびクラウドレットアーキテクチャを想定したリソース制約のあるIoTシナリオにおけるマイクロサービスデプロイメントパターンの影響を調査すること。
  • ネットワーク帯域幅などの環境的制約に基づいたマイクロサービスの自律的オーケストレーションに関する未解決の研究課題を特定すること。

提案手法

  • 大学入学選抜アプリケーションをシミュレートし、2つのデプロイメントモデル(マイクロサービスを1つのコンテナに統合する方法と、個別のコンテナにデプロイする方法)を用いた。
  • 両方のデプロイメント構成下でのサービス呼び出し応答時間を測定し、パフォーランスへの影響を評価した。
  • マイクロサービスアーキテクチャ(MSA)およびドメイン駆動設計(DDD)の原則を適用し、サービスの分解と細粒度の意思決定を支援した。
  • 特にネットワーク環境における通信オーバーヘッドの影響、特に遅延および帯域幅制限が生じる可能性がある環境での影響を評価した。
  • エッジコンピューティングおよびクラウドレットがIoTシナリオに与える影響を分析した。ここでは、マイクロサービスがローカルデバイスに共存させることでネットワーク依存度を低下させることができる。
  • 分散マイクロサービス環境におけるサービス間通信プロトコルとして、ZeroMQを参考にした。

実験結果

リサーチクエスチョン

  • RQ1クラウドベースのデプロイメントにおいて、マイクロサービスの細粒度はアプリケーションの遅延にどのように影響するか?
  • RQ2マイクロサービスを1つのコンテナにデプロイするのと、個別のコンテナにデプロイするのとで、パフォーランスにどのような差が生じるか?
  • RQ3細粒度の高いマイクロサービスアーキテクチャにおいて、ネットワーク通信のオーバーヘッドはエンドツーエンドの応答時間にどのように影響するか?
  • RQ4リソース制限のあるネットワーク環境におけるマイクロサービスデプロイメントパターンにどのような影響があるか?
  • RQ5ネットワーク帯域幅やデバイスの近接性といった環境要因が、最適なマイクロサービスの細粒度にどのように影響するか?

主な発見

  • 単一コンテナとマルチコンテナデプロイメントの間で、サービス呼び出しの遅延に顕著な差がなかった。これは、適切にオーケストレーションされたクラウド環境において、細粒度マイクロサービスが顕著なパフォーマンスコストを負わないことを示している。
  • 個別のコンテナにデプロイされたマイクロサービスは、共存するマイクロサービスと比較して遅延がわずかに増加したにとどまり、ネットワーク通信のオーバーヘッドが適切に設計されたシステムでは管理可能であることが示された。
  • 本研究では、ビジネス能力やチーム構造に基づく機能的分解が、パフォーマンス志向の細粒度よりもマイクロサービス設計においてより重要であることが判明した。
  • IoTシナリオ、特にエッジコンピューティングおよびクラウドレットを想定した場合、ネットワーク通信を減らし、耐障害性を向上させるために、粗粒度のサービスが好ましい場合がある。
  • 研究では、マイクロサービスの細粒度は文脈に応じたものでなければならないことが強調された。これは、デプロイ環境、ネットワーク制約、システムの信頼性要件に影響を受ける。
  • 研究結果は、通信パターンおよびデプロイ戦略を慎重に管理すれば、クラウドネイティブシステムにおいて細粒度マイクロサービスの実現可能性を支持している。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。