Nagy terhelésre méretezett, skálázható szerver tervezése és fejlesztése szenzor adatokat feldolgozó rendszerhez

OData támogatás
Konzulens:
Schulcz Róbert
Hálózati Rendszerek és Szolgáltatások Tanszék

A feladat egy szerver alkalmazás tervezése szenzoradatokat feldolgozó hálózathoz, ami skálázható, és képes nagyszámú szenzor adatait fogadni. A rendszer a külső szemlélő számára egyetlen logikai egységként látszik, viszont szerkezeténél fogva skálázható, annak köszönhetően, hogy minden alkotóelemére igaz, hogy a lehető leginkább állapotmentes, és a legkevesebb függőséggel rendelkezik. Ennek eléréséhez egy Docker konténer hálózatot hoztam létre. A hálózatban minden részfeladathoz egy dedikált konténert hoztam létre. Egyes konténerek fogadják és elosztják a beérkező adatokat, míg mások feldolgozzák azokat. Továbbá léteznek olyan konténerek is, amiknek a feladata a feldolgozás támogatása, de önmagukban nem dolgoznak fel adatot. Ennek a megközelítésnek az előnye, hogy így egyszerűen lokalizálható a szűk keresztmetszet, illetve egyszerűen bővíthető, tetszés szerint. A bővíthetőség nem az egy lemezképekből készített konténerekre vonatkozik, hanem arra, hogy a lemezkép módosításával akárhány konténer indítására felkészíthető a lemezkép.

A rendszerben lévő konténerek együttműködését load blancing és service discovery segítségével valósítottam meg. Ezeknek köszönhetően a bővíthetőség és a redundancia tovább növelhető, akár dinamikusan is, a rendszer működése közben. A szűk keresztmetszetet jelentő konténerből újabb példányok indításával bővíthető. A függőségek minimalizálása tovább segítette, hogy a hálózat hibatűrése növekedjen.

A telepítés megkönnyítésére külön szkriptet írtam, illetve a telepítés közben lehetséges változtatásokat, illetve megkötéseket is kiemeltem.

Letölthető fájlok

A témához tartozó fájlokat csak bejelentkezett felhasználók tölthetik le.