Megbízható elosztott és decentralizált rendszerek
VIMIMA28 | Mérnökinformatikus MSc | Félév: 1 | Kredit: 5
A tantárgy célkitűzése
A
tantárgy célja, hogy megismertesse az elosztott és decentralizált rendszerek
tervezésének és alkalmazásra tervezésének kihívásait, és bemutassa azokat a
hardver és szoftver tervezési megoldásokat, amikkel ezen rendszerek nagy
megbízhatósága és rendelkezésre állása garantálható. Jellemző modern célplatformként, illetve
architektúraként kiemelt figyelmet kapnak a felhő és edge architektúrák; a szolgáltatásminőségi
garanciákkal támogatott kommunikáció alapú integráció; valamint az elosztott
főkönyvi technológiák (mind a blokklánc, mind pedig a nem blokklánc alapú
megoldások). A tárgy gyakorlatai metodológiai demonstrációkon és esettanulmányokon
keresztül teremtik meg a kapcsolatot a tipikus rendszermérnöki kihívásokkal.
A tárgy oktatói
A tantárgy részletes tematikája
Az előadások részletes tematikája:
- Elosztott rendszerek. Alapvető típusok; architektúrák; alapszolgáltatások.
- A szolgáltatásbiztos (dependable) és helyreállásképes (resilient) számítástechnika alapfogalmai. Hiba, hibás állapot, hibahatás, hibaterjedés; alapvető attribútumok és tipikus metrikáik.
- Szolgáltatásbiztonságra tervezés és hibatűrő működés. A szolgáltatásbiztonság biztosításának eszközei fejlesztési és működtetési időben; a hibatűrő működés életciklus-modelljei; a szolgáltatásbiztonságra tervezés folyamata.
- Hibatűrő rendszerek tervezési mintái. Architekturális minták (pl. egyszerű replikáció, moduláris redundancia, helyreállítási blokkok); a hibadetektálás, -kezelés (pl. checkpoint, rollback, roll forward, failover, túlterhelés-kezelési minták) és -eltávolítás alapvető megoldásai.
- Önmenedzselő rendszerek. Autonóm számítástechnika; a MAPE-K modell; eljárásrend alapú menedzsment; rendszerek rendszerei (System-of-Systems, SoS).
- Skálázható platformok. Virtualizáció és konténerizáció; felhő, edge és fog számítástechnika. Ellenállóképesség biztosítása skálázás alapú platfomokon; chaos engineering.
- Valósidejű kommunikáció alapú integráció. Architekturális paradigma, tipikus követelmények és kihívások; egy modern megoldás szolgáltatásminőségi garanciákkal: az OMG Data Distribution Service (DDS).
- Megbízható csoportkommunikáció és elosztott döntések. Tagsági kép biztosítása elosztott rendszerekben; a multicast kommunikáció megoldásai; kétfázisú, háromfázisú commit és hibakezelésük.
- Hibatűrő konszenzus. Alapvető kihívások és korlátok (a CAP tétel és kiterjesztései); az állapotgép-replikációs megközelítés; a Paxos és a Raft konszenzus protokollok.
- Támadástűrő konszenzus. Hibatűrés nehezen detektálható (bizánci) hibák esetén; hatékony algoritmusok (a Practical Byzantine Fault Tolerance algoritmus és továbbfejlesztései).
- Decentralizált rendszerek. Elosztott főkönyvi rendszerek és típusaik; az elosztott állapotgép probléma blokklánc alapú megoldása; Bitcoin; Proof of Work; Ethereum.
- Konszenzus decentralizált rendszerekben. Decentralizált rendszerek konszenzusának kihívásai és az alapvető trade-offok; meghatározó protokollok, pl. Proof of Stake, Proof of Elapsed Time, delegált delegált bizánci hibatűrés, Proof of Authority konszenzus mechanizmusok és összehasonlításuk.
- Decentralizált architektúrák. Reprezentatív architektúrák: Hyperledger Fabric, R3 Corda és openCBDC. Garancia-modellek és tipikus alkalmazások összehasonlítása. Okosszerződések kezelése az egyes platformokon, decentralizált megoldások integrációja.
- Decentralizált rendszerek privát és auditálható számítási modelljei. Trusted computingmegoldások alkalmazása a decentralizált rendszerekben; biztonságos többszereplős számítás; homomorf titkosítás; tudásmentes bizonyítás alapú megoldások (Zero-Knowledge Proofs).
A gyakorlatok részletes tematikája:
- Elosztott IT rendszerek megfigyelése (monitorozás, eseménygyűjtés, elosztott tranzakciók megfigyelése, active probing)
- Hibabehatárolás logikai következtetéssel - a rendszerszintű diagnosztika alapelvei és alkalmazásuk elosztott IT rendszerek diagnosztikájára
- Cloud kapacitásoptimalizáció: kapacitásigények empirikus módszerekkel támogatott meghatározása és erőforrás-allokáció
- RTI DDS alapú rendszerintegráció
- Bizánci hibatűrő állapotgép-replikáció alkalmazásokban (a BFT-SmaRt könyvtár példáján)
- Okosszerződések, programozási mintáik és elemzésük (Solidity)
- Centralizált alkalmazások decentralizálásának tervezési folyamata