Mikroszolgáltatásokra épülő konténer-alapú rendszer megvalósítása

2020-2021 tavasz

Nincs megadva

Téma leírása

A mikroszolgáltatások szoftver architektúra előnye, hogy magas rendelkezésre állású, stabil, tranziens hibáknak ellenálló, jól skálázható rendszereket építhetünk. Mindezt kombinálva a konténer technológiákkal, könnyen telepíthető és jól karbantartható rendszert kapunk, ahol akár naponta többször is lehetőségünk van új verziót kiadni a szoftverből (pl. egy webalkalmazás esetén) - ha megfelelő CI/CD folyamataink vannak.

A téma során egy ilyen rendszert kell kifejlesztened.

Konkrét feladat

A konkrét feladat egy egy olyan webalkalmazás megvalósítása, amely legalább három mikroszolgáltatásra bomlik, és azok együtt adnak egy funkcionális alkalmazást. A mikroszolgáltatásoknak Docker konténerben kell futniuk.

A webalkalmazás témája lehet egy az alábbiak közül, vagy saját ötlet:

- Projektek és "meeting minutes"-ek kezelése: megbeszélésekről napló vezethető, amelyet eltárol a rendszer, és visszakereshetőek; a projektekhez emberek rendelhetőek, csak ők látják a projekt naplóit. A napló elkészültéről email kerül kiküldésre.
- Hirdetési portál: hirdetők kampányokat indíthatnak (itt: reklám képek feltöltése), amelyet a hirdető megjelenít (itt: egy weboldalon megjelenített képek). A kampányokhoz feltételek köthetőek, pl. megjelenési szám, gyakoriság. A hirdetési kampányért fizetni kell (itt: aszinkron fizetési rendszer véletlen eredménnyel).
- Saját ötlet hasonló komplexitással.

Előkövetelmények


A feladat célja egy komplex rendszer elkészítése az architektúra specialitásaira koncentrálva. Ennek során számos technológia felhasználására van szükség. Ezen téma kereteiben azonban limitált a technológiai ismerkedésre fordítható idő, ezért a téma sikeres teljesítéséhez szükséges az alábbi technológiák ismerete:

- Konténer technológiák, Docker használata, docker-compose használata.
- Tetszőleges backend technológia (ASP.NET Core, Java Spring, NodeJS, ...) amely adatbázis elérésére és REST API kiszolgálására képes.
- Single-page application (SPA) frontend keretrendszerek (Angular, React, Vue.js, ...) legalább alapvető szinten.

Ha bizonytalan vagy ezzel kapcsolatban, egyeztessünk a jelentkezés előtt.

Félév végére elérendő cél

A pontos tárgy függvényében (önlab/szakdolgozat/diplomaterv) a célokat az alábbiak figyelembevételével határozzuk meg egy vagy két féléves munkára tervezve.

Minimum követelmény (azaz a teljesítéshez feltétlenül szükséges)
- Legalább három mikroszolgáltatás tetszőleges technológiával megvalósítva
- A mikroszolgáltatások REST Api-val rendelkeznek, szolgáltatásaik publikusan így érhetőek el
- Api gateway használata a rendszerben
- Működést bemutató dokumentáció
- Szorgalmi időszak végéig személyesen bemutatott eredmény

Elvárt követelmény (ez szükséges a jó jegy eléréséhez)
- Működőképes felhasználói felület tetszőleges webes technológiával
- Tranziens hibák elleni védekezés: bármely szolgáltatás kiesése esetén a többi működőképes marad
- Üzenetsor alapú kommunikáció legalább egy esetben
- OAuth identitás kezelés
- A mikroszolgáltatások futtatása Docker vagy Kubernetes környezetben

A jeleshez szükséges
- Rendszeres konzultáció és folyamatos előrehaladás
- A rendszer publikusan elérhető telepítése
- Érvényes HTTPS tanúsítvány beszerzése Let's Entrypt használatával

Jelentkezés

A témára való jelentkezés előtt egyeztessünk. Keress Teams-en vagy emailben, és kérlek, kezdd azzal, hogy miért ez a téma érdekel téged.

Feltételek

  • Lásd a leírásban az előkövetelményeknél

Maximális létszám: 3 fő