K-INFO
HU
EN
Belépés

Mikroszolgáltatások és konténeralapú szoftverfejlesztés

Microservices and Container-based Software Development
A tantárgyleírás hatályossága
Hatályosság kezdete:
Hatályosság vége:
Tantárgy neve (magyarul, angolul)
Mikroszolgáltatások és konténeralapú szoftverfejlesztés
Microservices and Container-based Software Development
Tantárgykód BMEVIAUAV42
Tantárgyjelleg
Képzési szint
Kurzustípusok és óraszámok (heti/féléves)
Kurzustípus elmélet gyakorlat laboratóriumi gyakorlat
óraszám (heti) 1 0 1
jelleg (kapcsolt/önálló) kapcsolt
Tanulmányi teljesítmény/értékelés típusa félévközi érdemjegy
Tantárgy kreditértéke 2
Tantárgyfelelős
Dr. Dudás Ákos
Tantárgyat gondozó oktatási szervezeti egység
Kar
Tantárgy weboldala
Tantárgy elsődleges mintatantervi jellege
Közvetlen előkövetelmények – Erős előkövetelmény nincs
Közvetlen előkövetelmények – Gyenge előkövetelmény nincs
Közvetlen előkövetelmények – Párhuzamos előkövetelmény nincs
Közvetlen előkövetelmények – Mérföldkő előkövetelmény nincs
Közvetlen előkövetelmények – Kizáró feltétel nincs

Célkitűzés

Tantárgyprogram

Az előadások és laboratóriumok együtt kerülnek megtartásra. Az elméleti ismeretek az óra elején kerülnek bemutatásra, majd azt követően a laboratórium rész a téma gyakorlati oldalát ismerteti, a hallgatókkal együtt készítve el egy-egy kis alkalmazást, demó rendszert.

Hét

Előadás anyaga

1.

Bevezetés. Elosztott rendszerek alapproblémái, a monolitikus és mikroszolgáltatások architektúra bemutatása, mikroszolgáltatás alapú rendszerek tervezése.

2.

Konténer alapú szoftverfejlesztés alapjai, Docker alapvető működése, Docker-konténerek felépítése, Dockerfile írása, docker CLI használata. Kontéer-kompatibilis szoftverfejlesztői környezetek.

3.

Több komponensből álló rendszer futtatása konténer alapokon, Docker-compose fájlok és használatuk.

4.

Állapotkezelés mikroszolgáltatások környezetben, adattárolási architektúrák, gyakran használt adatbázis rendszerek (Elasticsearch, Mongodb).

5.

Tranzakciókezelés elosztott környezetben, „eventually consistent” modell.

6.

Naplózás és alkalmazás monitorozás elosztott, mikroszolgáltatás alapú rendszerekben, „health check”-ek implementálása a mikroszolgáltatásokban.

7.

API Gateway-ek használata, útvonal irányítás mikroszolgáltatás alapú rendszerekben. Url alapú útvonalválasztás.

8.

Mikroszolgáltatások közötti kommunikáció http és message queue alapon; alternatív kommunikációs protokollok (pl. protobuf). Üzenetvesztés és megbízható kommunikáció; üzenet ismétlés, circuit-breaker, throttle minták.

9.

Kérések nyomkövetése szolgáltatások között, OpenTracing szabvány-alapú rendszerek.

10.

Konténerek a DevOps folyamatban. Konténer-alapú fordítás, „Docker-in-docker” modell, Azure DevOps használata.

11.

A Kubernetes platform alapjai, alkalmazás telepítése Kubernetes platformra, Podok és Deploymentek használata.

12.

A Kubernetes platform alapjai, DaemonSet, Ingress, CronJob használata. Helm chart készítése.

13.

Mikroszolgáltatás keretrendszerek: Orleans. Mikroszolgáltatás platformok a felhőben (PaaS): Azure Service Fabric.

14.

Házi feladat bemutatása.

A mikroszolgáltatások (microservices) architektúra a szoftverfejlesztés modern irányát képviseli. Komplex és nagy terhelésre tervezett rendszerek estén ez az architektúra adja a tervezhető, átlátható léptékű alkalmazásokat, a skálázhatóságot, és a folyamatosan változó rendszer alkalmazkodóképességét. A konténer technológiák pedig a kényelmes telepítés és egyszerű üzemeltetés lehetőségét biztosítják. A tárgy keretében bemutatásra kerülnek a konténeralapú rendszerek fejlesztésének sajátságos aspektusai, és a mikroszolgáltatások tervezésének lépései, valamint terítékre kerülnek mikroszolgáltatás rendszerekben gyakran alkalmazott megoldások, mint az elosztott naplózás, megfigyelhetőség (tracing), az „eventually consistent” programozási modell, és API gateway-ek koncepciója. Emellett bemutatásra kerül, hogy a „DevOps” módszertant a szoftverfejlesztés hogyan tudja segíteni, és milyen előnyei vannak a konténer alapú fejlesztés- és üzemeltetésnek a szoftverfejlesztő szempontjából.

