Not logged in.

Contribution Details

Type Master's Thesis
Scope Discipline-based scholarship
Title Algorithmic Extraction of Microservices from Monolithic Code Bases
Organization Unit
Authors
  • Genc Mazlami
Supervisors
  • Harald Gall
  • Jürgen Cito
Language
  • English
Institution University of Zurich
Faculty Faculty of Business, Economics and Informatics
Date 2017
Abstract Text Driven by developments such as mobile computing, cloud computing infrastructure, DevOps and elastic computing, the microservice architectural style has emerged as a new alternative to the monolithic style for designing large software systems. Monolithic legacy applications in industry undergo a migration to microservice-oriented architectures. A key challenge in this context is the extraction of microservices from existing monolithic code bases. While informal migration patterns and techniques exist, there is a lack of formal models and automated support tools in that area. This thesis tackles that challenge by presenting a formal microservice extraction model to allow algorithmic recommendation of microservice candidates in a refactoring and migration scenario. A set of three coupling strategies is defined to mine structure information from monolithic code bases. A graph-based clustering algorithm is designed to extract microservice candidates from the model. The formal model is implemented in a web-based prototype. A performance evaluation demonstrates that the presented approach provides adequate performance. The rec- ommendation quality is evaluated quantitatively by custom microservice-specific metrics. The evaluation results exhibit satisfactory scores in all of the considered metrics. The results show that the produced microservice candidates lower the average development team size down to half of the original size or lower. Furthermore, the size of recommended microservice conforms with microservice sizing reported by empirical surveys and the domain-specific redundancy among different microservices is kept at a low rate.
Zusammenfassung Angetrieben durch Entwicklungen wie Mobile Computing, Cloud Computing Infrastrukturen, DevOps und Elastic Computing hat sich die Microservice-Architektur als neue Alternative für den Entwurf grosser Softwaresysteme etabliert. Existierende monolithische Systeme werden hin zu Microservice-Architekturen migriert. Eine entscheidende Herausforderung in diesem Kontext ist die Extrahierung von Microservices aus bestehendem monolithischem Quellcode. Hier- für existieren zwar informelle Migrations-Schemata und Techniken, jedoch gibt es einen Mangel an formalen Modellen und automatischen Werkzeugen zur Unterstützung in diesem Bereich. Diese Arbeit präsentiert ein formales Extrahierungsmodell, das es erlaubt Empfehlungen für Microservices in einem Refactoring-Szenario algorithmisch zu generieren. Drei Strategien zur Aggregierung struktureller Information von monolithischem Quellcode werden vorgestellt. Des Weiteren wird ein Graphen-basierter Extrahierungsalgorithmus hergeleitet, der aus dem formalen Modell Empfehlungen für Microservices extrahiert. Das vorgestellte formale Model wird in einem webbasierten Prototyp implementiert. Eine Performance-Evaluation des Prototyps demonstriert zufriedenstellende Leistungscharakteristiken. Die Qualität der extrahierten Empfehlungen wird durch spezifisch definierte Metriken evaluiert. Die Experimente liefern in allen betrachteten Metriken adäquate Ergebnisse. Die durchschnittliche Grösse der Entwicklung- steams wird durch die empfohlenen Microservices mehr als halbiert. Des Weiteren entspricht die resultierende Grösse der Microservices derjenigen, die in empirischen Studien erhoben wurde und die Redundanz zwischen den Domänen einzelner Microservices wird tief gehalten.
PDF File Download
Export BibTeX