====== Projektowanie Systemów Rozproszonych ====== Część projektowa przedmiotu **Projektowanie Systemów Rozproszonych** polega na realizacji praktycznego projektu działającego w środowisku chmurowym, w którym studenci wykorzystują zdobytą wiedzę z przedmiotu [[students:zsr|Zarządzenie Systemami Rozproszonymi]]. W ramach projektu stosujemy takie podejścia jak //Infrastucture as a Code//, konteneryzacji, czy architektura Serverless. Tematyka projektu jest zasadniczo dowolna, byle możliwa do realizacji na chmurze. Jeśli to tematycznie możliwe, zachęcam do realizacji w ramach projektu części własnej pracy magisterskiej. **Termin deklaracji tematu projektu: 31.03.2025 r.** ===== Wymagania dotyczące projektu ===== - Ordered List ItemAplikacja działająca w środowisku chmurowym * Serverless (Wykorzystanie usługi typu Azure Functions, AWS Lambda, Cloud Run functions, itp.) * Kubernetes (Aplikacja wdrażana na klastrze K8s) - Wymagania pozafunkcjonalne * Wykorzystanie dowolnej usługi od dostawcy chmury (np. storage, zarządzana baza danych, wyszukiwarka, AI) * Kod źródłowy przechowywany w systemie kontroli wersji (GitLab Instytutowy, GitLab, GitHub) * Potoki CI/CD w wybranym narzędziu - Mile widziane * Powoływanie infrastruktury z poziomu kodu (Terraform) Każdy projekt powinien posiadać podstawową dokumentację, w której zawarte będą: * Opis aplikacji (jeden akapit) * Skrócona instrukcja obsługi (opis najważniejszych funkcjonalności z punktu widzenia użytkownika) * Diagram architektury aplikacji (wykorzystane usługi dostawcy chmurowej, liczba funkcji, mikroserwisów i zależności między nimi) Format dokumentacji: markdown, odt, pdf, latex... ===== Przykładowe tematy projektów ===== W przygotowaniu. ===== Oceniane będą ===== - Wykorzystanie możliwości środowiska uruchomieniowego, np.: * sposób wykorzystania funkcji chmurowych, * wykorzystane funkcje klastra K8s. - Spełnienie wymagań pozafunkcjonalnych. - Realność zaproponowanej architektury do rozwiązania (unikanie nadmiernego overengineering). - Jakość implementacji.