Студент Рачунарског факултета Лука Јелић је у петак, 16. јуна 2023. године одбранио дипломски рад на тему Микросервисна архитектура у FastAPI фрејмворку пред комисијом коју су чинили ментор др Бојана Димић Сурла и члан др Горан Ракочевић.
У уводу свог рада Лука је истакао следеће:
Креирање API-ја, односно интерфејса за програмирање апликација, важан је део да наш софтвер буде доступан широком спектру корисника. Приликом креирања API-ја, посао нам олакшавају фрејмворци који нам омогућавају да се фокусирамо на функционалност апликације на високом нивоу док се сам фрејмворк брине за све функционалности ниског нивоа. У одабиру фрејмворка битно је размотрити:
● Захтеве – колико је framework погодан за врсту софтвера коју правимо и да ли нам може помоћи у задовољавању функционалних и нефункционалних захтева.
● Тренутне ресурсе – колико је тим, који треба да ради на пројекту, искусан у неком фрејмворку, односно, ако тим нема искуства, колико је framework компликован да се научи јер то утиче на брзину развоја самог софтвера. Такође, уколико се не прави нови пројекат, колико је фрејмворк флексибилан да се прилагоди већ постојећем коду уколико се планира његово рефакторисање додавањем фрејмворка.
● Будућност – размислити у ком правцу пројекат треба да иде у некој будућности, и да ли ће тај фрејмворк задовољити будуће захтеве, као и колику зависност фрејмворк ствара између себе и остатка софтвера, односно ако у неком тренутку желимо да променимо фрејмворк, колики ће проблем то бити?
● Документација и одржавање – уколико је фрејмворк довољно документован онда је сам развој много ефикаснији, као и постојање заједнице за подршку која, ако је велика и активна, може да помогне у развоју.
Један од фрејмворка који, ако се узму у разматрање претходно наведене ставке, може да нам олакша развој веб API-ја јесте FastAPI.
…
У овом раду, приказан је серверски део софтвера за евиденцију полазника, одржаних часова и резултата полагања на кратким програмима које организује факултет у микросервисној архитектури. Софтвер се може проширити са додатним елементима који често чине један систем заснован на микросервисној архитектури, као што су:
● API Gateway – улазна тачка у систем, клијент не комуницира директно са сервисима већ само са API Gateway-ом који оркестрира захтеве потребним сервисима.
● Service discovery – систем који нам омогућава да имамо информацију о свим активним сервисима и њиховим инстанцама.
● Више микросервиса – на примеру из поглавља 4, може да постоји посебан сервис који је задужен за обавештавање студената или неких других корисника путем емаил-а или нотификација.
● Message broker – посебан интерни сервис задужен за комуникацију између сервиса који омогућавају да сервис који је послао поруку не мора да чека одговор већ да настави опслуживање, док сервис који добија поруку може да је обради кад му одговара.
● Дистрибуирани кеш – постојање дистрибуираног кеша убрзава рад система зато што податке можемо брже да дохватимо из кеша него позивањем неког другог сервиса. Нпр. не морамо позивати сервис за студенте сваки пут да бисмо дохватили њихове e-mail адресе ако их пре тога кеширамо јер e-mail адреса није податак који се често мења. – закључио је Лука.
Фотографије са одбране доступне су у галерији.