Microservices are reshaping the IT industry by offering more flexibility and scalability with respect to the traditional monolith architectures. Nowadays, microservice architecture has become a predominant architectural style in the service-oriented software industry. Global companies like Netflix, Amazon or Zalando are already transforming their IT infrastructures into microservice architectures. However, migrating a monolith application to microservices is not an easy journey and usually relies on an expert with high knowledge of the system. Therefore, in the last years, several studies aiming to facilitate the decomposition process emerged. Nonetheless, it remained a complex and tedious task that needs to be further investigated. We introduce a semi-automatic approach to services decomposition by providing a simplified model describing a monolithic application. We built a prototype tool, Pangaea, which builds on this model to extract candidates microservice cuts starting from annotations written directly in the code comments. Parsing these annotations, Pangaea extracts loosely coupled and high cohesive services by analyzing the original application’s behaviour. We developed a parser that processes all the annotations included in a codebase, which use the provided information to quantify the dependency between the application’s different modules. These numbers are then used to formulate a Mixed- Integer Linear Programming (MILP) problem, aiming to find the optimal placement of data and operations into a predefined number of microservices. We evaluated Pangaea on a production application, and the obtained results suggest that Pangaea is a promising tool that can guide the decomposition process, giving valuable insights about possible decompositions to architects. We are confident that future work can even provide alternative approaches such as heuristics to reduce the time required to find a solution.

I microservizi stanno rimodellando il settore IT offrendo maggiore flessibilità e scalabilità rispetto alle tradizionali architetture monolitiche. Oggigiorno, l’architettura a microservizi è diventata uno stile architettonico predominante nel settore del software orientato ai servizi. Aziende globali come Netflix, Amazon o Zalando stanno già trasformando le proprie infrastrutture IT in architetture a microservizi. Tuttavia, la migrazione di un’applicazione monolitica ai microservizi non è un compito facile e di solito si affida ad un esperto con un’elevata conoscenza del sistema. Pertanto, negli ultimi anni, sono emersi diversi studi volti a facilitare il processo di decomposizione. Nonostante ciò, è rimasto un compito complesso e tedioso che deve essere ulteriormente approfondito. Noi introduciamo un approccio semiautomatico alla scomposizione dei servizi fornendo un modello semplificato che descrive un’applicazione monolitica. Abbiamo sviluppato un prototipo, Pangaea, che si basa su questo modello per estrarre i tagli dei microservizi candidati a partire dalle annotazioni scritte direttamente nei commenti del codice. Elaborando queste annotazioni, Pangaea estrae servizi poco accoppiati e altamente coesi analizzando il comportamento dell’applicazione originale. Abbiamo sviluppato un parser che elabora tutte le annotazioni incluse in una codebase, che utilizza le informazioni fornite per quantificare la dipendenza tra i diversi moduli dell’applicazione. Questi numeri vengono quindi utilizzati per formulare un problema MILP (Mixed-Integer Linear Programming), con l’obiettivo di trovare il posizionamento ottimale di dati e operazioni in un numero predefinito di microservizi. Abbiamo valutato Pangaea su un’applicazione reale in produzione e i risultati ottenuti suggeriscono che il nostro è uno strumento promettente in grado di guidare il processo di decomposizione, fornendo agli architetti preziose informazioni sulle possibili decomposizioni. Siamo fiduciosi che il lavoro futuro possa persino fornire approcci alternativi come euristiche per ridurre il tempo necessario per trovare una soluzione.

Pangaea : semi-automatic monolith decomposition into microservices

STAFFA, SIMONE
2020/2021

Abstract

Microservices are reshaping the IT industry by offering more flexibility and scalability with respect to the traditional monolith architectures. Nowadays, microservice architecture has become a predominant architectural style in the service-oriented software industry. Global companies like Netflix, Amazon or Zalando are already transforming their IT infrastructures into microservice architectures. However, migrating a monolith application to microservices is not an easy journey and usually relies on an expert with high knowledge of the system. Therefore, in the last years, several studies aiming to facilitate the decomposition process emerged. Nonetheless, it remained a complex and tedious task that needs to be further investigated. We introduce a semi-automatic approach to services decomposition by providing a simplified model describing a monolithic application. We built a prototype tool, Pangaea, which builds on this model to extract candidates microservice cuts starting from annotations written directly in the code comments. Parsing these annotations, Pangaea extracts loosely coupled and high cohesive services by analyzing the original application’s behaviour. We developed a parser that processes all the annotations included in a codebase, which use the provided information to quantify the dependency between the application’s different modules. These numbers are then used to formulate a Mixed- Integer Linear Programming (MILP) problem, aiming to find the optimal placement of data and operations into a predefined number of microservices. We evaluated Pangaea on a production application, and the obtained results suggest that Pangaea is a promising tool that can guide the decomposition process, giving valuable insights about possible decompositions to architects. We are confident that future work can even provide alternative approaches such as heuristics to reduce the time required to find a solution.
CUGOLA, GIANPAOLO
ING - Scuola di Ingegneria Industriale e dell'Informazione
28-apr-2021
2020/2021
I microservizi stanno rimodellando il settore IT offrendo maggiore flessibilità e scalabilità rispetto alle tradizionali architetture monolitiche. Oggigiorno, l’architettura a microservizi è diventata uno stile architettonico predominante nel settore del software orientato ai servizi. Aziende globali come Netflix, Amazon o Zalando stanno già trasformando le proprie infrastrutture IT in architetture a microservizi. Tuttavia, la migrazione di un’applicazione monolitica ai microservizi non è un compito facile e di solito si affida ad un esperto con un’elevata conoscenza del sistema. Pertanto, negli ultimi anni, sono emersi diversi studi volti a facilitare il processo di decomposizione. Nonostante ciò, è rimasto un compito complesso e tedioso che deve essere ulteriormente approfondito. Noi introduciamo un approccio semiautomatico alla scomposizione dei servizi fornendo un modello semplificato che descrive un’applicazione monolitica. Abbiamo sviluppato un prototipo, Pangaea, che si basa su questo modello per estrarre i tagli dei microservizi candidati a partire dalle annotazioni scritte direttamente nei commenti del codice. Elaborando queste annotazioni, Pangaea estrae servizi poco accoppiati e altamente coesi analizzando il comportamento dell’applicazione originale. Abbiamo sviluppato un parser che elabora tutte le annotazioni incluse in una codebase, che utilizza le informazioni fornite per quantificare la dipendenza tra i diversi moduli dell’applicazione. Questi numeri vengono quindi utilizzati per formulare un problema MILP (Mixed-Integer Linear Programming), con l’obiettivo di trovare il posizionamento ottimale di dati e operazioni in un numero predefinito di microservizi. Abbiamo valutato Pangaea su un’applicazione reale in produzione e i risultati ottenuti suggeriscono che il nostro è uno strumento promettente in grado di guidare il processo di decomposizione, fornendo agli architetti preziose informazioni sulle possibili decomposizioni. Siamo fiduciosi che il lavoro futuro possa persino fornire approcci alternativi come euristiche per ridurre il tempo necessario per trovare una soluzione.
File allegati
File Dimensione Formato  
Pangaea-semiautomatic-monolith-decomposition-into-microservices.pdf

accessibile in internet solo dagli utenti autorizzati

Descrizione: Thesis PDF Document
Dimensione 8.68 MB
Formato Adobe PDF
8.68 MB Adobe PDF   Visualizza/Apri

I documenti in POLITesi sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/10589/173392