33 results on '"mikrostoritve"'
Search Results
2. Pakiranje in namestitev mikrostoritev Go v Kubernetes
- Author
-
BREGAR, VID and Jurič, Matjaž Branko
- Subjects
Docker ,microservices ,Helm ,Go ,vsebniki ,Ko ,containers ,mikrostoritve ,Kubernetes ,Ansible - Abstract
Za razvoj današnjih visoko skalabilnih storitev se je uveljavila arhitektura mikrostoritev v kombinaciji s programskim jezikom Go in platformo Kubernetes. V diplomskem delu bo predstavljeno pakiranje mikrostoritev Go v vsebnike in kako zgraditi čim boljšo sliko vsebnika s pomočjo platforme Docker in Ko kot alternative. Pri tem bo primerjanih več različnih slik z namenom ugotovitve pomembnosti optimizacije in izbire najboljše slike. Nato bo predstavljena namestitev vsebnika mikrostoritve Go v Kubernetes. Razložene bodo ugotovitve, težave in rešitve tem, kot so konfiguracija, skrivnosti, sonde delovanja, sonde pripravljenosti za strežbo, elegantna zaustavitev, odpornost na napake, upravljanje virov, skaliranje, poenostavitev namestitve s pomočjo Helm in avtomatizacija namestitve z Ansible. Microservice architecture in combination with Go programming language and Kubernetes platform has been adopted for the development of today's highly scalable services. The thesis will present how to package Go microservices into containers and how to build the best possible container image using the Docker platform and Ko as an alternative. Several container images will be compared to determine the importance of optimization and to find the best one. Then, deployment of such container image to Kubernetes will be presented. Findings, problems and solutions will be explained on topics such as configuration, secrets, liveness probes, readiness probes, graceful shutdown, fault tolerance, resource management, scaling, simplifying deployment with Helm and deployment automation with Ansible.
- Published
- 2022
3. Dinamična izdelava scenarijev za aplikacije obogatene resničnosti
- Author
-
Povšič, Nejc and Pogačnik, Matevž
- Subjects
dinamično dodajanje scenarijev ,računalniški vid ,microservices ,obogatena resničnost ,računalniška grafika ,computer graphics ,modern web application development ,razvoj sodobnih spletnih aplikacij ,mikrostoritve ,augmented reality ,dynamic creation of scenarios ,computer vision - Abstract
Obogatena resničnost postaja vedno bolj dostopna, predvsem zaradi hitrega razvoja mobilnih naprav, ki jo lahko z uporabo vedno bolj zmogljivih grafičnih procesorskih enot prikazujejo v realnem času. Aplikacije, ki uporabljajo obogateno resničnost, pa morajo še vedno ustvarjati razvijalci, ki dobro poznajo delovanje obogatene resničnosti in imajo veliko izkušenj na platformah, za katere aplikacijo razvijajo. V delu smo zato razvili spletno aplikacijo, preko katere lahko navaden uporabnik, ki nima izkušenj z obogateno resničnostjo, dinamično ustvarja scenarije za aplikacije obogatene resničnosti. Scenariji se lahko uporabijo za servisiranje strojev in naprav ter za šolanje uporabnikov. Preko spletnega vmesnika skrbnik nalaga poljubne oznake, preveri njihovo ustreznost in jih tudi testira z uporabo algoritmov za zaznavo in opis značilk. V samih scenarijih definira korake, ki jim bo končni uporabnik nato sledil v določenem zaporedju. Vsak korak je vezan na neko oznako, na končni napravi pa bo prikazal besedilo, animiran 3D model, sliko ali video posnetek z namenom razlage servisnega posega. Vsi podatki so nato preko zalednega dela, ki je osnovan na arhitekturi mikrostoritev, posredovani mobilni aplikaciji, ki jo je razvil Luka Bezovšek v sklopu svojega magistrskega dela. Ta dinamično pridobiva vse potrebne podatke, kar popolnoma izniči potrebo po ponovni gradnji in posodobitvi aplikacije na sami napravi. Augmented reality is becoming more and more accessible to end users due to the increase in processing power of mobile devices. The development of augmented reality applications however is still limited to developers who know how augmented reality works and who have a lot of experience developing for the chosen platforms. In this thesis we present a web application that the end user can operate to dynamically create scenarios for augmented reality applications. The administrator can also upload markers and analyze or test them using feature detection algorithms. In the scenarios they can define steps that the end user will follow on their device. Each step is linked to a marker and will include either text, a 3D model, an image or a video intended to explain the maintenance process. All the data is then sent by the back-end, which is based on microservices, to the mobile application developed by Luka Bezovšek in his thesis. The application dynamically fetches the data and gets rid of the need to rebuild or update the application on the end user's device.
- Published
- 2021
4. Quality of service-aware co-engineering of cloud applications
- Author
-
Štefanič, Polona and Stankovski, Vlado
- Subjects
Fog and Cloud Computing ,Microservices ,podgrafni izomorfizem ,Računalništvo v megli in oblaku ,Internet of Things ,Internet stvari ,mikrostoritve ,Subgraph Isomorphism ,Adaptation ,adaptacija - Abstract
Applications that make use of Internet of Things (IoT) capture an enormous amount of raw data from fixed and dynamically located sensors and devices. Currently, IoT devices send data directly to the cloud systems for processing to benefit from high availability, scalability, unlimited storage and pooled computing resources on the pay-per-use models. Due to ever-increasing and unpredictable data generation rates and varying demands of Iot-based applications on compute resources, sending the data towards the clouds can result in high latency, transmission costs and privacy issues which cannot efficiently support the overall Quality of Service (QoS) of latency-critical microservice-oriented applications. Recently, the emergence of Fog and Edge computing has enabled to move the services, data and processing power towards the network edge. However, there is lack of QoS-aware approaches that would fully address the QoS-aware reconfigurability of on-demand compute resources and service placement along Cloud-To-Things Computing Continuum. For this purpose, we propose a new P-Match method for QoS-aware distributed deployment and continuous adaptation of interactive and latency-critical applications composed of microservices. The P-Match method as an input data considers metrics obtained from virtual infrastructure monitoring and returns a set of QoS-aware infrastructure deployment options for the deployment of microservice-oriented applications. The P-Match method utilises a subgraph isomorphism matching that is based on requirements and resource matchmaking of an applications' components constraints towards the multi-level QoS metrics related to the Cloud-To-Things Continuum. The overall comparison of the P-Match method with MDP method also suitable for continuous adaptation reveals that for the particular set of microservices' constraints both methods proposed continuous deployment that satisfied the given QoS constraints. Though both methods gave QoS-aware solutions and satisfied the requirements, P-Match returned four times less powerful deployment options regarding infrastructure-level metric and consequently made more sustainable decision yet still enough to satisfy the particular QoS constraints. Since P-Match reached the same or better solutions than MDP method it obviously proves its correctness. Due to its lightweight nature, the P-Match method is suitable for the integration into service modelling frameworks and can be utilised particularly in the provisioning phase to support service placement, tasks and jobs scheduling and execution to specific (virtual) instances to satisfy application's QoS and contributes to the sustainable usage of compute resources, adjusts latency of microservices based on their requirements and data processing at instances where it is the most meaningful. Aplikacije, ki podpirajo internet stvari, zajemajo ogromne količine neobdelanih podatkov iz fiksnih in dinamičnih senzorjev ali naprav. Zaradi različnih zahtev mikrostoritvenih aplikacij po računskih virih, ki se lahko dinamično ter nepričakovano spreminjajo v realnem času in ki jih aplikacije potrebujejo za obdelavo podatkov, je postala potreba po izvajanju mikrostoritvenih aplikacij ter (re)konfiguraciji potrebnih računskih virov z namenom vzdrževanja kakovosti storitve teh aplikacij kritična. Aplikacije z večjimi zahtevami po računskih virih in obdelavi večje količne podatkov je možno poslati v podatkovne centre v oblakih, kjer so na razpolago visoka zmogljivost računskih virov, neomejen prostor za shranjevanje, visoka dostopnost. Podatkovni centri v oblakih se nahajajo najdlje od interneta stvari. Kljub velikim računskim zmogljivostim, pa je lahko obdelava vseh podatkov le v podatkovnih centrih cenovno draga in logistično zahtevna, kar se pozna pri daljšem odzivnem času aplikacij, večjih stroških prenosa ter nizke varnosti podatkov, zaradi česar kakovost storitve predvsem časovno kritičnih aplikacij ne more biti več ustrezno podprta. Ena izmed možnosti za obravnavo tovrstnega problema je decentralizacija mikrostoritvenih aplikacij. Razvoj računalništva v megli je omogočilo izvajanje storitev, procesiranje in analizo podatkov na robu omrežja, blizu interneta stvari, kar bi pomenilo nižji odzivni čas aplikacij in večjo varnost podatkov. Kljub velikemu raziskovalnemu interesu, obstaja še vedno veliko pomanjkanje učinkovitih pristopov, ki bi v celoti naslovili rekonfigurabilnost in izboljšano rabo računskih virov ter izbiro virtualnih instanc za namestitev mikrostoritev vzdolž računalništva v megli in oblaku. Namen doktorske disertacije je razvoj nove metode P-Match za izboljšano razporejanje in izvajanje mikrostoritev na instancah blizu interneta stvari ali v oblaku. Dinamično razporejanje mikrostoritev med podatkovnimi centri ter internetom stvari glede na zahteve po računskih virih, pomeni neprekinjeno prilagajaje računskih virov in posledično vzdrževanje kakovosti storitve časovno-kritičnih aplikacij. Metoda kot vhodne podatke prejme metrike pridobljene z monitoringom virtualne infrastrukture ter vrne set ustreznih (virtualnih) instanc za namestitev mikrostoritvene aplikacije. Metoda P-Match deluje na podlagi podgrafnega izomorfizma, ki temelji na ujemanju potrebe po računskih virih mikrostoritev z razpoložljivimi računskimi viri na infrastrukturi. Vrednotenje in primerjava metode P-Match s podobno metodo MPD, prav tako primerno za izboljšano razporejanje mikrostoritev, je pokazala, da za določen sklop zahtev mikrostoritev po računskih virih obe metodi predlagata takšno razporeditev mikrostoritev, ki zadošča vnaprej določenim zahtevam aplikacije ter vzdržuje izboljšano kvaliteto storitve. Čeprav sta obe metodi zadostili zahtevam, je metoda P-Match vrnila enake ali celo boljše rezultate v nekoliko hitrejšem času. Metoda P-Match je zaradi hitrega izvajanja primerna za integracijo v orodja za kreiranje mikrostoritev ter uporabo v fazi planiranja in prispeva k trajnostni rabi računskih virov, prilagaja odzivni čas mikrostoritev glede na njihove zahteve ter obdelavo podatkov tam, kjer je najbolj smiselna.
- Published
- 2021
5. Orkestracija na napake odpornih storitev v večoblačnih okoljih
- Author
-
MULEJ, MIHA and Sedlar, Urban
- Subjects
DevOps ,večoblačno okolje ,Docker ,microservices ,multi-cloud ,mikrostoritve ,MySQL ,Kubernetes ,WordPress - Abstract
Diplomsko delo predstavlja in opisuje pristop postavitve dveh Kubernetes gruč, ki sta na dveh različnih oblakih, v eno celoto. Cilj je doseči enotno gručo, ki deluje kot ena entiteta in kjer so si vsi Kubernetes objekti med sabo dosegljivi ne glede na to, v katerem oblaku so locirani. Na začetku dela so predstavljeni in opisani uporabljeni aplikacijski gradniki, ki so sestavni del spletne strani, ter predstavitev oblačne arhitekture in ubranega pristopa. Nato sledi podrobnejša predstavitev platforme Kubernetes in kaj omogoča ter razlaga vseh komponent, ki so bile uporabljene v nalogi in so odigrale pomembno vlogo v procesu postavitve sistema. V nadaljevanju je obrazložena teoretična razlaga za kreiranje večoblačne gruče in opis uporabljene platforme. Za tem sledi korak za korakom opisan postopek postavitve sistema poleg je priložena uporabljena programska koda s komentarji za lažje razumevanje. Nato so predstavljeni scenariji testiranja odpornosti aplikacije z ugotovitvami, katere instance storitve so na napake visoko dostopne ter katere ne. V zaključku so opisane ugotovitve, do katerih sem prišel, in komentar, ali je tak pristop v realnem svetu v tem trenutku smiseln ali malenkostno pretiran s finančnega vidika. The thesis addresses and describes the approach of creating a multi-cloud cluster with Kubernetes. The goal is to connect two clusters that are located on different clouds into one seemingly whole entity where all Kubernetes objects are accessible to each other no matter in which cloud they are located. At the beginning of the thesis, the main applications needed to build a website are presented and described, as well as a presentation of basic cloud architecture and multi-cloud approach. Afterward, the platform used for container orchestration is presented and described what it allows, as well as an explanation of all the components that were used in the assignment and played an important role in the system setup process. The following is a theoretical explanation for creating a multi-cloud cluster and a description of the platform used. This is followed by a step-by-step procedure for setting up the whole system accompanied by the code used with comments for an easier understanding. Then, application resilience testing scenarios are presented where we determine which service instances are highly available and which are not. In conclusion, the findings I have made are described, as well as a comment on whether such an approach makes sense in production in the real world or whether it is slightly exaggerated from a financial point of view.
- Published
- 2021
6. Uporaba dinamičnih programskih zastavic za obvladovanje funkcionalnosti oblačne storitve
- Author
-
GALJOT, LUKA and Jurič, Matjaž Branko
- Subjects
feature flags ,microservices ,web services ,dinamične nastavitve ,dynamic configuration ,continuous integration ,spletne storitve ,mikrostoritve ,sprotna integracija ,continuous deployment ,programske zastavice ,sprotno uvajanje - Abstract
V današnjem času si razvijalci spletnih storitev želijo preprostejši način razvijanja in testiranja novih funkcionalnosti v svojih produktih. To dinamične programske zastavice tudi omogočajo. Z njihovo uporabo lahko razvoj storitve lažje obvladujemo in določimo, kdaj bo določena funkcionalnost prešla v končno uporabo. V diplomskem delu smo proučili koncept programskih zastavic. Predstavili smo nekaj obstoječih ogrodij za upravljanje z zastavicami. Nato smo v sklopu naloge razvili novo storitev za upravljanje z zastavicami, ki odjemalcem zagotavlja dostop do nastavitev za aplikacijo. Kot odjemalca te storitve smo razvili preprosto mobilno aplikacijo, ki glede na prejete nastavitve spreminja svoje obnašanje. In today's world developers of web services strive to simplify their workflow of developing and testing new functionalities in their products. Feature flags allow this. Its use allows developers to easily manage and define when a specific feature comes to production stage. In this thesis we have studied the concepts of feature flags. We have described some commercial solutions for managing features and feature flags in web services and other products. We have then for the purpose of the thesis developed a new service which allows clients to request a set of feature settings. As a client we have developed simple mobile app which behaves according to the received settings.
- Published
- 2021
7. Analiza protokola RSocket in njegova uporaba v mikrostoritvah
- Author
-
BEČAJ, DOMINIK and Jurič, Matjaž Branko
- Subjects
RSocket ,microservices ,primerjava ,comparison ,HTTP ,mikrostoritve ,predstavitev ,presentation - Abstract
Protokol RSocket je asinhroni binarni protokol, ki omogoča bolj optimalen način komunikacije za današnje potrebe v porazdeljenih aplikacijah. Trenutno najbolj uporabljen protokol HTTP/1.1 s komunikacijskimi načeli REST ponuja le način komunikacije zahteve in odziva, kar pa ni vedno najboljši možen način komunikacije, zato je nastala potreba po protokolu, ki je bolj primeren. Ta diplomska naloga predstavlja nov protokol RSocket, ga primerja z obstoječim protokolom HTTP in se sprašuje, kaj je prednost njegove uporabe v mikrostoritvah. Za primerjanje protokola RSocket in protokola HTTP je bila razvita poizkusna aplikacija, sestavljena iz mikrostoritev. Rezultat poizkusa je pokazal, da je protokol RSocket hitrejši in bolj učinkovit pri komunikaciji med mikrostoritvami. Razlog za to je uporaba trajne povezave, bolj učinkovito gručenje sporočil v medpomnilniku in manjša glava sporočila. RSocket protocol is an asynchronous binary protocol, which is better suited for communication in distributed applications. The currently most used HTTP/1.1 protocol with the use of REST architectural style only offers request/response communication that is not always the best way to communicate, which is why there is a need for a protocol which offers a better way to communicate. This thesis presents the new RSocket protocol, compares it to the existing HTTP protocol and questions its advantages for use in microservices. A microservice application has been developed to compare protocols RSocket and HTTP. The result of this comparison shows that the RSocket protocol is faster and more efficient for communication between microservices. The reasons for this are: the use of persistent connection, a more efficient caching of requests and a smaller frame header.
- Published
- 2021
8. Postavitev mikrostoritvene platforme in uvajanje DevOps delovnega procesa v podjetju
- Author
-
HAREJ, JAN and Rožanc, Igor
- Subjects
DevOps ,CI/CD ,microservices ,platform ,Jenkins ,platforma ,mikrostoritve ,Kubernetes - Abstract
V zadnjih letih je večina pomembnejših podjetij v računalniškem svetu vklju-čno z oblačno tehnologijo prešla tudi na nove načine/procese dela. Implementacija novih textit{CI/CD} postopkov in DevOps delovnega toka je za podjetja tako skoraj obvezna. Z novimi načini se je tudi začela prenova delovnih tokov v ciljnem podjetju, ki je predstavljeno v diplomskem delu. V njem sledimo sprotnemu uvajanju DevOps delovnega toka vključno s predstavitvijo vseh potrebnih orodij, kot sta na primer textit{Kubernetes} in textit{Istio} ter postavitev zadanih konceptov, kot je na primer CI/CD cevovod. Na koncu se posvetimo analizi izboljšav ter pomanjkljivosti izvedenega. Opisali bomo posledice, ki jih lahko ima uvedba omenjenih tehnologij in konceptov ter kako te vplivajo na delo v podjetju. In the recent years the vast majority of bigger and influential IT companies in the world have, undergone a transformation to a cloud infrastructure, that allowed them to utilize new workflows and bussines models. The implementations of such new textit{CI/CD} and DevOps workflows is almost a must nowadays. With this in mind, the transformation of the targeted company began. This thesis follows the makeover and development of the microservices platform including all the necessary tools and support services, needed for it to run effectively. The results are evaluated and represented at the end. They are a valuable lessons to be learned, when some company undergoes this kind of a transformation.
- Published
- 2021
9. Arhitekturna zasnova prilagojenega prehoda API za mikrostoritve v okolju Kubernetes
- Author
-
Kajdič, Domen and Jurič, Matjaž Branko
- Subjects
prehod API ,microservices ,mikrostoritve ,Kubernetes ,API gateway - Abstract
Razvoj sistema Kubernetes je nedvomno prinesel velike spremembe pri razvoju mikrostoritev. Ne le, da se je spremenil način postavitve aplikacij, prilagoditi so se morala tudi druga uporabljena orodja. Primer tega so prehodi API, ki so sicer obstajali že pred tem, vendar niso bili zgrajeni na način, da bi izkoristili prednosti sistema Kubernetes. To se je kasneje spremenilo, ko so različna podjetja začela ponujati svoje rešitve. Tudi mi smo v okviru magistrskega dela zasnovali in implementirali svoj prehod API, ki je tesno integriran v sistem Kubernetes. Podpira funkcionalnosti usmerjanja, porazdeljevanja, omejevanja, blokiranja zahtev, preverjanje vitalnosti in varovalke. Za konfiguracijo poti usmerjanja prehoda API smo definirali lastni gradnik, ki je ena izmed razširitvenih možnosti sistema Kubernetes. Na koncu smo implementirani prehod API primerjali s prehodi API Ambassador, Kong in Gloo. Evalvacija je pokazala, da je implementirani prehod API v praksi uporaben, skalabilen in preprost za uporabo. The development of Kubernetes has undoubtedly changed the way microservices are developed. Not only has the deployment changed, but some tools also needed to be updated accordingly. API gateways are a great example of such tools. API gateways had existed before Kubernetes was first introduced, but they were never really programmed in a way to take advantage of the features provided by Kubernetes. This later changed when different companies started to develop specialized solutions. I also tackled this problem by designing and developing my own API gateway, with the main goal being a tight integration with Kubernetes. The implemented API gateway supports features such as routing, distributing, limiting and blocking requests, advanced health checks, and circuit breakers. I used one of Kubernetes's multiple extension points in the form of custom resource definitions to provide a routing configuration. In the latter part of the thesis, I compared the implemented API gateway with Ambassador, Kong and Gloo, which are all API gateways designed to work with Kubernetes. The evaluation has shown that the implemented API gateway is usable in practice, has good scaling, and is easy to configure.
- Published
- 2020
10. Arhitekturni model implementacije vzorca CQRS v okolju mikrostoritev
- Author
-
Kljun, Matija and Jurič, Matjaž Branko
- Subjects
skalabilnost ,microservices ,mikrostoritve ,CQRS ,scalability - Abstract
V delu je natančno analizirana arhitektura mikrostoritev in arhitekturni vzorec ločitve odgovornosti ukazov in poizvedb (CQRS). Predstavljene so prednosti, izboljšave in izzivi, ki jih prinaša aplikacija arhitekturnega vzorca CQRS v okolju mikrostoritev, kot so dodatne zmožnosti skaliranja, prilagodljivosti in zmogljivosti. Vzorec CQRS predstavlja rešitev upravljanja s podatki v porazdeljenem okolju mikrostoritev in omogoča izvajanje poizvedb v dogodkovno vodenih arhitekturah, ki temeljijo na vzorcu dogodkovnih virov (ES). Za podporo pri implementaciji vzorca CQRS v arhitekturi mikrostoritev je bila razvita razširitev za ogrodje KumuluzEE za razvoj mikrostoritev. Razširitev omogoča integracijo z ogrodjem Axon za razvoj aplikacij z vzorcema CQRS in ES. Razširitev nudi poenostavljeno konfiguracijo in uporabo potrebnih komponent za implementacijo vzorca CQRS. Rešitev je bila uporabljena za izdelavo vzorčne aplikacije, ki je temeljila na vzorcu CQRS in arhitekturi mikrostoritev. Na vzorčni aplikaciji so bili izvedeni testi skalabilnosti ločenih delov za branje in pisanje podatkov. Rezultati kažejo na uspešno in neodvisno skaliranje obeh delov. In the thesis, we present a thorough analysis of the microservice architecture and the architectural pattern of Command and Query Responsibility Segregation (CQRS). The benefits, improvements, and challenges of applying the CQRS pattern in a microservice environment are presented in terms of added scalability, flexibility, and performance. The CQRS pattern offers a solution for data management in a distributed microservices environment and supports querying in event-driven architectures, such as event sourcing (ES). To support the implementation of the CQRS pattern in microservice architecture, an extension for the KumuluzEE framework for developing microservices was developed. The extension enables integration with the Axon framework for developing an application based on CQRS and ES patterns. The extension allows for easier configuration and use of needed components for implementing the CQRS pattern. The solution was used to develop a test application based on the CQRS pattern and microservice architecture. The test application was used for running the scalability test to gain insight into the ability of independent scaling of the read and write side. The results have shown that both sides can be successfully and independently scaled.
- Published
- 2020
11. Visokoperformančne poizvedbe GraphQL z uporabo mikrostoritev
- Author
-
Štromajer, Tim and Jurič, Matjaž Branko
- Subjects
GraphQL ,web services ,microservices ,REST ,spletne storitve ,mikrostoritve - Abstract
Večina mikrostoritev danes med sabo komunicira preko REST storitev. Te dobro služijo svojemu namenu, dokler mikrostoritve ne zahtevajo pogosto spremenljivih in kompleksnejših struktur podatkov. Nekatera večja podjetja so se že odločila za izbiro poizvedovalnega jezika GraphQL, kjer odjemalec pridobi le tiste podatke, ki jih predhodno v poizvedbi deklarativno zahteva. Zaradi tega se med strežnikom in odjemalcem ne pošilja nobenih odvečnih poizvedb ali podatkov. V okviru diplomske naloge smo raziskali načine visokoperformančnega izvajanja poizvedb GraphQL. Med sabo smo primerjali že obstoječe platforme GraphQL Apollo Server, Graphene Python in GraphQL Java. Pokazali smo uporabo predpomnenja in trajnih poizvedb. Izdelali smo primer brezstrežniškega GraphQL APIja, pri čemer smo uporabili tehnologije GraphQL Apollo in Netlify. S pomočjo žetona JWT smo prikazali učinkovite poizvedbe z uporabo avtorizacije. Most microservices today communicate with each other through REST services. These serve their purpose well, as long as microservices do not require often variable and more complex data structures. Some larger companies have already decided to use the GraphQL query language, where the client obtains only the data that is previously declaratively requested in the query. As a result, no redundant queries or data are sent between the server and the client. As part of the diploma thesis, we investigated the methods of high-performance implementation of GraphQL queries. We compared the existing GraphQL platforms Apollo Server, Graphene Python and GraphQL Java. We demonstrated the use of caching and persistent queries. We created an example of a serverless GraphQL API, using GraphQL Apollo and Netlify technologies. We used JWT token to show efficient queries with the use of authorization.
- Published
- 2020
12. Urejanje in dostava video posnetkov z oblačno arhitekturo mikrostoritev
- Author
-
Zoretič, Uroš and Jakus, Grega
- Subjects
microservices ,računalništvo v oblaku ,cloud computing ,video chunks ,mikrostoritve ,spletna aplikacija ,video delčki ,web video editing ,web application ,video on demand ,video na zahtevo ,spletno urejanje videa - Abstract
Učinkovita in hitra distribucija video posnetkov na različna spletišča je ključnega pomena z vidika prepoznavnosti posameznika in podjetij. Še posebej to velja za podjetja, ki se ukvarjajo s produkcijo različnih multimedijskih vsebin za končne uporabnike. Video posnetke je potrebno pred objavo urediti in jih spremeniti v ustrezen format za predvajanje na spletu. Problem obstoječih rešitev je, da so izdelane po klasičnem monolitnem arhitekturnem vzorcu, kar otežuje nadgradnjo, nameščanje, vzdrževanje, učinkovito izrabo strojne opreme in integracijo v že obstoječe aplikacije in platforme za dostavo video posnetkov. Ustreznejše od monolitnih aplikacij so aplikacije, ki se izvajajo v oblaku, kar je postalo de facto standard za razvoj najrazličnih rešitev, kot so to na primer spletne aplikacije, internet stvari in pogovorni roboti. Aplikacije, ki se izvajajo v oblaku, so porazdeljene, prilagodljive, horizontalno razširljive, odporne na napake, visoko razpoložljive, nastavljive in največkrat sestavljene iz samostojnih namestitvenih enot, specializiranih za natančno določeno nalogo, imenujemo jih mikrostoritve. Mikrostoritve so običajno tudi šibko sklopljene in ustvarjene na zahtevo. Za zagotovitev njihovega ustreznega delovanja je mikrostoritve potrebno nadzirati z zbiranjem različnih vrednosti telemetrijskih metrik, dnevniških zapisov in sledenjem zahtevkov. Da se lahko mikrostoritve izvajajo na različnih oblačnih platformah, je potrebno njihovo izvajanje ločiti od posebnosti uporabljenih programskih jezikov, knjižnic, arhitekturnih vzorcev, strojne in programske opreme različnih strežnikov. To dosežemo z različnimi virtualizacijskimi tehnikami, med katerimi je najbolj primerna t. i. lahka virtualizacija z vsebniki. Zaradi velikega števila vsebnikov, v katerih se izvajajo mikrostoritve in njihove kompleksne topologije, je vsebnike potrebno upravljati z orkestracijskimi platformami in zagotoviti zanesljivo komunikacijo s storitvenimi mrežami. Zaradi lažjega obvladovanja običajno velikega števila mikrostoritev je njihovo gradnjo, nameščanje, testiranje in nadziranje priporočljivo izvesti avtomatizirano. Zaradi vseh omenjenih prednosti smo se po principu računalništva v oblaku zgledovali tudi pri izdelavi aplikacije za urejanje in dostavo video posnetkov. Učinkovitejšo pripravo posnetka za ponovno objavo smo dosegli z neposredno manipulacijo s posameznimi za splet pripravljenimi video delčki. Takšno rezanje in sestavljanje novih video posnetkov je hitro, saj se v večini primerov spreminjajo samo metapodatki video posnetkov. Kadar sistem zazna potrebo po dejanski spremembi določenega video delčka (npr. prvega ali zadnjega v posnetku), je običajno takšna operacija hitra, saj so video delčki običajno dolžine samo nekaj sekund. Po koncu urejanja novega posnetka je njegova objava na drugih spletiščih enostavna, saj se spremenijo samo indeksni in statusni zapisi v podatkovnih shrambah. Video posnetka tako ni potrebno še enkrat pretvarjati za objavo na spletu. Aplikacijo smo razdelili na čelni in zaledni del. Zaledni del aplikacije smo razvili z arhitekturo mikrostoritev, pri čemer vsaka mikrostoritev opravlja natančno določeno nalogo, kot na primer nalaganje, rezanje, ustvarjanje, predvajanje in shranjevanje video delčkov in njihovih metapodatkov. Za medsebojno komunikacijo mikrostoritve v večini primerov uporabljajo komunikacijski vmesnik gRPC, v posameznih primerih pa tudi GraphQL in REST. Izvedbene podrobnosti razvitih mikrostoritev smo zakrili z lahko virtualizacijsko tehnologijo Docker z vsebniki, ki se izvajajo na različnih javnih oblakih. Vsebnike v javnih oblakih upravlja orkestracijska platforma Kubernetes. Za zanesljivo komunikacijo v kompleksni topologiji mikrostoritev skrbi storitvena mreža Istio z orodjema za zbiranje podatkov o delovanju aplikacije Prometheus in Jaeger za sledenje zahtevkom. Kompleksnost zalednega dela smo odjemalcem skrili z uporabo aplikacijskega prehoda Istio Ingress. Aplikacijo je mogoče uporabljati preko spletnega uporabniškega vmesnika, ki je bil razvit po principu spletne aplikacije na eni strani in se izvaja kot brez-strežniška storitev v javnem oblaku. Efficient and fast distribution of video clips on the Web is crucial to achieve the desired visibility of an organization. This is especially true for companies that produce various multimedia content for users. Before publishing, videos need to be edited and then converted into the appropriate format for playback on the Web. The problem with existing solutions is that they are built with the classic monolithic architectural pattern, which makes it difficult to upgrade, install, maintain, efficiently use hardware and integrate into existing applications and video delivery platforms. Better than monolithic applications are applications running in the cloud, which has become de facto standard for developing a wide variety of solutions, such as web applications, Internet of Things, and chat robots. Applications running in the cloud are distributed, adaptable, horizontally scalable, fault-tolerant, highly available, configurable, and most often consist of stand-alone units specializing in a specific task called microservices. Microservices are usually weakly coupled and created on demand. To ensure their proper functioning, microservices need to be monitored by collecting various values of telemetry metrics, log records and distributed requests tracing. In order for microservices to run on different cloud platforms, it is necessary to separate their execution from the specifics of the used programming languages, libraries, architectural patterns, hardware and software on different servers. This is achieved through a variety of virtualization techniques. The most appropriate is the container based lightweight virtualization. Due to the large number of containers in which microservices are executed and their complex topologies, the containers need to be managed by container orchestration platforms and ensure reliable communication with service meshes. In order to facilitate the management of a usually large number of microservices, it is recommended to perform their compiling, installation, testing and monitoring automatically. Due to all the mentioned advantages, we followed the principles of cloud computing in the creation of an application for editing and delivering videos. More efficient preparation of the video clips for republishing was achieved by direct manipulation of individual video chunks already prepared for the Web. Such cutting and editing of new videos is fast, as in most cases only the metadata of the video clip and their chunks change. When the system detects the need to actually change a particular video chunk (e.g., the first or last in a video clip), such operation is usually quick, as the video chunks are usually only a few seconds long. After editing a new video, publishing it to other sites is easy, as only the indexes and status records in the databases change. With this way of editing, video clips don’t have to be converted again into the appropriate format for playback on the Web. The application was divided into a frontend and backend. The backend is developed with a microservice architecture, with each microservice responsible for a specific task, such as uploading, cutting, creating, playing and storing video clips, video chunks and their metadata. In most cases, the microservices use the protocol gRPC to communicate with each other, and in individual cases microservices also use query language GraphQL and communication interface REST. Microservices implementation details are abstracted with container based lightweight virtualisation technology Docker. Docker containers runs on different public clouds. Containers in public clouds are managed by the orchestration platform Kubernetes. Reliable communication in a complex microservice topology is ensured by the service mesh Istio. We also used tool Prometheus for collecting application data and tool Jaeger for distributed requests tracking. We concealed the complexity of the backend from the clients using the application gateway Istio Ingress. The application can be used via web graphical user interface, which was developed as as single page web application. The web-application run as a serverless service in the public cloud.
- Published
- 2020
13. Izdelava komponent za razvoj mikrostoritev v ogrodju .NET Core
- Author
-
JURŠIČ, ALEN and Jurič, Matjaž Branko
- Subjects
microservice health check ,microservices ,konfiguracija miksrostoritev ,NET Core ,microservice configuration ,mikrostoritve ,Consul ,Etcd ,preverjanje vitalnosti mikrostoritev ,odkrivanje mikrostoritev ,microservice discovery ,components - Abstract
Uporaba mikrostoritev je zadnje čase čedalje pogostejša, vendar je njihova izdelava lahko zelo zahtevna. Pri samem razvoju je potrebno paziti na veliko dejavnikov, ki nam lahko kasneje povzročajo probleme, na primer napake delovanja, sprememba konfiguracij in premestitev lokacije izvajanja mikrostoritev. V okviru te diplomske naloge so za omenjene probleme razvite tri komponente: komponenta za preverjanje vitalnosti mikrostoritev, konfiguracijo mikrostoritev in odkrivanje mikrostoritev. Komponente so razvite tako, da se lahko hitro in enostavno uporabijo pri razvoju mikrostoritev v ogrodju .NET Core, ki postaja vedno bolj priljubljeno. Microservices have become hugely popular in recent years, but their developement can still be very demanding. In the development itself, it is necessary to pay attention to many factors that can cause problems later. Some of these are operational errors, configuration changes, and relocation of running microservices. In this thesis, we developed three components for the mentioned problems: a component for health checking, a component for configuration and a component for service discovery. The developed components can be used quickly and easily in the development of microservices in the .NET Core framework, which is becoming more and more popular.
- Published
- 2020
14. Analysis and usage of API gateways in Kubernetes
- Author
-
RADOVIČ, BORIS and Jurič, Matjaž Branko
- Subjects
microservices ,Apache Kafka ,mikrostoritve ,Kubernetes ,Strimzi ,API gateway ,API prehod - Abstract
Containerization has marked a turning point in the way software gets developed: applications' functionalities, instead of being bundled inside of single and potentially very large code bases as is the case in monolith architectures, are split into smaller units, the microservices precisely, and even though these latter improve the backends of applications when it comes to flexibility, scalability, and some other aspects too, they bring along a whole lot of new challenges. For some of these, an API gateway might represent the solution, while others, that are introduced by the distributed nature every MSA (``microservices architecture'') application inherits, just have no way out, and force developers to make do. Furthermore, containerization never gained much attention when it comes to the data layer, but this aspect, mostly because of the developers' desire of having a standard way for managing both the data and the business layer, has been changing lately. In this light and with the aim to simplify the deployment of an Apache Kafka cluster inside of Kubernetes, the Strimzi project was born, and in this paper we describe two extensions that can be applied to the Strimzi Bridge, a microservice that decouples clients and Kafka brokers on one hand, and relieves these clients from the necessity of using the Kafka binary protocol on the other. These extensions, namely rate-limiting and content-based routing, aim to solve some conundrums that are in other situations dealt with by API gateways, so before proposing them, we shall carry out a comprehensive study of API gateways, after which it shall be clear, that MSA applications have common pitfalls, and that the solutions adopted to cope with them are almost standardized as well. Zaradi uvoda vsebnikov in nekaterih pomožnih tehnologij smo danes priča pravi prelomnici kar se tiče razvoja programske opreme. Vsebniki namreč omogočajo, da se funkcionalnosti aplikacij razdelijo na sorazmerno majhne enote, tako imenovane mikrostoritve, kar nasprotuje s tradicionalnimi aplikacijami, v katerih so vse funkcionalnosti združene znotraj ene same komponente. Kljub temu, da tak pristop k razvoju programske oprame izboljša fleksibilnost, razširljivost in še druge lastnosti na strani strežnika, le-ta prinaša tudi veliko novih izzivov. Za nekatere od teh obstajajo standardizirane ali celo skupne rešitve, kot so na primer API prehodi, medtem ko za druge, rešitve enostavno ni, saj porazdeljena narava aplikacij to prepreči. Vsebniki niso nikoli pridobili veliko pozornosti z vidika hranjenja podatkov, to dejstvo pa se sčasoma spreminja, saj želijo razvijalci imeti skupen pristop za upravljanje tako podatkovnega kot tudi logičnega sloja. V tej luči je tako nastal projekt Strimzi, t.j. projekt, ki omogoča postavitev Apache Kafka gruče v okolju Kubernetes. V tem izdelku bomo razširili Strimzi in dali možnost uporabmiku, da omeji dostop do Kafka posrednikov in upravlja usmerjanje sporočil na Strimzi Bridgeju, t.j. mikrostoritvi, ki omogoča komunikacijo med Kafka proizvajalci in Kafka posredniki potom protokola HTTP.
- Published
- 2020
15. OTS 2019 Advanced Information Technology and Services
- Subjects
blochchain technology ,spletne tehnologije ,augmented intelligence ,distributed infrastructures ,obogatena inteligenca ,programski jezik ,kibernetska varnost ,zborniki ,programsko inženirstvo ,udc:004.946.5:004.7(082) ,mobile applications ,strojno učenje ,virtualna okolja ,porazdeljene infrastrukture ,machine learning ,tehnologija veriženja blokov ,programming languages ,informatika ,informatics ,informacijske rešitve ,mikrostoritve ,agilne metode ,information solutions ,mobilne aplikacije ,software engineering - Abstract
Prispevki, zbrani v zborniku že 24. strokovne konference Sodobne informacijske tehnologije in storitve, naslavljajo izjemno aktualne izzive, s katerimi se informatiki, programski inženirji, računalničarji, podatkovni znanstveniki, arhitekti, razvijalci ter upravljalci informacijskih rešitev in storitev srečujemo pri svojem vsakdanjem delu. Avtorji predstavljajo inovativne rešitve in skozi konkretne projekte pridobljene izkušnje s/z: vpeljavo tehnologij strojnega učenja in obogatene inteligence, uporabo tehnologij in platform veriženja blokov, razvojem šibko sklopljenih mikrostoritev, popolno virtualizacijo in izkoriščanjem porazdeljenih infrastruktur, zagotavljanjem kibernetske varnosti, zaupnosti in zasebnosti, skaliranjem agilnih metod v porazdeljenih projektnih skupinah, vpeljavo agilnih pristopov v sklopu avtomatiziranih in neprekinjenih procesov razvoja, testiranja, integracije in dostave, posodobitvijo in nadgradnjo obstoječih informacijskih sistemov, razvojem uporabniško prijaznih spletnih in mobilnih rešitev in uvajanjem sodobnih programskih jezikov in razvojnih okolij. The papers in the proceedings of the 24th Professional Conference on Advanced Information Technology and Services address the extremely topical challenges that we (IS/IT experts, Software Engineers, Computer Scientists, Data Scientists, software and solution architects, developers, IT managers, etc.) encounter in our daily work. The authors present the innovative solutions and rich experience gained by conducting real-life projects: Applying Augmented Intelligence and Machine Learning technologies, Using Blockchain technologies and platforms, Developing loosely coupled micro-services, Providing full virtualization and exploitation of distributed infrastructures, Ensuring cybersecurity, confidentiality and privacy, Applying large-scale agile methods in distributed teams, Introducing agile approaches that enable the rapid and efficient software development via automated processes, and continuous testing, integration, delivery & deployment Updating and upgrading existing Information Systems, Incorporating advanced programming languages and development environments, Developing user-friendly web and mobile solutions & services.
- Published
- 2019
16. Razvoj sistema za podporo pametnemu domu
- Author
-
PEVEC, ŽAN and Bajec, Marko
- Subjects
microservices ,internet stvari ,smart home ,mikrostoritve ,internet of things ,pametni dom - Abstract
Tehnologije za postavitev pametnih domov so v zadnjih letih postale vse bolj priljubljene in razˇsirjene. Razlog za to je najverjetneje tudi razvoj cenovno dostopnih naprav za pametne domove, ki se poveˇzejo v omreˇzje in tako uporabnikom omogoˇcajo njihov nadzor na daljavo. Namestitev je obiˇcajno uporabnikom prijazna, vendar pa mnogo proizvajalcev za njihovo upravljanje zahteva lastno aplikacijo. Celostne reˇsitve za postavitev pametne hiˇse, ki ˇze od nekdaj omogoˇcajo centralni nadzor, pa so ostale drage. V okviru diplomske naloge smo razvili sistem, ki centralizira nadzor naprav za pametne domove na eno mesto. Slednje se vanj povezujejo preko omreˇzja s pomoˇcjo naˇse knjiˇznice oziroma predhodno definiranega protokola za komunikacijo. Razvili smo tudi vmesnik, ki uporabniku omogoˇca upravljanje pametnega doma. Sistem teˇce na mini raˇcunalniku Raspberry Pi. Nanj se preko omreˇzja povezujejo vgrajene naprave, ki temeljijo na projektu Arduino. Za slednjega smo razvili tudi knjiˇznico za komunikacijo s sistemom In the last few years, we can observe the rise of popularity of smart homes and related technologies. One of the reasons for this is the availability of affordable smart home devices, which connect to the network and thus allow users to control them from anywhere. Installation of these devices is usually very user-friendly and simple, so that people can install them themselves. However, most manufacturers require them to use their app to control these devices. Fully managed systems with a single control point have existed for a long time, but remain expensive and not as widely available. For this thesis, we have developed a system, which centralizes control of the smart home devices to a single interface. These devices connect to the system via network with the help of our library, based on our communication protocol. We have also designed and developed an interface that the user will use for controlling his smart home. The system runs on a small computer called Raspberry Pi and connects to embedded devices, based on Arduino.
- Published
- 2019
17. Mikrostoritve v ogrodju Quarkus
- Author
-
Bizjak, Matej and Jurič, Matjaž Branko
- Subjects
domorodne oblačne aplikacije ,microservices ,Java EE ,Quarkus ,domorodne slike ,GraalVM ,native images ,mikrostoritve ,cloud-native applicatios - Abstract
Veliko povečanje števila spletnih uporabnikov in pojav oblačnih storitev sta vodila do nastanka domorodnih oblačnih aplikacij. Oracle je s projektom GraalVM med drugim vpeljal možnost, da se javanske aplikacije predčasno prevedejo v strojno kodo. To znatno izboljša čas zagona in porabo pomnilnika aplikacije, kar je v domorodnih oblačnih okoljih zelo pomembno. Hitro je nastalo tudi prvo ogrodje za gradnjo domorodnih oblačnih aplikacij v domorodnem načinu, poimenovano Quarkus. V diplomskem delu proučimo GraalVM in ogrodje Quarkus ter ga primerjamo z ostalimi ogrodji. S Quarkusom razvijemo vzorčno aplikacijo, sestavljeno iz mikrostoritev, ki predstavlja zaledni del spletne trgovine in jo postavimo v Kubernetes. Njeno zmogljivost primerjamo z enakima aplikacijama v načinu JVM in ugotovimo, da se aplikacija v domorodnem načinu res veliko hitreje zaganja in je pri delovanju bolj učinkovita. The increasing number of Internet users and the arrival of cloud computing led to cloud-native applications. Oracle’s project GraalVM brought many new features. Among other things, it enables compiling Java applications into machine code ahead of time. This drastically improves the start-up time and it helps to reduce the memory usage of an application. Both of which is very important for cloud-native applications and therefore the first framework for building cloud-native applications in native mode named Quarkus was proposed. In the thesis we study the GraalVM and the Quarkus framework and compare it to other frameworks. We use Quarkus to build the sample cloud-native application, which represents a back-end of an online store. We deploy it on the Kubernetes and compare its performance to two same applications running on the JVM. We find out that the native application performs better than the other two. The start-up time is much lower and it is also more efficient.
- Published
- 2019
18. Porazdeljeno spremljanje izvajanja v arhitekturi mikrostoritev
- Author
-
JERIČ, DOMEN and Jurič, Matjaž Branko
- Subjects
distributed tracing ,microservices ,observability ,MicroProfile ,KumuluzEE ,mikrostoritve ,spremljanje izvajanja ,OpenTracing ,Jaeger ,porazdeljeno sledenje ,Zipkin - Abstract
Razvoj aplikacij v arhitekturi mikrostoritev prinaša ogromno prednosti, hkrati pa tudi nekaj novih izzivov. Enega izmed glavnih izzivov predstavlja spremljanje izvajanja. S spremljanjem izvajanja lahko bolje razumemo delovanje sistema, odkrijemo razloge za napake in vzroke za počasno delovanje aplikacije. V diplomski nalogi smo preučili različne pristope za spremljanje izvajanja, pri čemer smo se osredotočili na porazdeljeno sledenje. Ogledali smo si različne sisteme in načine za instrumentacijo aplikacij s porazdeljenim sledenjem. Razvili smo razširitev za odprtokodno ogrodje KumuluzEE -- KumuluzEE OpenTracing. Razširitev razvijalcem omogoča, da JAX-RS mikrostoritve enostavno opremijo s funkcionalnostjo porazdeljenega sledenja. Uporabnost razvite razširitve smo prikazali na praktičnem primeru. Microservices architecture brings many advantages over traditional monolithic architectures. Along with the advantages there come new challenges. One of the main challenges is observability. Observability enables us to better understand system behaviour, resolve errors and analyze performance bottlenecks. In the diploma thesis we studied different approaches for application observability. The main focus of this thesis was distributed tracing. We looked at different systems and ways to instrument microservices with distributed tracing. We developed an extension for the KumuluzEE framework -- KumuluzEE OpenTracing. Extension enables us to instrument JAX-RS microservices with distributed tracing, which we later demonstrate on a practical example.
- Published
- 2019
19. Analiza in primerjava spletnih storitev SOAP in protokola gRPC v okolju mikrostoritev
- Author
-
POROČNIK, GREGOR and Jurič, Matjaž Branko
- Subjects
microservice ,cloud-native ,protocols ,mikrostoritve ,računalniški oblak ,protokoli - Abstract
Razvoj storitev v oblaku nam je omogočil hitrejši razvoj programske opreme in olajšal nameščanje programske opreme na platforme, vendar pa nam je zaradi lastnosti distribuiranih sistemov pripeljal nove izzive na področje storitvenih protokolov, predvsem v medsebojni komunikaciji, spremljanju in upravljanju delovanja mikrostoritev v distribuiranih sistemih. V tem magistrskem delu smo se osredotočili na področje mikrostoritev, lastnosti distribuiranih sistemov in storitvenih protokolov v povezavi z okoljem mikrostoritev, pri čemer smo raziskali povezavo med hitrostjo, učinkovitostjo in primernostjo za delovanje v distribuiranih sistemih najpomembnejših protokolov mikrostoritev. Ker nekateri izmed protokolov nimajo popolne podpore za delovanje v ogrodjih za izdelavo mikrostoritev, smo definirali postopek vpeljave novih funkcionalnosti in podpore protokolom skozi integracijo programskih knjižnic. Tekom nastajanja magistrskega dela smo ugotovili, da so smernice razvoja protokolov zelo podobne, ko govorimo o zapisu pravil, v nasprotnem primeru pa se zelo razlikujejo na področju učinkovitosti in funkcionalne podpore. Prav tako smo ugotovili mnoge pomanjkljivosti protokola SOAP, zato smo za učinkovito delovanje v mikrostoritvah predlagali tudi izboljšave. Development of cloud services allowed us to speed up software development and make installing of software on platforms easier, but due to the characteristics of the distributed systems, this approach brought new challenges in the field of web service protocols, mostly intercommunication, monitoring and microservice operation management. In this master thesis we researched the field of microservices, the properties of distributed systems and web service protocols in relation to cloud-native applications. We studied the connection between speed, efficiency and suitability for the main protocols used by microservices. Since some of the protocols do not have complete support in frameworks that allow production of microservices, we defined the procedure to integrate new functionality and protocol support through the integration of program libraries. At the time of writing this thesis, we find that there are no major differences in principles of protocol description languages, despite the fact there are major differences in terms of effectiveness and functionalities. We assess that there are many downsides in the SOAP protocol, so we propose improvements by way of utilizing effective operations.
- Published
- 2018
20. Integracija odkrivanja storitev v sisteme upravljanja API-jev
- Author
-
Černelč, Jernej and Jurič, Branko Matjaž
- Subjects
microservices ,API Gateway ,API ,upravljanje APIj-ev ,service discovery ,mikrostoritve ,tehnologija odkrivanja storitev ,API management ,API prehod - Abstract
Porast števila API-jev v sodobnem svetu je danes nezanemarljiv. Monolitne aplikacije so začele prevzemati arhitekturo mikrostoritev, kjer se je število neupravljanih API-jev zaradi medprocesne komunikacije še povečalo. V diplomskem delu so predstavljene rešitve za upravljanje API-jev mikrostoritev, tehnologija odkrivanja storitev in njena integracija v sisteme upravljanja API-jev. Izvemo, kaj ti sistemi so, kdo jih potrebuje in zakaj se uporabljajo. Izpostavljene so ključne komponente in njihova nadgradnja z odkrivanjem storitev. The growing number of APIs in the modern world is nowadays non-negligible. Transformation from legacy monolithic applications into microservice architecture (MSA) led to even bigger number of unmanaged APIs caused by inter-process communication. This thesis presents solutions to API management for microservices, the technology of service discovery and its integration into API management systems. We present what these systems are, who needs them and why are they used for, while exposing their core components and their service discovery upgrades.
- Published
- 2018
21. Mikrostoritve v decentraliziranem okolju
- Author
-
HROVAT, PRIMOŽ and Jurič, Branko Matjaž
- Subjects
decentralizacija ,tehnologija veriženja podatkovnih blokov ,blockchain ,microservices ,decentralization ,mikrostoritve - Abstract
Mikrostoritve danes vztrajno prevzemajo primat v svetu razvoja programske opreme kjer nadomeščajo tradicionalne aplikacije. Način gradnje omogoča učinkovitejše skaliranje, distribuiranje in medsebojno odkrivanje. Aplikacije, grajene v arhitekturi mikrostoritev se večinoma izvajajo v ra-ču-nal-ni-ških oblakih. Učinkovitejše skaliranje in elastičnost mikrostoritvam omogoča ohranjati dobre performančne lastnosti in odgovoriti na tisoče so-časnih zahtevkov. Danes mikrostoritve za izvajanje zahtevajo centralizirano okolje strežnikov, skupaj s tehnologijo vsebnikov. V diplomski nalogi smo raziskali področje decentraliziranega izvajanja mikrostoritev in razvili prototip, ki demonstrira izvajanje mikrostoritev na platformi Ethereum. Zamišljamo si sistem, v katerem ne poznamo izpadov storitev ter dolgih odzivnih časov. V nalogi smo se osredotočili na decentralizirano odkrivanje storitev ter razvili prvi prototip aplikacije in razširitve za ogrodje KumuluzEE, ki demonstrirata decentraliziran način izvajanja. Gre za pomembno svetovno novost, ki ima potencial začrtati nove smernice v računalniški panogi. oday microservices are one of the leading design principles, when it comes to building modern applications. Monoliths are being replaced with this modern architecural style and multiple tools and techniques are being develop to support it. Applications are deployed to a computing center, often called simply as cloud. Elasticity and effective scaling of such applications in contrast to monoliths are needed for good performance and high response rates. We have analized the subjet of a decentralized execution and implemented a prototype platform based on Ethereum blockchain. We have proposed a conceptual solution to service discovery in a decentralized environment and presented a process, that enables decentralized execution of applications. We are standing on the edge of what we know is currently possible and are ready to push the boundaries even further. This can be the next big step in computer science.
- Published
- 2018
22. Razvoj mikrostoritev v programskem jeziku Go
- Author
-
Čebular, Martin and Jurič, Branko Matjaž
- Subjects
microservices ,Go ,service discovery ,mikrostoritve ,konfiguracija ,odkrivanje storitev ,configuration - Abstract
Arhitektura mikrostoritev je pristop k razvoju programske opreme, pri katerem celotno aplikacijo razdelimo na manjše dele, kjer vsak del opravlja podmnožico nalog aplikacije. Vsak ta del je nato razvit samostojno, na koncu pa te dele - mikrostoritve - povežemo skupaj v celoto. Posamezne mikrostoritve, ki sestavljajo aplikacijo, lahko razvijamo v različnih programskih jezikih in tehnologijah, med drugim tudi v programskem jeziku Go. V okviru diplomske naloge je bilo raziskano področje razvoja mikrostoritev v programskem jeziku Go, ter razvito ogrodje za konfiguracijo in odkrivanje mikrostoritev, namenjeno uporabi pri razvoju mikrostoritev v programskem jeziku Go. Microservice architecture is an approach for developing software as a service. The main point of this architecture is splitting an application into smaller parts, where each part performs a subset of application's tasks. Each of those parts is developed independently, and at the end, these parts - microservices - are connected together to form the complete application. Each microservice can be developed using different programming languages and technologies. Programming language Go is just one of the options. Goal of this thesis is to research the current state of microservices' development with Go, and developing a Go package for configuration and discovery of microservices, developed in the Go programming language.
- Published
- 2018
23. Spletne storitve z GraphQL
- Author
-
Kajdič, Domen and Jurič, Branko Matjaž
- Subjects
GraphQL ,web services ,microservices ,REST ,spletne storitve ,mikrostoritve - Abstract
Vsak razvijalec, ki sledi trendom, je že slišal za mikrostoritve in tehnologijo GraphQL. Čeprav se o novih tehnologijah veliko govori, se le mali delež razvijalcev odloči za njihovo uporabo. Glaven razlog pripisujejo nezrelosti tehnologij in netrivialni migraciji, ki je lahko včasih zamudnejša kot ponovni začetek razvoja. V okviru diplomske naloge smo tehnologijo GraphQL podrobneje raziskali in jo uvrstili v svet mikrostoritev. Primerjali smo jo s storitvami REST kot glavno alternativo in prikazali, v katerih primerih se nam jo splača uporabiti. Primerna je predvsem za aplikacije, ki vsebujejo poizvedovanje po kompleksnih podatkih z veliko relacijami, medtem ko so storitve REST primerne za preproste aplikacije. Kljub temu tehnologija GraphQL še vedno ni primerna za uporabo v mikrostoritah zaradi pomanjkanja programskih orodij. Zato smo za olajšanje razvoja mikrostoritev GraphQL razvili programsko rešitev KumuluzEE GraphQL. Uporabo rešitve smo prikazali na realnem primeru upravljanja fakultete in s tem prikazali njeno uporabnost v praksi. Every trend-following developer has heard of microservices and GraphQL. Even though new technologies are often discussed, only a minor share of developers decide to use them. The main reason is often found in immaturity of technologies and in untrivial migration, which is often more time-consuming than starting from scratch. In the context of the thesis the GraphQL technology was explored in detail and was placed in the world of microservices. It was compared to REST as its main alternative and the potential use cases were displayed. GraphQL was found to be the most suitable for complex applications with highly related data, while REST was found to be the most suitable for simple applications. Nevertheless, GraphQL is still not ready to be widely used in microservices due to the lack of software support. Therefore, we developed a tool to simplify the development of GraphQL microservices and presented its usage on an example. With that, we were able to show the usefulness of our tool on a real-life project.
- Published
- 2018
24. Zasnova in razvoj rešitve za dinamično odkrivanje mikrostoritev v oblačnih arhitekturah
- Author
-
Malc, Urban and Jurič, Branko Matjaž
- Subjects
microservices ,service discovery ,cloud-native ,etcd ,mikrostoritve ,Consul ,odkrivanje storitev - Abstract
Arhitektura mikrostoritev poleg številnih prednosti prinaša tudi nove izzive, ki jih pri tradicionalnih arhitekturah ne srečujemo. Eden izmed njih je problem dinamičnega dodeljevanja naslovov. Moderne aplikacije, grajene v arhitekturi mikrostoritev se izvajajo v vsebniških okoljih, saj ta omogočajo enostavno postavitev in horizontalno skaliranje mikrostoritev. Vsebniška okolja zaradi poenostavitve skaliranja naslove mikrostoritev dodeljujejo dinamično. Problem nastane pri komunikaciji med mikrostoritvami, saj so njihovi naslovi znani šele ob njihovem zagonu. Potrebno je dinamično odkrivanje naslovov mikrostoritev med samim izvajanjem. V diplomskem delu smo raziskali pomen odkrivanja storitev v arhitekturi mikrostoritev. Zasnovali in razvili smo sistem, ki razvijalcem omogoča enostavno registracijo in odkrivanje storitev v ogrodju KumuluzEE in predstavili njegovo delovanje z vzorčno aplikacijo, ki ta sistem uporablja. Z dinamičnim odkrivanjem mikrostoritev smo omogočili uporabo dinamičnega dodeljevanja naslovov mikrostoritvam in s tem olajšali njihovo integracijo s sodobnimi oblačnimi okolji. Microservice architecture offers many advantages over monolithic application design, but at the same time presents challenges, not present in traditional architectures. One of the challenges is handling dynamic allocation of microservice addresses. Modern applications, built in microservice arhitecture typically run in containerized environments, which enable simple deployment and horizontal scaling of microservices. Containerized environments usually allocate microservice addresses dynamically, as this simplifies the scaling process. Problem arises when communication between microservices is required. Since addresses of microservices are allocated when microservices are deployed, dynamic discovery of microservice addresses during runtime is required. In our thesis, we discuss the importance of service discovery in microservice architectures. We design and develop a system, which enables simple service registration and discovery in the KumuluzEE framework. We demonstrate the usage of the developed solution through a reference application. Dynamic service discovery enables the usage of dynamic address allocation in microservices, which alleviates their integration with modern cloud environments.
- Published
- 2017
25. Integracija pretočnih dogodkov in mikrostoritev z uporabo Apache Kafka
- Author
-
Kljun, Matija and Jurič, Branko Matjaž
- Subjects
Apache Kafka ,microservices ,event streaming ,messaging systems ,dogodkovni viri ,pretakanje dogodkov ,mikrostoritve ,event sourcing ,sporočilni sistemi - Abstract
Skozi zadnje desetletje so velika in uspešna internetna podjetja, kot so Netflix, Amazon in LinkedIn, arhitekturo mikrostoritev uporabile kot temelj svojega delovanja. Procesiranje tokov podatkov, izmenjava in agregiranje le teh s t. i. platformo za pretakanje dogodkov prav tako postaja vse bolj pomembno, saj prinaša večjo konkurenčnost, agilnost in odzivnost. V diplomskem delu so analizirane interakcije med mikrostoritvami in opisane platforme za pretakanje ter običajne sporočilne vrste. Natančneje je predstavljena platforma Apache Kafka in njeno delovanje. V sklopu naloge je bila razvita razširitev KumuluzEE Event Streaming, ki omogoča lažjo integracijo pretočnih dogodkov in mikrostoritev na platformi Java. Z razširitvijo se lahko Apache Kafka enostavno uporabi v sistemu mikrostoritev, saj nudi anotacije za pošiljanje in prejemanje sporočil ter procesiranje toka. Kot prikaz uporabe razširitve je bila razvita aplikacija za spletno knjigarno v arhitekturi dogodkovno vodenih mikrostoritev po vzorcih dogodkovnih virov in CQRS, ki temelji na uporabi Apache Kafke. Over the last decade, the microservice architecture has become a standard for big and successful internet companies, like Netflix, Amazon and LinkedIn. The importance of stream processing, aggregation and exchange of data is growing, as it allows companies to compete better and move faster. In this diploma, we have analyzed the interactions between microservices, described the streaming platform and ordinary message queues. We have described the Apache Kafka platform and how it works. We have developed the KumuluzEE Event Streaming extension for the Java platform that allow easy integration of event streaming and microservices. With the use of the extension, you can easily implement the Kafka platform in our microservice system. Our extension provides easy to use annotations for producing, consuming messages and stream processing. As a proof of concept, we have developed a sample bookstore application. It has been designed in the event driven microservice architecture with the use of event sourcing and CQRS patterns.
- Published
- 2017
26. Reaktivni model razvoja aplikacij z uporabo ogrodja Vert.x
- Author
-
Ožbot, Žan and Šprager, Sebastijan
- Subjects
reaktivno programiranje ,microservices ,KumuluzEE ,reactive programming ,Vert.x ,mikrostoritve - Abstract
Spletne in mobilne aplikacije postajajo čedalje bolj odzivne na dogodke v realnem času z namenom, da bi omogočile boljšo uporabnikovo izkušnjo. Za izdelavo takih aplikacij potrebujemo primerna orodja in reaktivno programiranje je ena izmed rešitev. Reaktivno programiranje postaja zaradi prednosti, ki jih ponuja, vedno večji razlog za opuščanje standardnega objektnega pristopa. V diplomskemu delu smo opisali koncepte reaktivnega programiranja in ga primerjali z objektnim pristopom. V nadaljevanju smo primerjali številna ogrodja za izdelavo reaktivnih aplikacij. Bolj podrobneje smo preučili ogrodje Vert.x, saj smo ga v sklopu diplomskega dela integrirali v odprtokodno ogrodje KumuluzEE, ki se uporablja za izdelavo mikrostoritev v Javi EE. Web and mobile applications consist of real-time events of different kinds in order to ensure the best possible user experience. To develop such applications, proper tools are needed and reactive programming is one of the possible solutions. Due to its many advantages, reactive programming is becoming an increasing reason to abandon standard object-oriented approach. Therefore, in this thesis we first describe the concepts of reactive programming and compare it to object-oriented programming. We continue by comparing numerous available frameworks for developing reactive applications. Framework Vert.x is described in more detail. Main contribution of this thesis is implementation of Vert.x in the open-source framework KumuluzEE which is used to develop microservices.
- Published
- 2017
27. Uporaba JavaEE mikrostoritev pri razvoju celovite rešitve za upravljanje s spletnimi oglasi
- Author
-
ANDREJC, GAŠPER and Smrdel, Aleš
- Subjects
JavaEE ,aplikacija ,microservices ,extension ,mikrostoritve ,spletni portal ,web portal ,razširitev ,application ,online ,spletni oglasi ,online advertisements - Abstract
Diplomska naloga govori o procesu razvijanja celovite rešitve za sledenje in upravljanje s spletnimi oglasi, kot pomoč uporabniku pri nakupu želenega izdelka. Končni izdelek diplomske naloge je rešitev, ki je sestavljena iz spletne aplikacije, mobilne aplikacije, razširitve v spletnem brskalniku ter zalednega sistema. Diploma poleg idejne zasnove predstavlja tudi uporabo JavaEE mikrostoritev in ostalih tehnologij ter argumentira, zakaj so izbrani okvirji najprimernejši za takšno rešitev. Cilj diplomske naloge je bil izdelati celovito rešitev, s katero bo nakupovanje rabljenih predmetov na spletu enostavnejše in učinkovitejše. Za enostavno povezovanje omenjenih odjemalskih delov rešitve ter dopuščanja odprtih možnosti pri nadgrajevanju, je osrednji del aplikacije zgrajen iz mikrostoritev, kar poleg omenjenih prednosti omogoča tudi skaliranje različno obremenjenih delov infrastrukture. Težnja je predvsem dodobra razviti zaledni del aplikacije, ne pa tudi vseh odjemalskih sistemov. Pri teh se osredotočamo predvsem na funkcionalnost in ne na estetiko, saj želimo bolj kot uporabniški vmesnik predstaviti sobivanje vseh teh sistemov celovite rešitve. Na koncu diplomske naloge predstavimo in opišemo napake, ki so bile storjene ob razvoju, ter težave, s katerimi smo se spopadali, ko smo aplikacijo prvič postavili pred uporabnike. The following thesis talks about developing a complete solution for following and manipulation of online advertisements. The end product of the thesis is comprised of web application, mobile application, browser extension and a backend system. Besides the conceptual design the thesis also presents the use of JavaEE microservices and other technologies, and also argues why the selected frame is the best for such a solution. Main goal of the thesis is to provide the end user with a solution, which allows for easier and more efficient buying of an used item. For easier development and potential upgrading of the solution in the future, the whole backend system is built using microservices, which besides mentioned advantages also allows for scaling of unequally loaded parts of the infrastructure. The main effort is to thoroughly develop the backend of the system and not all of the client parts. For the client parts of the system we focus mainly on functionality and not on the aesthetics, since we wish to describe the cohabitation of all parts of the system more thorougly than the user interface. At the end of the thesis we also introduce and describe all of the mistakes, which were made during the development, and also the problems, which we dealt with, when we introduced the application to end users for the first time.
- Published
- 2017
28. Zasnova visoko skalabilne arhitekture za razvoj lokacijsko odvisnih vmesnikov API v oblaku
- Author
-
Škrjanec, Marko and Jurič, Branko Matjaž
- Subjects
lokacija ,skalabilnost ,oblak ,architecture ,microservices ,REST ,API ,vmesnik API ,cloud ,mikrostoritve ,arhitektura ,scalability ,location - Abstract
Danes že na dnevni ravni uporabljamo storitve s kontekstno informacijo o lokaciji za izboljšanje uporabniške izkušnje. Lokacijske storitve so dobro opredeljene in zanje obstaja več arhitektur, predvsem v obliki monolitnih rešitev. Težava obstoječih arhitektur je v njihovi slabi skalabilnosti in nezmožnosti prilagajanju ogromni količini zahtevkov, ki smo ji priča danes. Težava obstoječih arhitektur se kaže tudi v nezmožnosti definicije in razvoja vmesnikov API, ki se odzivajo glede na lokacijo. V magistrski nalogi smo definirali arhitekturo, ki omogoča definicijo in razvoj lokacijsko odvisnih vmesnikov API tipa REST. Ključna lastnost vmesnikov API je določanje pravic dostopa in prilagajanje delovanja glede na lokacijo uporabnika. Pri definiciji arhitekture smo sledili konceptom mikrostoritev s ciljem doseganja elastične skalabilnosti, visoke razpoložljivosti, razumljivosti in neodvisnosti. Z uporabo koncepta mikrostoritev ter ostalih arhitekturnih in načrtovalskih vzorcev smo zasnovali arhitekturo, ki temelji na konceptih oblaka in omogoča visoko horizontalno skalabilnost. Uspešnost arhitekture smo potrdili z verificiranjem zmožnosti definicije vmesnika API tipa REST z različnim obnašanjem glede na lokacijo uporabnika, z možnostjo samodejnega skaliranja mikrostoritev v oblaku in z verifikacijo načrtovalskih vzorcev. We use services which use our location information to improve user experience on daily basis. Location-based services are well defined and can be built based on several existing architectures, especially in the form of a monolithic solution. Poor scalability and inability to handle immense loads are problems which existing architectures face today. Existing architectures also don't provide an option to define and develop location based APIs. In this master thesis we defined an architecture which allows the definition and development of APIs that respond based on user location. Key feature of the API is access control and adjusting functions based on user location. We based the architecture on microservices with the aim of achieving elastic scalability, high availability, understandability and decoupling. By using microservices and other architectural design patterns we designed an architecture which uses cloud concepts and enables high horizontal scalability. We validated the success of the architecture design by verifying the possibility of implementing an REST API with different behavior depending on the user location, the possibility of automatic scaling of microservices in the cloud and by verifying the design patterns.
- Published
- 2016
29. Analiza in uporaba vsebnikov Docker v arhitekturi mikrostoritev
- Author
-
BENEDIK, DEJAN and Jurič, Branko Matjaž
- Subjects
oblak ,microservices ,virtualizacija ,virtualisation ,vsebniki ,golang ,containers ,cloud ,mikrostoritve - Abstract
Za namene izvajanja spletnih aplikacij in storitev so vedno bolj priljubljene vsebniške tehnologije [9]. V tem diplomskem delu analiziramo najbolj razširjeno vsebniško tehnologijo Docker ter jo primerjamo z ostalimi vsebniškimi tehnologijami, ki delujejo na sistemih z jedrom Linux. Zaradi hitrega zagona in manjših obratovalnih stroškov so vsebniške tehnologije omogočile nov način zasnove zmogljivih spletnih aplikacij. Gre za arhitekturo mikrostoritev. Primerjamo jo z alternativami, pregledamo pomembne vidike izvajanja takih aplikacij, posebej pa pregledamo, kakšno vlogo imajo pri izvajanju vsebniške tehnologije. V praktičnem delu razvijemo spletno storitev, ki koristi vsebnike Docker ter omogoča osnovno izvajanje mikrostoritev ter horizontalno skaliranje komponent. Using container technology to run web applications and services is becoming increasingly common [9]. In this work we analyse the most popular container technology, Docker, and compare it with other Linux-based container technologies. Due to near-instant startup and minimal overhead, containers are facilitating a new way of designing software applications that is called microservice architecture. We analyse the approach and compare it with its alternatives. We examine some aspects of running such applications with container technology. Finally, we present the design and implementation of a Docker-based web service that allows us to run and scale microservices in a basic way.
- Published
- 2016
30. Using dockers to achieve continuous delivery of information solutions
- Author
-
Kohek, Christian and Heričko, Marjan
- Subjects
Docker ,microservices ,udc:[005.336.5:004]:658.788.48(043.2) ,neprekinjena dostava ,containers ,mikrostoritve ,continuous delivery ,zabojniki - Abstract
Diplomsko delo predstavlja tehnologije virtualizacije na nivoju operacijskega sistema in jih primerja s klasično virtualizacijo. Podrobneje so opisani implementacija zabojnikov Docker in orodja, ki tvorijo celovito platformo za delo z zabojniki. Uporaba zabojnikov je predstavljena skozi pregled procesa neprekinjene integracije, dostave in namestitve informacijskih rešitev. Pri tem je izpostavljena uporaba mikrostoritev in njihova dostava v zabojnikih. V praktičnem delu smo prikazali neprekinjeno integracijo, dostavo in namestitev mikrostoritve v zabojniku Docker v produkcijsko okolje. This thesis presents operating system level virtualization in comparison to classic hypervisor virtualization. It includes a detailed presentation of Docker containers and tools that form a complete platform for managing containers. The usage of containers is presented through the process of continuous integration, delivery and deployment. It emphasizes the usage of microservices and their delivery with containers. The practical part of this thesis presents the implementation of continuous integration, delivery and deployment of microservices with Docker containers.
- Published
- 2016
31. Kompleksna obdelava dogodkov za integracijo naprav v Internetu stvari
- Author
-
GJORGJESKI, NAUM and Jurič, Branko Matjaž
- Subjects
microservices ,računalništvo v oblaku ,kompleksna obdelava dogodkov ,Esper ,Internet of Things ,cloud computing ,complex event processing ,Internet stvari ,mikrostoritve ,Kubernetes - Abstract
Internet stvari (IoT) se kot relativno nova tehnologija sooča s številnimi izzivi. Za IoT omrežja je značilno, da jih sestavlja veliko število naprav. Vsaka od teh naprav generira ogromno količino dogodkov. Zato je skalabilnost ena od ključnih zahtev IoT aplikacij. Računalništvo v oblaku nam lahko pomaga doseči skalabilnost tako, da nam zagotavlja virtualno neomejene količine virov. Arhitektura mikrostoritev postaja vse bolj popularna za namestitev aplikacij v oblaku. Pogosto hočemo iz dogodkov, ki prihajajo iz IoT naprav, pridobiti informacije v realnem času. Težje bi bilo pridobiti uporabne informacije iz enormne količine neobdelanih dogodkov, če bi dogodke shranjevali v podatkovno bazo. Kompleksna obdelava dogodkov nam omogoča, da analiziramo dogodke in iz njih pridobivamo uporabne informacije v realnem času. Da bi vse to demonstrirali, smo razvili IoT aplikacijo, ki sledi načelom mikrostoritvene arhitekture. Aplikacija lahko simulira dogodke, jih sprejema, izvaja kompleksno obdelavo dogodkov in prikazuje vizualizacije. Mikrostoritev, ki sprejema dogodke, lahko skaliramo navzgor in navzdol s ciljem, da uravnotežimo obremenitev med instancami in dosežemo skalabilnost in elastičnost. As a relatively new technology, the Internet of Things (IoT) faces many challenges. IoT networks are characterized by a big number of devices. Each of the devices produces huge amount of events. Therefore, scalability is one of the key requirements of IoT applications. Cloud computing could help us achieve scalability by providing virtually unlimited resources. The microservices architecture is becoming increasingly popular for cloud deployments of applications. We often want to extract real-time information from the events that are coming from IoT devices. It would be harder to infer useful information from the enormous amount of raw events, if we store them in a database. Complex event processing enables us to analyze the events as the stream of events flows and to infer meaningful information from them in real time. To demonstrate all of this in practice, we developed an IoT application, which follows the principles of microservices architecture. It is able to simulate events, consume them, do complex event processing and display visualizations. In order to balance the load between the instances and achieve scalability and elasticity, the microservice which is consuming the events can be scaled up and scaled down.
- Published
- 2016
32. Vpeljava mikrostoritev v Java EE aplikacije
- Author
-
ARTAČ, BLAŽ and Mahnič, Viljan
- Subjects
skalabilnost ,service discovery ,java ,monolitne aplikacije ,microservice chassis ,fat jar ,synchronous and asynchronous communication ,mikrostoritvene šasije ,microservices ,mikrostoritve ,asinhrona in sinhrona komunikacija ,monolithic applications ,odkrivanje storitev ,samozadostni izvršljivi JAR ,scalability - Abstract
Zahtevnost (poslovnih) aplikacij se povečuje dnevno. Aplikacije morajo biti skalabilne, delovati na več platformah hkrati (splet, pametni telefoni …), se povezovati in integrirati z zunanjimi storitvami, obdelovati velike količine podatkov v kratkem času, biti prilagojene za delovanje v oblaku … Kljub novim izzivom pa se razvoja takih aplikacij še vedno lotevamo na monoliten način, ki postaja čedalje manj primeren za sodobno, hitro rastoče (oblačno) okolje. Kot odgovor na to so se pojavile mikrostoritve, ki obljubljajo rešitev, vendar hkrati skrivajo veliko pasti. V diplomski nalogi primerjamo oba načina razvoja aplikacij in pokažemo, kdaj je primerneje uporabiti enega in drugega. Podrobneje se usmerimo v razvoj mikrostoritev ter predstavimo koncepte in orodja, ki nam lahko pri tem pomagajo. Prikažemo različne načine za vpeljavo mikrostoritev v javanske aplikacije in na koncu enega izmed njih uporabimo za preoblikovanje obstoječe monolitne aplikacije v ekvivalentno rešitev z mikrostoritvami. Complexity of (enterprise) applications and software is increasing daily. Applications are required to be scalable, to operate simultaneously on different platforms (web, mobile …), to connect and integrate with external services, process large amounts of data in short time, to work in the cloud … Despite new challenges, the development of this kind of applications is still being resolved in a monolithic manner, which is becoming less and less suitable for modern, quickly growing (cloud) environment. Microservices try to address this challenges, but while providing certain solutions they also present new problems. In this thesis both styles are compared and it is shown when one is more appropriate for use than the other one. More specifically, focus is given on development of microservices and concepts and tools of trade, that can help along the way. Different ways of introducing microservices in Java applications are presented, according to application requirements, and one of them is used to transform existing Java monolithic application to microservices.
- Published
- 2016
33. Ogrodje za razvoj mikrostoritev v Javi in njihovo skaliranje v oblaku
- Author
-
FAGANEL, TILEN and Jurič, Matjaž Branko
- Subjects
mikrostoritve,skalabilnost,oblak,spletne aplikacije,java ee,docker ,web applications ,microservices,scalability,cloud,web applications,java ee,docker ,skalabilnost ,oblak ,spletne aplikacije ,microservices ,cloud ,mikrostoritve ,java ee ,scalability ,docker - Abstract
Uporaba spletnih aplikacij v zadnjih letih strmo raste, zato je način arhitekturne zasnove in razvoja takih aplikacij postal vedno pomembnejši. Arhitektura mikrostoritev naslovi potrebe sodobnih poslovnih aplikacij, ki imajo veliko število uporabnikov in se razvijajo iterativno. Osredotoča se na dekompozicijo aplikacij v manjše obvladljive funkcionalno zaključene storitve, ki jih neodvisno in samostojno upravljamo ter namestimo. Kljub temu razvoj pravih mikrostoritev v Javi EE s trenutnimi orodji ni mogoč. V ta namen smo v diplomski nalogi razvili ogrodje za razvoj mikrostoritev s pomočjo tehnologij Java EE. Omogoča nam, da izberemo komponente, ki jih nato ogrodje ustrezno inicializira in zapakira v samostojen arhiv, ki ga lahko poganjamo neodvisno brez zunanjih odvisnosti. Prav tako pa nam močno olajša namestitev in skaliranje razvitih mikrostoritev v oblačna okolja PaaS. Ključni doprinos diplomskega dela je razvoj izvirnega ogrodja za razvoj mikrostoritev v Javi EE, ki je prvo tako ogrodje za platformo Java in omogoča enostaven in hiter razvoj mikrostoritev. In recent years' usage of web applications has increased. Therefore, it has become increasingly important how these applications are designed and developed. The microservice architecture addresses the needs of modern business applications with a large number of users and iterative development. The architecture focuses on decomposing applications into small autonomous services which are deployed and managed independently. However, developing true microservices in Java EE is not possible with the currently available tools. In this thesis we designed and implemented a framework for developing microservices with stock Java EE technologies. The framework allows us to select the required Java EE components, which are then bootstrapped and packaged into an executable archive that has no external dependencies. It also greatly simplifies deploying and scaling developed microservices into various PaaS and other cloud environments. The key contribution of this thesis is an original framework for developing microservices using Java EE. It is the first such framework for the Java platform and enables easy and rapid development of microservices.
- Published
- 2015
Catalog
Discovery Service for Jio Institute Digital Library
For full access to our library's resources, please sign in.