Architectural refactoring to microservices : a quality-driven methodology for modernizing monolithic applications
Date
Authors
Journal Title
Journal ISSN
Volume Title
Publisher
Abstract
Context and Problem: The microservices architectural style has revolutionized the way modern software systems are developed and operated, and has become the de facto standard for cloud-based applications. However, existing systems are often designed as monoliths, which are associated with inflexible processes, long release cycles, and an architecture incapable of leveraging the advantages of cloud environments. The adoption of microservices would require an architectural refactoring, entailing redevelopments of parts or even the entire application. Often associated with extensive manual effort, the targeted, quality-oriented, and semi-automated decomposition into a set of self-contained services remains problematic. Software architects look for resource-efficient ways to provide predictable results and guidance in this highly individual process. Objective: To systematically guide software architects and developers in modernizing their software systems, we seek to provide a holistic methodology for systematic and quality-driven migrations towards microservices. As part of it, we search solutions for the targeted and automated decomposition into services, and ways to support a quality-oriented design based on established patterns and best practices. Our work aims to provide industry-relevant methods that address the gap between academia and practice by facilitating the transfer of knowledge. Methods: In an overarching design science research process, we create a migration methodology that we implement as a web-based application. For analysis and evaluation, we apply established methods in empirical software engineering, such as case study research, surveys, and semi-structured interviews with experts. Our secondary research to summarize the current state of scientific advances relies on consecutive literature searches and rapid reviews, a lightweight method derived from systematic reviews. Contributions: Based on two primary empirical interview studies with 25 software professionals, we collected evidence on the intentions, strategies, and challenges of migrating monolithic applications to microservices, complemented by requirements for tool support and automation. Over four iterations, we reviewed 110 scientific publications on approaches for architectural refactoring and migration to microservices. To guide architects and developers in a migration process, we conceptualized a framework, along with a dedicated quality model that reflects a quality-driven migration process. Based on latest technologies and a modern user interface design, we realized our concept as a web-based application in an agile development process with early involvement of potential users. In a multi-faceted evaluation, we examined its ability to provide actionable guidance for practitioners. To this end, we conducted three surveys and one interview study with a total of 26 participants, complemented by two longitudinal case studies in an industrial context. Conclusion: We propose a holistic methodology for modernizing monolithic applications to microservices that comprises a framework and a dedicated quality model. Our contributions support architects in making informed decisions about microservices adoption, and furthermore guide them through a systematic transformation process. The evaluations showed an overall positive result in terms of effectiveness, usefulness, and usability, while both case studies demonstrated a successful application in an industrial environment. By sharing important study artifacts, we support researchers developing industry-focused methods, who can profit from our insights and experiences. Moreover, we regard our design science approach to leveraging academic research by practice as transferable to other scientific disciplines.
Kontext und Problemstellung: Der Microservices-Architekturstil als De-facto-Standard für Cloud-basierte Anwendungen hat die Art und Weise revolutioniert, in der moderne Softwaresysteme entwickelt und betrieben werden. Bestandssysteme sind jedoch oft als Monolithen konzipiert. Diese sind häufig mit langen Release-Zyklen und problematischer Wartbarkeit verbunden und können die Vorteile von Cloud-Umgebungen nicht ausschöpfen. Der Einsatz von Microservices erfordert jedoch ein Architektur-Refactoring, was mitunter die Neuentwicklung von Teilen oder sogar der gesamten Anwendung zur Folge hat. Architektinnen und Architekten von Anwendungssystemen suchen daher nach ressourceneffizienten Wegen, um Orientierung und prognostizierbare Ergebnisse in diesem höchst individuellen Prozess zu erlangen. Zielsetzung: Wir streben eine ganzheitliche Methodik zur systematischen und qualitätsgesteuerten Modernisierung bestehender Softwaresysteme hin zu Microservices an. Dabei suchen wir nach Lösungen für die gezielte und automatisierte Dekomposition in Services, eine besondere Herausforderung im Architektur-Refactoring. Um sicherzustellen, dass die resultierende Architektur vordefinierte Qualitätsziele erfüllt, soll deren qualitätsorientiertes Design durch etablierte Entwurfsmuster und bewährte Praktiken unterstützt werden. Darüber hinaus zielt unsere Arbeit darauf ab, Industrie-relevante Methoden bereitzustellen, um den Wissenstransfer zwischen Wissenschaft und Praxis zu fördern. Methoden: In einem übergreifenden Design-Science-Forschungsprozess entwickeln wir eine Migrationsmethodik, ergänzt durch eine Implementierung als webbasierte Anwendung. Für die Analyse und Evaluation setzen wir etablierte Methoden des empirischen Software Engineerings ein, wie z.B. Fallstudienforschung, Umfragen und Experteninterviews. Unsere Sekundärforschung zur Zusammenfassung des aktuellen Stands der Wissenschaft stützt sich auf konsekutive Literaturrecherchen und Rapid Reviews, einer leichtgewichtigen Methode, die sich von systematischen Literaturrecherchen ableitet. Forschungsbeiträge: Auf Basis zweier Interviewstudien mit insgesamt 25 Experten und Expertinnen aus der Software-Branche konnten wir Erkenntnisse über die Intentionen, Strategien und Herausforderungen im Migrationsprozess gewinnen, ergänzt durch Anforderungen hinsichtlich Tool-Unterstützung und Automatisierung. In vier Iterationen haben wir 110 wissenschaftliche Publikationen zum Architektur-Refactoring und Migrationen im Microservices-Kontext aufgearbeitet. Zur Anleitung und Unterstützung des Migrationsprozesses konzipierten wir ein Framework mit dediziertem Qualitätsmodell. Auf der Basis aktueller Technologien und eines modernen Benutzeroberflächen-Designs wurde unser Konzept als webbasierte Anwendung in einem agilen Entwicklungsprozess realisiert. In einer mehrstufigen Evaluation haben wir untersucht, inwieweit unsere Methodik Orientierung und Unterstützung für die Praxis bieten kann. Dazu führten wir drei Befragungsstudien und eine Interviewstudie mit insgesamt 26 Teilnehmern durch, ergänzt durch zwei Längsschnittstudien im industriellen Kontext. Fazit: Wir präsentieren eine ganzheitliche Methodik für die Modernisierung von monolithischen Systemen hin zu Microservices. Diese umfasst ein Framework mit dediziertem Qualitätsmodell und implementiert einen qualitätsgetriebenen Migrationsprozess. Unsere Beiträge unterstützen zunächst die systematische Entscheidungsfindung bei der Einführung von Microservices. Im Anschluss führt unsere Methodik durch den Transformationsprozess mit Fokus auf das Architektur-Refactoring. Die durchgeführten Evaluationen ergaben ein insgesamt positives Ergebnis in Bezug auf Wirksamkeit, Nützlichkeit und Benutzerfreundlichkeit, während beide Fallstudien eine erfolgreiche Anwendung im industriellen Umfeld zeigten. Indem wir wichtige Studienartefakte zur Verfügung stellen, unterstützen wir Forscherinnen und Forscher bei der Entwicklung ähnlicher Industrie-fokussierter Methoden. Darüber hinaus betrachten wir unseren Design-Science-Ansatz zur Nutzung akademischer Forschung in der Praxis als übertragbar auf andere Wissenschaftsdisziplinen.