Tanulmányi eredmények

Ez a tantárgy a KKK rendeletben meghatározott, következő kompetenciák fejlesztését szolgálja:

Tudás

Nincsenek rögzített tanulási eredmények.

Képességek

Nincsenek rögzített tanulási eredmények.

Attitűd

Nincsenek rögzített tanulási eredmények.

Autonómia és felelősség

Nincsenek rögzített tanulási eredmények.

Oktatási módszertan

Előadás, laboratórium

Tanulástámogató anyagok

Online források
·        ; Előadásanyag,; oktatói jegyzet; Sam; Newman: Building Microservices: Designing Fine-Grained Systems, 1st Edition,; 2015, ISBN: 978-1491950357.; Susan; J. Fowler: Production-Ready Microservices: Building Standardized Systems Across; an Engineering Organization, 1st Edition, 2016, ISBN: 978-1491965979.; Chris Richardson, Floyd Smith: Designing and; Deploying Microservices (ebook): https://www.nginx.com/resources/library/designing-deploying-microservices/; Microsoft; Cloud Design Patterns (online): https://docs.microsoft.com/en-us/azure/architecture/patterns/; Docker: Get; started with Docker (online): https://docs.docker.com/get-started/; kubernetes:; Learn Kubernetes Basics (online): https://kubernetes.io/docs/tutorials/kubernetes-basics/

A tantárgy teljesítéséhez ajánlott előzetes ismeretek

Tudás típusú kompetenciák
(azon előzetes ismeretek összessége, amelyek megléte nem kötelező, de a tantárgy eredményes teljesítését nagyban elősegíti)
Elosztott rendszerek ismerete Adatbázisok ismerete
Képesség típusú kompetenciák
(azon előzetes képességek és készségek összessége, amelyek megléte nem kötelező, de a tantárgy eredményes teljesítését nagyban elősegíti)
nincs
Ajánlott (nem kötelező) előzetesen megszerzendő kompetenciák
(azon ajánlott (nem kötelező) előzetesen megszerzendő kompetenciák összessége, amelyek jelentősen hozzájárulnak a tantárgy eredményes teljesítéséhez)
Elosztott rendszerek ismerete Adatbázisok ismerete
Általános szabályok
Követelmények: A szorgalmi időszakban: (1) Az előadások és laborok látogatása, legalább a kontakt órák 70%-án való részvétel. Az elmulasztott alkalmak nem pótolhatóak. (2) A félév végéig egy házi feladat elkészítése, forráskódjának feltöltése az oktató által meghatározott helyre, majd bemutatása futtatható állapotban. A házi feladat a félév elején meghatározott kontextusban egy mikroszolgáltatások architektúrájú alkalmazás elkészítése, mely a tanult technológiákat használja, és a hallgató demonstrálni tudja a működését.   A végső jegy a házi feladatra kapott érdemjegy. A házi feladat értékelése pontrendszer alapján történik: egy-egy alkalmazott módszerrel, technológiával előre meghatározott mennyiségű pont szerezhető, melyek összeadva adják a kapott érdemjegyet. Pótlási lehetőségek: Ez előadások és laborok pótlására nincs lehetőség. A házi feladatot a szorgalmi időszak végéig be kell adni; pótlása a pótlási időszakban lehetséges.
Teljesítményértékelési módszerek
Szorgalmi időszakban végzett teljesítményértékelések részletes leírása

Nincs megadva részletes értékelés.

Szorgalmi időszakban végzett teljesítményértékelések részaránya

Nincs megadva részarány.

Vizsgaidőszakban végzett teljesítményértékelések részletes leírása

Nincs megadva részletes értékelés.

Vizsgarészek részaránya

Nincs megadva részarány.

Érdemjegy megállapítása

Nincs megadva érdemjegy határ.

Jelenléti és részvételi követelmények

Nincs megadva jelenléti követelmény.

Javítás, ismétlés és pótlás különös szabályai

Nincs megadva.

Rövid leírás

Nincs megadva.

Részletes leírás

Nincs megadva.

Ajánlott tantárgyak
Kötelező: Nincs. Ajánlott: Szoftverarchitektúrák (BMEVIAUMA06) vagy Elosztott rendszerek és szakterületi modellezés (BMEVIAUMA01)
A tantárgy elvégzéséhez szükséges tanulmányi munka

Nincs megadva munkaidő bontás.

Tantárgykövetelmények hatályossága
Tantárgykövetelmények hatályosságának kezdete:
Tantárgykövetelmények hatályosságának vége:
Tantervi elhelyezés

Nincsenek rögzített tantervi elhelyezések ehhez a tárgyverzióhoz.