CARGO: AI-Guided Dependency Analysis for Migrating Monolithic Applications to Microservices Architecture

07/24/2022
by   Vikram Nitin, et al.
0

Microservices Architecture (MSA) has become a de-facto standard for designing cloud-native enterprise applications due to its efficient infrastructure setup, service availability, elastic scalability, dependability, and better security. Existing (monolithic) systems must be decomposed into microservices to harness these characteristics. Since manual decomposition of large scale applications can be laborious and error-prone, AI-based systems to detect decomposition strategies are gaining popularity. However, the usefulness of these approaches is limited by the expressiveness of the program representation and their inability to model the application's dependency on critical external resources such as databases. Consequently, partitioning recommendations offered by current tools result in architectures that result in (a) distributed monoliths, and/or (b) force the use of (often criticized) distributed transactions. This work attempts to overcome these challenges by introducing CARGO(short for [C]ontext-sensitive l[A]bel p[R]opa[G]ati[O]n)-a novel un-/semi-supervised partition refinement technique that uses a context- and flow-sensitive system dependency graph of the monolithic application to refine and thereby enrich the partitioning quality of the current state-of-the-art algorithms. CARGO was used to augment four state-of-the-art microservice partitioning techniques that were applied on five Java EE applications (including one industrial scale proprietary project). Experiments demostrate that CARGO can improve the partition quality of all modern microservice partitioning techniques. Further, CARGO substantially reduces distributed transactions and a real-world performance evaluation of a benchmark application (deployed under varying loads) shows that CARGO also lowers the overall the latency of the deployed microservice application by 11

READ FULL TEXT

page 1

page 2

page 4

page 5

page 6

page 7

page 9

page 11

research
11/29/2018

Chiller: Contention-centric Transaction Execution and Data Partitioning for Fast Networks

Distributed transactions on high-overhead TCP/IP-based networks were con...
research
04/05/2018

Scaling Out Acid Applications with Operation Partitioning

OLTP applications with high workloads that cannot be served by a single ...
research
08/16/2019

Distributed Edge Partitioning for Trillion-edge Graphs

We propose Distributed Neighbor Expansion (Distributed NE), a parallel a...
research
03/07/2023

Scalable and Cost-effective Data Flow Analysis for Distributed Software: Algorithms and Applications

More and more distributed software systems are being developed and deplo...
research
06/20/2023

λFS: A Scalable and Elastic Distributed File System Metadata Service using Serverless Functions

The metadata service (MDS) sits on the critical path for distributed fil...
research
01/05/2022

Parallel Flow-Based Hypergraph Partitioning

We present a shared-memory parallelization of flow-based refinement, whi...
research
10/04/2018

Design and Evaluation of A Data Partitioning-Based Intrusion Management Architecture for Database Systems

Data-intensive applications exhibit increasing reliance on Database Mana...

Please sign up or login with your details

Forgot password? Click here to reset