Co znajdziesz na tej stronie?
Opis pracy
Wprowadzenie do tematyki pracy
W ostatnich latach architektura mikroserwisowa zyskała na popularności w świecie inżynierii oprogramowania. Podejście to pozwala na tworzenie skalowalnych i elastycznych aplikacji, które są łatwiejsze do zarządzania i rozwijania w porównaniu do tradycyjnych monolitycznych systemów. Mikroserwisy umożliwiają podział aplikacji na mniejsze, niezależnie rozwijane jednostki, co sprzyja szybszemu wprowadzaniu zmian, lepszej dostępności i wydajności.
Jednakże, złożoność związana z komunikacją między mikroserwisami może stanowić poważne wyzwanie. W tym kontekście, Service Mesh stał się popularnym rozwiązaniem. Jest to infrastrukturalna warstwa, która zapewnia zautomatyzowane zarządzanie ruchem, bezpieczeństwem, obserwowalnością i innymi aspektami komunikacji pomiędzy mikroserwisami.
Celem pracy jest zaprojektowanie i implementacja Service Mesh w architekturze mikroserwisowej z wykorzystaniem języka Java. W ramach projektu zostaną zaprezentowane kluczowe mechanizmy działania Service Mesh, takie jak zarządzanie ruchem sieciowym, obsługa bezpieczeństwa, integracja z istniejącymi mikroserwisami oraz optymalizacja komunikacji między usługami. Praca skupi się również na wyborze odpowiednich narzędzi i technologii, takich jak Istio i Envoy, które będą odpowiedzialne za implementację tych mechanizmów w systemie. Praca ma na celu nie tylko teoretyczne omówienie zagadnienia, ale także praktyczne zastosowanie technologii w rzeczywistym systemie, uwzględniając wyzwania związane z zarządzaniem ruchem, bezpieczeństwem i monitorowaniem komunikacji pomiędzy mikroserwisami.
Zakres pracy inżynierskiej obejmuje:
- Analizę obszaru tematycznego poprzez przeprowadzenia analizy istniejących odpowiedników, nowoczesnych technologii i środowisk programowania.
- Projektowanie i rozwój aplikacji, gdzie opisane wymagania funkcjonalne i niefunkcjonalne, procesy biznesowe aplikacji oraz struktura bazy danych.
- Implementacja aplikacji na Java., w tym tworzenie i implementacja aplikacji.
- Testowanie aplikacji z wykorzystaniem różnych narzędzi i technik testowania.
W rozdziale pierwszym przedstawiono ogólne założenia i motywację do wyboru tematu. W kolejnych częściach pracy omówione zostaną podstawowe zasady działania mikroserwisów i Service Mesh, projektowanie systemu, implementacja oraz testowanie zaprezentowanego rozwiązania.
Spis treści pracy
1. Analiza obszaru tematycznego
1.1. Analiza istniejących odpowiedników i prototypów
1.2. Analiza aktualnych technologii tworzenia aplikacji
1.2.1. Konteneryzacja i zarządzanie zasobami
1.2.2. Service Mesh
1.2.3. Komunikacja między mikroserwisami
1.2.4. Bezpieczeństwo
1.2.5. Monitorowanie i logowanie
2. Rozwój aplikacji
2.1. Wymagania funkcjonalne
2.2. Wymagania niefunkcjonalne
2.3. Procesy biznesowe aplikacji
2.3.1. Przypadki użycia
2.3.2. Diagram klas
2.4. Baza danych
2.4.1. Struktura bazy danych
2.4.2. Definicja schemata
2.4.3. Integracja bazy danych z systemem
2.4.4. Bezpieczeństwo i rozszerzalność
3. Implementacja aplikacji
3.1. Struktura drzewa projektu
3.2. Implementacja funkcjonalności
3.2.1. Równoważenie obciążenia (Load Balancing)
3.2.2 Uruchamianie mikroserwisów jako procesów
3.2.2.1. Zarządzanie procesami
3.2.2.2. Elastyczność i skalowalność
3.2.3. Zarządzanie mikroserwisami przez Menadżera i Agenta
3.2.3.1. Interakcja z systemem: Menu zarządzania mikroserwisami
3.2.3.2. Wybór mikroserwisu i zarządzanie jego instancjami
3.2.3.3. Zatrzymywanie mikroserwisów
3.2.3.4. Uruchamianie i skalowanie mikroserwisów
3.2.3.5. Wlaczenie wszystkich mikroserwisów
3.2.3.6. Podsumowanie zarządzania mikroserwisami
3.2.4. Interakcje klienta z aplikacją
3.2.4.1. Komunikat powitalny
3.2.4.2. Rejestracja I Logowanie
3.2.4.3. Dodawanie i wyświetlanie postów
3.2.4.4. File transfer
3.2.4.5. Wylogowanie
3.2.4.6. Exit
3.2.4.7. Pomoc
4. Testowanie
5. Repozytorium na GitHub
6. Podsumowanie
7. Literatura
8. Źródła elektroniczne
9. Spis ilustracji
10. Spis tabel