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.