Student Računarskog fakulteta Luka Jelić je u petak, 16. juna 2023. godine odbranio diplomski rad na temu Mikroservisna arhitektura u FastAPI frejmvorku pred komisijom koju su činili mentor dr Bojana Dimić Surla i član dr Goran Rakočević.
U uvodu svog rada Luka je istakao sledeće:
Kreiranje API-ja, odnosno interfejsa za programiranje aplikacija, važan je deo da naš softver bude dostupan širokom spektru korisnika. Prilikom kreiranja API-ja, posao nam olakšavaju frejmvorci koji nam omogućavaju da se fokusiramo na funkcionalnost aplikacije na visokom nivou dok se sam frejmvork brine za sve funkcionalnosti niskog nivoa. U odabiru frejmvorka bitno je razmotriti:
● Zahteve – koliko je framework pogodan za vrstu softvera koju pravimo i da li nam može pomoći u zadovoljavanju funkcionalnih i nefunkcionalnih zahteva.
● Trenutne resurse – koliko je tim, koji treba da radi na projektu, iskusan u nekom frejmvorku, odnosno, ako tim nema iskustva, koliko je framework komplikovan da se nauči jer to utiče na brzinu razvoja samog softvera. Takođe, ukoliko se ne pravi novi projekat, koliko je frejmvork fleksibilan da se prilagodi već postojećem kodu ukoliko se planira njegovo refaktorisanje dodavanjem frejmvorka.
● Budućnost – razmisliti u kom pravcu projekat treba da ide u nekoj budućnosti, i da li će taj frejmvork zadovoljiti buduće zahteve, kao i koliku zavisnost frejmvork stvara između sebe i ostatka softvera, odnosno ako u nekom trenutku želimo da promenimo frejmvork, koliki će problem to biti?
● Dokumentacija i održavanje – ukoliko je frejmvork dovoljno dokumentovan onda je sam razvoj mnogo efikasniji, kao i postojanje zajednice za podršku koja, ako je velika i aktivna, može da pomogne u razvoju.
Jedan od frejmvorka koji, ako se uzmu u razmatranje prethodno navedene stavke, može da nam olakša razvoj veb API-ja jeste FastAPI.
…
U ovom radu, prikazan je serverski deo softvera za evidenciju polaznika, održanih časova i rezultata polaganja na kratkim programima koje organizuje fakultet u mikroservisnoj arhitekturi. Softver se može proširiti sa dodatnim elementima koji često čine jedan sistem zasnovan na mikroservisnoj arhitekturi, kao što su:
● API Gateway – ulazna tačka u sistem, klijent ne komunicira direktno sa servisima već samo sa API Gateway-om koji orkestrira zahteve potrebnim servisima.
● Service discovery – sistem koji nam omogućava da imamo informaciju o svim aktivnim servisima i njihovim instancama.
● Više mikroservisa – na primeru iz poglavlja 4, može da postoji poseban servis koji je zadužen za obaveštavanje studenata ili nekih drugih korisnika putem email-a ili notifikacija.
● Message broker – poseban interni servis zadužen za komunikaciju između servisa koji omogućavaju da servis koji je poslao poruku ne mora da čeka odgovor već da nastavi opsluživanje, dok servis koji dobija poruku može da je obradi kad mu odgovara.
● Distribuirani keš – postojanje distribuiranog keša ubrzava rad sistema zato što podatke možemo brže da dohvatimo iz keša nego pozivanjem nekog drugog servisa. Npr. ne moramo pozivati servis za studente svaki put da bismo dohvatili njihove e-mail adrese ako ih pre toga keširamo jer e-mail adresa nije podatak koji se često menja. – zaključio je Luka.
Fotografije sa odbrane dostupne su u galeriji.