Cloud native development applied to the License Manager project
Cloud native vývoj a jeho aplikování na projekt License Manager
Authors
Supervisors
Reviewers
Editors
Other contributors
Journal Title
Journal ISSN
Volume Title
Publisher
České vysoké učení technické v Praze
Czech Technical University in Prague
Czech Technical University in Prague
Date of defense
Abstract
Tato diplomová práce se zaměřuje na nativní cloudový vývoj. V teoretické části popisuje jeho principy a principy architektury mikroslužeb. Teoretické poznatky jsou následně aplikovány na aplikaci pro prodej softwaru License Manager, která má v současné verzi monolitickou architekturu a je realizována nová nativní cloudová verze její backendové části. Praktická část pokrývá všechny fáze softwarového cyklu. V analýze je popsána stávající verze a jsou revidovány požadavky na novou verzi. Návrh popisuje dělení funkcí mezi mikroslužby a jejich spolupráci. Výsledkem fáze návrhu je distribuovaný systém se šesti mikroslužbami, který je následně implementován s využitím nové sady technologií zahrnující TypeScript, gRPC, RabbitMQ, GraphQL a grafovou databázi. Výsledný kód je pokryt jednotkovými testy a funkčnost systému jako celku ověřena integračními testy. Proces testování, sestavení a vydání nových verzí je automatizován. Součástí implementace je vzorové nasazení aplikace do Kubernetes včetně nástrojů pro monitorování aplikace. Výsledkem práce je nové řešení, které oproti původnímu umožňuje mimo jiné rychlejší změny, horizontální škálování a nabízí násobně vyšší výkon při stejném zatížení hardwaru.
This master thesis focuses on cloud native development. In the theoretical part it describes its principles and the principles of microservices architecture. The theoretical knowledge is then applied to a software sales application, License Manager, which has a monolithic architecture in its current version and a new native cloud version of its backend is implemented. The practical part covers all phases of the software cycle. In the analysis, the current version is described and the requirements for the new version are revised. The design describes the division of functions between microservices and their collaboration. The design phase results in a distributed system with six microservices, which is then implemented using a new set of technologies including TypeScript, gRPC, RabbitMQ, GraphQL and a graph database. The resulting code is covered by unit tests and the functionality of the system as a whole is verified by integration tests. The process of testing, building and releasing new versions is automated. The implementation includes a sample deployment of the application to Kubernetes, including tools for monitoring the application. The result of the work is a new solution that, compared to the original one, allows, among other things, faster changes, horizontal scaling, and offers multiple times better performance under the same hardware load.
This master thesis focuses on cloud native development. In the theoretical part it describes its principles and the principles of microservices architecture. The theoretical knowledge is then applied to a software sales application, License Manager, which has a monolithic architecture in its current version and a new native cloud version of its backend is implemented. The practical part covers all phases of the software cycle. In the analysis, the current version is described and the requirements for the new version are revised. The design describes the division of functions between microservices and their collaboration. The design phase results in a distributed system with six microservices, which is then implemented using a new set of technologies including TypeScript, gRPC, RabbitMQ, GraphQL and a graph database. The resulting code is covered by unit tests and the functionality of the system as a whole is verified by integration tests. The process of testing, building and releasing new versions is automated. The implementation includes a sample deployment of the application to Kubernetes, including tools for monitoring the application. The result of the work is a new solution that, compared to the original one, allows, among other things, faster changes, horizontal scaling, and offers multiple times better performance under the same hardware load.
Description
Citation
Underlying research data set URL
Permanent link
Rights/License
A university thesis is a work protected by the Copyright Act of the Czech Republic. Extracts, copies and transcripts of the thesis are allowed for personal use only and at one`s own expense. The use of thesis should be in compliance with the Copyright Act.
Vysokoškolská závěrečná práce je dílo chráněné autorským zákonem. Je možné pořizovat z něj na své náklady a pro svoji osobní potřebu výpisy, opisy a rozmnoženiny. Jeho využití musí být v souladu s autorským zákonem v platném znění.
Vysokoškolská závěrečná práce je dílo chráněné autorským zákonem. Je možné pořizovat z něj na své náklady a pro svoji osobní potřebu výpisy, opisy a rozmnoženiny. Jeho využití musí být v souladu s autorským zákonem v platném znění.