Research on legacy monolith applications decomposition into microservice architecture
Santrauka
Microservice architecture is becoming the de facto industry standard for building new enterprise applications. According to the International Data Corporation, almost 90% of North American enterprises already use micro-service architecture to develop new and modernise legacy applications. Companies aiming to remain competitive have started modernising their legacy monolithic systems by decomposing them into microservices. However, extracting microservices from legacy monolithic software is an extremely complex task.
Although the topic of monolithic software migration into microservice architecture has already been explored by scientists and software engineers, it is a complex and relatively new challenge; therefore, little research exists on its many parts, such as database adaptation during the migration and communication establishment between microservices. Most research primarily focuses on microservice identification within monolith applications and source code decomposition into microservices. A new migration approach is proposed to bridge this gap. It consists of code decomposition and covers communication establishment and data management.
The dissertation consists of an introduction, four chapters, and general conclusions. The first chapter introduces microservice and monolithic architectures and discusses the existing migration from monolithic to micro-service architecture methods. In addition, three main parts are identified, and deeper research is provided for code extraction methods, communication between microservices, and data management. It also provides evaluation of existing methodologies for monolith decomposition into micro-services. The same enterprise application was decomposed into micro-services using three different methods. Based on the proposed evaluation criteria, the advantages and disadvantages of each decomposition method were determined. The second chapter presents the proposed approach for migrating legacy monolithic applications into microservices. The third chapter presents experimental research on possible communication technologies. Five communication technologies, such as HTTP Rest, RabbitMQ, Kafka, gRPC, and GraphQL, have been evaluated and compared using the proposed evaluation criteria. The fourth chapter presents an experimental evaluation of the proposed approach of monolithic database migration into multi-model polyglot persistence.
The dissertation’s results were published in 4 scientific publications, 2 of which were in reviewed scientific journals indexed in the Clarivate Analytics Web of Science database and presented at four international conferences. Mikroservisų architektūra tapo de facto pramonės standartu kuriant naujas taikomąsias programas. Tarptautinės duomenų korporacijos duomenimis, beveik 90 % Šiaurės Amerikos įmonių jau naudoja mikroservisų architektūrą naujai programinėj įrangai kurti ir senai programinei įrangai modernizuoti. Siekdamos išlikti konkurencingos, įmonės pradėjo modernizuoti savo monolitines programas, išskaidydamos jas į mikroservisus. Tačiau mikroservisų išgavimas iš senos monolitinės programinės įrangos yra labai kompleksinė užduotis.
Nors monolitinės programinės įrangos perkėlimo į mikroservisų architektūrą tema nagrinėta mokslininkų ir programinės įrangos inžinierių, tačiau tai yra palyginti naujas ir kompleksinis iššūkis. Daugumos tyrimų pagrindinis dėmesys skiriamas mikroservisams identifikuoti monolitinės programos išeities kode. O tokios temos kaip ryšio tarp mikroservisų užmezgimas ir duomenų bazės adaptacija yra vis dar mažai tyrinėjamos. Siekiant užpildyti šią spragą, siūlomas naujas perkėlimo metodas. Jį sudaro ne tik išeities kodo išskaidymas, bet ir ryšio užmezgimas tarp mikroservisų bei duomenų bazės adaptacija.
Disertacija sudaryta iš įvado, keturių skyrių ir bendrųjų išvadų. Pirmajame skyriuje pristatomos mikroservisų ir monolitinės architektūros bei aptariami esami migracijos iš monolitinės architektūros prie mikroservisų architektūros metodai. Papildomai išskiriamos trys pagrindinės perkėlimo dalys ir atlikti išsamesni tyrimai: kodo išgavimo metodų, komunikacijos tarp mikroservisų ir duomenų bazių adaptacijos. Pirmajame skyriuje taip pat tiriamos esamos monolitinės programinės įrangos skaidymo į mikroservisus metodikos. Ta pati programa buvo išskaidyta į mikroservisus, taikant tris skirtingus metodus. Remiantis pasiūlytais vertinimo kriterijais, nustatyti kiekvieno migravimo metodo privalumai ir trūkumai. Antrajame skyriuje pateikiamas siūlomas migracijos iš monolitinės architektūros į mikroservisų architektūrą metodas. Trečiajame skyriuje pristatomi eksperimentiniai komunikacijos technologijų tyrimai. Penkios komunikacijos technologijos, tokios kaip HTTP Rest, RabbitMQ, Kafka, gRPC ir GraphQL, buvo įvertintos ir palygintos pagal siūlomus vertinimo kriterijus. Ketvirtajame skyriuje pateikiamas siūlomas perkėlimo metodas ir eksperimentinis monolitinės duomenų bazės transformacijos į daugiamodelį poliglotinį modelį įvertinimas.
Disertacijos rezultatai buvo publikuoti 4 mokslinėse publikacijose, iš kurių 2 publikacijos, publikuotos žurnaluose, indeksuojamuose Clarivate Analytics Web of Science duomenų bazėje, ir pristatyti 4 mokslinėse konferencijose.