Budapest University of Technology and Economics, Faculty of Electrical Engineering and Informatics

    Belépés
    címtáras azonosítással

    vissza a tantárgylistához   nyomtatható verzió    

    Cloud Native hálózati funkciók fejlesztése

    A tantárgy angol neve: Development of Cloud Native Network Functions

    Adatlap utolsó módosítása: 2023. április 18.

    Budapesti Műszaki és Gazdaságtudományi Egyetem
    Villamosmérnöki és Informatikai Kar
    BSc, Mérnökinformatikus szak, Specializáció ágazati főtárgy
    Tantárgykód Szemeszter Követelmények Kredit Tantárgyfélév
    VITMAC12 5 2/2/0/v 5  
    3. A tantárgyfelelős személy és tanszék Dr. Sonkoly Balázs,
    4. A tantárgy előadója Dr. Sonkoly Balázs, egyetemi docens, TMIT
    Pelle István, tanszéki mérnök, TMIT
    Németh Felicián, tudományos segédmunkatárs, TMIT
    5. A tantárgy az alábbi témakörök ismeretére épít Programozás, Kommunikációs hálózatok
    6. Előtanulmányi rend
    Ajánlott:
    Kötelező: A programozás alapjai 1-3, Kommunikációs hálózatok
    Ajánlott: Szoftvertechnikák
    7. A tantárgy célkitűzése

    A tárgy célja a modern hálózati funkciók fejlesztéséhez használható "Cloud Native" paradigma bemutatása, a felhő környezetben alkalmazható üzemeltetési módszerek ismertetése. Ezek a hálózati alkalmazások a felhő rendszerek által kínált különféle szolgáltatásokat képesek kihasználni és már eleve a felhő környezetre optimalizálva készülnek, újfajta fejlesztési módszerek és tervezési minták alapján. A legnagyobb publikus felhő szolgáltatók platformjai (Amazon AWS, Google Cloud Platform, Microsoft Azure) mellett nyílt forráskódú megoldások (pl. Kubernetes) is elérhetők, melyek különféle programozói interfészeket ("felhő API") biztosítanak a fejlesztőknek. Ezzel számos teher lekerül a programozó válláról és gyorsan lehet akár több millió felhasználót vagy eszközt kiszolgáló hálózati alkalmazást is készíteni. A tárgy célja egyrészt bemutatni ezeket az eszközkészleteket és fejlesztési módszereket konkrét példákon keresztül. Másrészt, ahhoz, hogy jó szoftvert tudjunk készíteni erre az új környezetre, alap szinten meg kell érteni ezeknek a rendszereknek a működését és az új számítási modelleket (pl. Serverless, Container as a Service, Function as a Service), valamint a komponensek folyamatos összeköttetését biztosító hálózati megoldásokat és azokból adódó kényszereket. A hallgatók gyakorlati példák segítségével készségszintű tudást kapnak, a megismert eszközöket a világ vezető felhő platformjain (pl. Amazon AWS) és a nyílt forráskódú Kubernetes platformon próbálják ki.

    A tantárgyat sikeresen teljesítő hallgató:
    • (K2) megérti a Cloud Native koncepció alapjait és az új számítási modelleket (Serverless, Container as a Service, Function as a Service) és az ezeket támogató hálózati technológiákat• (K1) megismeri az elérhető fontosabb publikus és privát platformokat, ezek főbb tulajdonságait
    • (K2) megérti és átlátja egy publikus és egy nyílt forráskódú platform működésének alapjait, a platform és hálózat működésének hatását a szoftverre
    • (K3) képes önállóan megtervezni és implementálni microservice alapú Cloud Native alkalmazásokat
    • (K3) megismeri és használni tudja azokat az eszközöket, felhő API-kat, melyek segítségével Cloud Native hálózati alkalmazások fejleszthetők és üzemeltethetők
    • (K3) képes önállóan Cloud Native hálózati alkalmazások hibakeresésére, monitorozására és performancia vizsgálatára
    • (K2) megérti és átlátja a Cloud Native hálózati alkalmazások üzemeltetési feladatait
    • (K3) képes önállóan megbecsülni a Cloud Native hálózati alkalmazások üzemeltetési költségeit

    8. A tantárgy részletes tematikája Az előadások részletes tematikája:

    1. Bevezetés, történeti áttekintés. Microservice alapú szoftvertervezés, előnyök, hátrányok és következmények. Microservice alapú alkalmazások: gyakorlati példák demók.
    2. Cloud Native és "serverless computing", különböző megvalósítási opciók: konténer alapú (CaaS) vs. függvény alapú (FaaS) modellek. A Cloud Native paradigma szerepe az 5G és jövőbeli 6G mobilhálózatokban.
    3. Publikus CaaS/FaaS platformok (AWS, GCP, Azure) és privát, open source megoldások (Kubernetes, Knative). Hibrid elrendezések. Előnyök, hátrányok.
    4. Biztonsági kérdések, hozzáférés szabályozása (felhasználók és szoftverkomponensek között). Gyakorlati példák - AWS: EC2 (Elastic Compute Cloud), Security Groups, VPC (Virtual Private Cloud), Identity and Access Management. Gyakorlati példák - Kubernetes: Pods, Services, API Server.
    5. Peremfelhő (edge cloud) kiterjesztések CaaS/FaaS platformokhoz késleltetésérzékeny alkalmazások támogatására, az 5G/6G mobilhálózatok találkozása a felhő rendszerekkel. Mit jelent mindez az alkalmazások szempontjából.
    6. Alapvető hálózati technológiák és hálózati funkciók CaaS/FaaS platformokhoz: címfordítás, csomagszűrés, DHCP, DNS, Software-Defined Networking (SDN), Network Function Virtualization (NFV).
    7. A különböző platformszolgáltatások és felhő API-k használata az alkalmazásokban, elérhető SDK-k. Konkrét megoldások bemutatása különböző programozási nyelvű példákon keresztül.
    8. Storage és Database szolgáltatások. Gyakorlati példák - AWS: EBS (Elastic Block Store), S3, DynamoDB, ElastiCache (Redis, Memcached).
    9. Eseményvezérelt programozás felhő környezetben, FaaS modell és gyakorlati megvalósításai, előnyök, hátrányok. Alkalmazási példák bemutatása különböző felhasználási területekről.
    10. Gyakorlati példák - AWS: Lambda, API Gateway, SQS, SNS, Step Functions. Gyakorlati példák - Kubernetes: Knative, Kubeless.
    11. A felhő platform hatása az alkalmazásra, performancia kérdések. Monitorozás, debugging, troubleshooting technikák.
    12. Gyakorlati példák - AWS: X-Ray, CloudWatch. Gyakorlati példák - Kubernetes: Prometheus, Grafana.
    13. A komponensek összekapcsolásáért felelős fizikai és virtuális hálózatok hatása az alkalmazásra, performancia kérdések. Hálózati monitorozás és troubleshooting technikák.
    14. Árazási modellek, költségoptimalizálási lehetőségek. Tervezési minták, "best practices", esettanulmányok konkrét alkalmazási példákkal.

    A gyakorlatok/laborok részletes tematikája:

    1. Publikus felhő platform alapok. Például AWS: EC2 (Elastic Compute Cloud), Security Groups, VPC (Virtual Private Cloud), Identity and Access Management.
    2. Virtualizációs technológiák: virtuális gépek és konténerek
    3. Egy nyílt forráskódú privát felhő platform használata. Például Kubernetes: Pods, Services, API Server.
    4. Alapvető hálózati funkciók és technológiák, működésük bemutatása a gyakorlatban Kubernetes környezetben (címfordítás, csomagszűrés, SDN, NFV).
    5. Storage és Database szolgáltatások publikus felhő környezetben. Például AWS: EBS (Elastic Block Store), S3, DynamoDB, ElastiCache (Redis, Memcached).
    6. Database szolgáltatások privát felhő környezetben. Például: Redis, Memcached.
    7. Példa hálózati alkalmazások fejlesztése az eddig bemutatott technológiák segítségével.
    8. FaaS modell gyakorlati alkalmazásai publikus felhő környezetben. Például AWS: Lambda, API Gateway, SQS, SNS, Step Functions.
    9. FaaS modell gyakorlati alkalmazásai privát felhő környezetben. Például Kubernetes alapon: Knative, Kubeless.
    10. FaaS példa alkalmazások fejlesztése, tesztelése.
    11. Monitorozás, hibakeresés publikus felhő környezetben. Például AWS: X-Ray, CloudWatch.
    12. Monitorozás, hibakeresés privát felhő környezetben. Például Kubernetes: Prometheus, Grafana.
    13. Hálózati troubleshooting és monitorozás privát felhő és peremfelhő környezetben. Például: Lightweight Kubernetes (k3s), AWS IoT Greengrass.
    14. Összetett felhő alkalmazások fejlesztése, tesztelése, teljesítménymérése és költségtervezése.

     

     


    9. A tantárgy oktatásának módja (előadás, gyakorlat, laboratórium) A tárgy anyaga előadásokon és gyakorlatokon kerül ismertetésre heti 2 óra előadás és 2 óra gyakorlat ütemezésével.

    Az előadások során az elméleti részek bemutatása és a gyakorlatokhoz szükséges anyagok magas szintű áttekintése történik.

    A gyakorlatokon gyakorlatvezető segítségével történik vezetett feladatmegoldás, a tudás önálló elmélyítéséhez gyakorló feladatok kerülnek kiadásra, melyek a biztosított munkakörnyezetekben megoldhatók. A gyakorlatokon kiadott opcionális házi feladatokra a vizsgába beszámítandó bónusz pontok kaphatók maximum a vizsga pontszám 10 százalékáig.
    A gyakorlatok egyik része egy publikus felhő szolgáltató platformján történik, felhasználva a javasolt képzési anyagaikat (pl. AWS Academy: Cloud Foundations, Cloud Developing), melyhez saját virtuális munkakörnyezetet biztosítunk.
    A gyakorlatok másik része nyílt forráskódú platformokon (pl. Kubernetes) történik saját virtuális munkakörnyezetben.
    Bizonyos gyakorlatok jelenléti, mások online formában kerülnek megtartásra.

    10. Követelmények Szorgalmi időszakban:
    A szorgalmi időszakban az aláírás megszerzésének és a vizsgára bocsátásnak a feltétele a zárthelyi legalább elégségesre történő megírása. A ZH online platformon (pl. Google Quiz) de fizikai jelenlét mellett történik.
    Vizsgaidőszakban:
    A vizsgaidőszakban az írásbeli vizsga online platformon (pl. Google Quiz) de fizikai jelenlét mellett történik. Elméleti tesztkérdések és mindenkinek testreszabott gyakorlati feladatok kerülnek kiadásra, melyek a biztosított munkakörnyezetekben oldhatók meg.
    11. Pótlási lehetőségek Egy sikertelen zárthelyi a szorgalmi időszakban a pótzárthelyin pótolható. A sikertelen (pót) zárthelyi a pótlási héten különeljárási díj ellenében egy további alkalommal pótolható.
    12. Konzultációs lehetőségek Az oktatóval történő egyéni egyeztetés alapján.
    14. A tantárgy elvégzéséhez átlagosan szükséges tanulmányi munka
    Kontakt óra56
    Félévközi készülés órákra24
    Felkészülés zárthelyire16
    Házi feladat elkészítése 
    Kijelölt írásos tananyag elsajátítása 
    Vizsgafelkészülés54
    Összesen150
    15. A tantárgy tematikáját kidolgozta Dr. Sonkoly Balázs, egyetemi docens, TMIT
    IMSc tematika és módszer • IMSc hallgatóknak külön gyakorlati kurzust biztosítunk, ezek során emelt szintű feladatokat és problémákat tekintünk át. Külön házi feladatok is kiadásra kerülnek, melyek sikeres teljesítése esetén IMSc pontok kaphatóak.
    • A zárthelyin, azok pótlásain és a vizsgákon emelt szintű többletfeladatok teljesíthetőek IMSc pontokért.
    • Egyeztetett időpontban egy további, önkéntesen választható, emelt szintű foglalkozást biztosítunk, ahol a tárgy tematikájához szorosan kötődő, időszerű kutatási és fejlesztési problémákat és azok megoldásait ismertetjük. A cél az érdeklődő (elsősorban, de nem kizárólag IMSc-s) hallgatók motivációja a képzésük folytatására az MSc-n túl a PhD képzés keretei között.
    IMSc pontozás Legfeljebb 25 IMSc pont szerezhető hallgatónként az alábbiak szerint:

    • Sikeresen megoldott opcionális házi feladatok: max. 15 IMSc pont.
    • Sikeresen megoldott többletfeladat ZH-n (vagy a pótlásán): max. 5 IMSc pont. A többletfeladatokat csak akkor értékeljük, ha az összes többi feladat alapján jelest szerzett a hallgató az adott számonkérésen.
    • Sikeresen megoldott többletfeladat vizsgán: max. 5 IMSc pont. A többletfeladatokat csak akkor értékeljük, ha az összes többi feladat alapján jelest szerzett a hallgató az adott számonkérésen.

    Az IMSc pontokat az IMSc programban részt nem vevő hallgatók is elnyerhetik a fentiek szerint.