Predložená diplomová práca skúma problematiku mikroslužieb ako prostriedku pre návrh a vývoj komplexných aplikácii s možnosťou jednoduchej rozširovateľnosti a dlhodobej údržby, ktoré sú trendom agilného vývoja a dominujú na trhu informačných technológií. Cieľom diplomovej práce je zadefinovanie a popis architektúry mikroslužieb a následná implementácia aplikácie, ktorá je ukážkou a demonštráciou príkladu z praxe. V teoretickej časti sa práca zaoberá termínom architektúry mikroslužieb, porovnaním s monolitickou architektúrou, históriou a jej základnými princípmi. Praktická časť oboznamuje čitateľa s návrhom, implementáciou, testovaním a následným nasadením aplikácie architektúry mikroslužieb na základe zákazníckej požiadavky. Aplikácia je realizovaná pomocou frameworku Spring Boot v programovacom jazyku Kotlin, ktorý je nadstavbou programovacieho jazyka Java. V danom riešení je využitá početná škála nástrojov ako je napríklad poskytovateľ správ RabbitMQ, zapuzdrenie aplikácie do Docker kontajnerov a rozdelenie do jednotlivých Kubernetes zhlukov.
Anotace v angličtině
The presented diploma thesis examines the issue of micro services as a means for the design and development of complex applications with the possibility of easy scalability and long-term maintenance, which are a trend of agile development and dominate the information technology market. The aim of the diploma thesis is to define and describe the architecture of micro services and the subsequent implementation of the application, which is a sample and demonstration of an example from practice. In the theoretical part thesis deals with the term architecture of micro services, comparison with monolithic architecture, history and its basic principles. The practical part acquaints the reader with the design, implementation, testing and subsequent deployment of the application of the architecture of micro services based on customer requirements. The application is implemented using the Spring Boot framework in the Kotlin programming language, which is an extension of the Java programming language. The given solution uses a large range of tools such as the RabbitMQ message provider, encapsulation of the application into Docker containers and division into individual Kubernetes clusters.
Klíčová slova
Mikroslužby, Java, Kotlin, Spring Boot Framework, RabbitMQ, Docker
Klíčová slova v angličtině
Microservices, Java, Kotlin, Spring Boot Framework, RabbitMQ, Docker
Rozsah průvodní práce
120 s.
Jazyk
SK
Anotace
Predložená diplomová práca skúma problematiku mikroslužieb ako prostriedku pre návrh a vývoj komplexných aplikácii s možnosťou jednoduchej rozširovateľnosti a dlhodobej údržby, ktoré sú trendom agilného vývoja a dominujú na trhu informačných technológií. Cieľom diplomovej práce je zadefinovanie a popis architektúry mikroslužieb a následná implementácia aplikácie, ktorá je ukážkou a demonštráciou príkladu z praxe. V teoretickej časti sa práca zaoberá termínom architektúry mikroslužieb, porovnaním s monolitickou architektúrou, históriou a jej základnými princípmi. Praktická časť oboznamuje čitateľa s návrhom, implementáciou, testovaním a následným nasadením aplikácie architektúry mikroslužieb na základe zákazníckej požiadavky. Aplikácia je realizovaná pomocou frameworku Spring Boot v programovacom jazyku Kotlin, ktorý je nadstavbou programovacieho jazyka Java. V danom riešení je využitá početná škála nástrojov ako je napríklad poskytovateľ správ RabbitMQ, zapuzdrenie aplikácie do Docker kontajnerov a rozdelenie do jednotlivých Kubernetes zhlukov.
Anotace v angličtině
The presented diploma thesis examines the issue of micro services as a means for the design and development of complex applications with the possibility of easy scalability and long-term maintenance, which are a trend of agile development and dominate the information technology market. The aim of the diploma thesis is to define and describe the architecture of micro services and the subsequent implementation of the application, which is a sample and demonstration of an example from practice. In the theoretical part thesis deals with the term architecture of micro services, comparison with monolithic architecture, history and its basic principles. The practical part acquaints the reader with the design, implementation, testing and subsequent deployment of the application of the architecture of micro services based on customer requirements. The application is implemented using the Spring Boot framework in the Kotlin programming language, which is an extension of the Java programming language. The given solution uses a large range of tools such as the RabbitMQ message provider, encapsulation of the application into Docker containers and division into individual Kubernetes clusters.
Klíčová slova
Mikroslužby, Java, Kotlin, Spring Boot Framework, RabbitMQ, Docker
Klíčová slova v angličtině
Microservices, Java, Kotlin, Spring Boot Framework, RabbitMQ, Docker
Zásady pro vypracování
1. Sestavte informační přehled představující základní problematiku konceptu mikroslužeb.
2. Porovnejte systém založený na mikroslužbách s monolitickým systémem.
3. Navrhněte architekturu nového systému.
4. Popište klíčové prvky navrženého řešení.
5. Implementujte, nasaďte a otestujte dané řešení.
6. Vypracujte závěr a navrhněte směry budoucího vývoje.
Zásady pro vypracování
1. Sestavte informační přehled představující základní problematiku konceptu mikroslužeb.
2. Porovnejte systém založený na mikroslužbách s monolitickým systémem.
3. Navrhněte architekturu nového systému.
4. Popište klíčové prvky navrženého řešení.
5. Implementujte, nasaďte a otestujte dané řešení.
6. Vypracujte závěr a navrhněte směry budoucího vývoje.
Seznam doporučené literatury
1. NEWMAN, Sam. Building Microservices: O´Reilly, 2019. ISBN 9781492034025
2. RICHARDSON, Chris. Microservice Patterns: Manning Publications, 2019. ISBN 1617294543
4. CARNELL, John. Spring Microservices in Action: Manning Publications, 2017. ISBN 1617293989
5. DEEPAK, Vohra. Kubernetes Microservices with Docker: APress, 2016. ISBN 1484219066
6. VIDELA, Alvaro. RabbitMQ in Action: Manning Publications, 2012. ISBN 1935182978
Přílohy volně vložené
1 CD ROM
Přílohy vázané v práci
-
Převzato z knihovny
Ne
Plný text práce
Přílohy
Posudek(y) oponenta
Hodnocení vedoucího
Záznam průběhu obhajoby
Diplomant seznámil komisi s výsledky své diplomové práce. Poté byly prezentovány posudky vedoucího a oponenta diplomové práce. Poté byla vedena rozprava během které byly položeny následující dotazy: \nl
Student vypracoval velmi dobrou práci. Projevil schopnost samostatného tvůrčího a inženýrského myšlení. Pozitivně vyzdvihuji především návaznost jeho řešení na praxi. Vytýkám sníženou čitelnost některých obrázků. (dr. Vařacha)
Diplomová práce pana Bc. Matúše Kotuľa je rozsáhlá a zabývá se aktuálním tématem použití mikroslužeb při vývoji softwaru. Je zde dobře vysvětlen koncept mikroslužeb a následně je porovnán s monolitickou architekturou. Dále jsou zde podrobně popsány související technologie a frameworky a jejich výhody i nevýhody. Praktická část zahrnuje návrh, implementaci i nasazení nového systému pro hromadné generování marketingových materiálů ze šablon.
1) V jakých případech je vhodnější použít asynchronní komunikaci mezi mikroslužbami oproti synchronní?
2) Které metriky by bylo vhodné využít pro automatické škálování implementovaných mikroslužeb? (Ing. Pejla)
Spravujete vlastní cluster? Kolik máte kopií řešení, které používáte při vývoji? Dotaz k architektuře: Nenašel jsem autentizační server v prezentovaném schématu řešení. Pokud se týká validace, tak si musíte vše psát sám. (dr. Bližňák)
Diplomant pohotově reagoval a všechny otázky správně zodpověděl.