Skip to main content
QUICK REVIEW

[論文レビュー] From Monolith to Microservices: Static and Dynamic Analysis Comparison

Bernardo Borba de Andrade, Samuel Lopes dos Santos|arXiv (Cornell University)|Apr 22, 2022
Software System Performance and Reliability被引用数 11
ひとこと要約

この論文は、モノリスシステムにおけるマイクロサービス境界の特定に向けた静的解析と動的解析の手法を比較し、類似度指標と複雑性メトリクスを用いて分解品質を評価する。静的解析と動的解析のどちらも一貫して優れているとは限らず、動的解析は著しく高い作業負荷を要し、カバレッジも低い結果となる。これは、同等の結果を得られるにもかかわらず、コストパフォーマンス比が劣ると示唆している。

ABSTRACT

One of the most challenging problems in the migration of a monolith to a microservices architecture is the identification of the microservices boundaries. Several approaches have been recently proposed for the automatic identification of microservices, which, even though following the same basic steps, diverge on how data of the monolith system is collected and analysed. In this paper, we compare the decompositions generated for two monolith systems into a set of candidate microservices, when static and dynamic analysis data collection techniques are used. The decompositions are generated using a combination of similarity measures and are evaluated according to a complexity metric to answer the following research question: which collection of monolith data, static or dynamic analysis, allows to generate better decompositions? As result of the analysis we conclude that neither of the analysis techniques, static nor dynamic, outperforms the other, but the dynamic collection of data requires more effort.

研究の動機と目的

  • モノリス移行プロセスにおけるマイクロサービス分解の品質を、静的解析と動的解析のどちらがより良く得られるかを評価すること。
  • データ収集手法(静的コード解析対比ランタイム動作観察)が分解品質に与える影響を評価すること。
  • モノリスから候補マイクロサービスを生成する際の類似度指標と複雑性メトリクスの比較。
  • 今後のマイクロサービス移行に関する研究を支援するため、公開可能なデータと設定可能なツールを提供すること。

提案手法

  • 研究では、モノリスを三元組 (F, E, G) として形式的にモデル化し、機能(F)、ドメインエンティティ(E)、コールグラフ(G)を表す。
  • 共有機能へのアクセスに基づいてドメインエンティティ間の結合度を定量化するため、3つの類似度指標(アクセス、読み書き、シーケンス類似度)を適用する。
  • 静的または動的データから導出された類似度行列にクラスタリングアルゴリズムを適用し、分解を生成する。
  • 複雑性メトリクスを用いて、トランザクション分布と相互作用のオーバーヘッドを測定することで、分解の品質を評価する。
  • 動的データはランタイムインストルメンテーションにより収集され、静的データは静的解析を用いてソースコードから抽出される。
  • 本手法では、専門家が定義した境界と比較して分解を評価し、定量的指標を用いてカバレッジと品質を測定する。

実験結果

リサーチクエスチョン

  • RQ1複雑性と品質の観点から、静的解析と動的解析のどちらのデータ収集手法が、より優れたマイクロサービス分解を生み出すか?
  • RQ2異なる類似度指標(アクセス、読み書き、シーケンス)は、生成された分解の品質にどのように影響するか?
  • RQ3マイクロサービス境界特定における動的データ収集と静的データ収集の間で、作業負荷とカバレッジのトレードオフはどのようなものか?
  • RQ4動的解析データは、高い作業負荷を伴うが、静的解析よりもより正確な分解をもたらす可能性はあるか?

主な発見

  • 静的解析と動的解析の両方において、高品質なマイクロサービス分解を一貫して得られるとは限らない。
  • 動的解析は静的解析と比較して著しく高い作業負荷を要し、データカバレッジも低かった。
  • 両手法で生成された分解の複雑性は同等であり、分散トランザクションの最小化という観点で同程度のパフォーマンスを示した。
  • 本研究では、動的解析のデータ収集が、リソース消費量の増加とカバレッジの不完全さにより、非効率であることが判明した。
  • 著者らは、今後の研究を支援するため、公開可能な動的解析データと設定可能なデータ収集ツールを提供している。
  • 結果として、同等の分解品質が得られるにもかかわらず、静的解析の方がコストパフォーマンス比が優れていると示唆された。

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

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

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

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