dc.description.abstract |
Głównym celem pracy była analiza i porównanie degradacji wydajności popularnych systemów propagacji wiadomości.
Rosnąca popularność architektury zorientowanej na serwisy, a w szczególności rozwój architektury mikroserwisów rozwiązał część problemów w świecie IT. Systemy są łatwiej skalowalne horyzontalnie dzięki powszechnej wirtualizacji i konteneryzacji. Same mikroserwisy dzięki temu, że pokrywają tylko ograniczone kontekstem elementy z domeny biznesowej są łatwiejsze w projektowaniu, implementacji i utrzymaniu. Jednak takie podejście do architektury tworzy nowe nietrywialne wyzwania, z którymi trzeba się zmierzyć, aby w pełni móc wykorzystać potencjał jaki ta architektura oferuje.
Jednym z problemów jest integracja pomiędzy serwisami, przy bardzo dużej ilości aplikacji, ciężko jest kontrolować jaka usługa komunikuje się z którą i za pomocą jakiej technologii. Dodatkowo mogą się pojawić problemy ograniczające swobodę wyboru języka programowania, gdy jeden mikroserwis udostępni swój interfejs w technologii dostępnej tylko dla danej platformy – jak na przykład Java Remote Method Invocation.
Kolejnym z problemów jest rosnący ruch i wolumen danych jaki jest przekazywany pomiędzy serwisami. Coraz częściej komunikacja synchroniczna jest za wolna i negatywnie wpływa na zadowolenie użytkowników z działania interfejsu udostępnionego w aplikacji. Skutkuje to bardzo długimi czasami oczekiwania. Ten problem można rozwiązać za pomocą komunikacji synchronicznej, jednak jest ona znacznie trudniejsza do zaimplementowania w końcowych usługach i bardziej podatna na błędy programisty.
Wprowadzenie rozproszonych systemów propagacji wiadomości do takiej architektury w znacznym stopniu ułatwia projektowanie aplikacji oraz może rozwiązać niektóre z problemów jakie pojawiają się przy tworzeniu skomplikowanych systemów. Niniejsza praca sprawdza w jaki sposób i czy zaproponowane narzędzia rozwiązują powyższe problemy. Dodatkowo porusza kwestię złożoności tych narzędzi i możliwości zastosowania ich w już istniejącej infrastrukturze działającego systemu.
Poruszone zostały również kwestie degradacji wydajności tych systemów w odpowiedzi na różne scenariusze użycia i ich podstawowe możliwości konfiguracyjne. |
pl_PL |