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

Kocsis Imre
Kocsis Imre

docens

tárgyfelelős

Farkas Martin
Farkas Martin

doktorandusz

Klenik Attila
Klenik Attila

tudományos munkatárs

A tantárgy részletes tematikája

Az előadások részletes tematikája:

  1. Elosztott rendszerek. Alapvető típusok; architektúrák; alapszolgáltatások.
  2. 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.
  3. 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.
  4. 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.
  5. Önmenedzselő rendszerek. Autonóm számítástechnika; a MAPE-K modell; eljárásrend alapú menedzsment; rendszerek rendszerei (System-of-Systems, SoS).
  6. 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.
  7. 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).
  8. 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.
  9. 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.
  10. 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).
  11. 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.
  12. 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.
  13. 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.
  14. 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:

  1. Elosztott IT rendszerek megfigyelése (monitorozás, eseménygyűjtés, elosztott tranzakciók megfigyelése, active probing)
  2. Hibabehatárolás logikai következtetéssel - a rendszerszintű diagnosztika alapelvei és alkalmazásuk elosztott IT rendszerek diagnosztikájára
  3. Cloud kapacitásoptimalizáció: kapacitásigények empirikus módszerekkel támogatott meghatározása és erőforrás-allokáció
  4. RTI DDS alapú rendszerintegráció
  5. Bizánci hibatűrő állapotgép-replikáció alkalmazásokban (a BFT-SmaRt könyvtár példáján)
  6. Okosszerződések, programozási mintáik és elemzésük (Solidity)
  7. Centralizált alkalmazások decentralizálásának tervezési folyamata