K-INFO
HU
EN
Login

Microservices and Container-based Software Development

Mikroszolgáltatások és konténeralapú szoftverfejlesztés
A tantárgyleírás hatályossága
Hatályosság kezdete:
Hatályosság vége:
Subject name (Hungarian, English)
Mikroszolgáltatások és konténeralapú szoftverfejlesztés
Microservices and Container-based Software Development
Subject code BMEVIAUAV42
Subject type
Training Level
Course types and hours (weekly/semester)
Course type lecture tutorial laboratory
hours (weekly) 1 0 1
type (linked/independent) derived course
Assessment type félévközi érdemjegy
Credits 2
Subject coordinator
Dr. Dudás Ákos
Responsible department
Faculty
Subject website
Primary curriculum type
Direct prerequisites – Strong prerequisite none
Direct prerequisites – Weak prerequisite none
Direct prerequisites – Parallel prerequisite none
Direct prerequisites – Milestone prerequisite none
Direct prerequisites – Exclusion none

Objectives

Programme

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.

Learning outcomes

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

Knowledge

No learning outcomes recorded.

Skills

No learning outcomes recorded.

Attitudes

No learning outcomes recorded.

Autonomy and responsibility

No learning outcomes recorded.

Oktatási módszertan

Előadás, laboratórium

Tanulástámogató anyagok

Not provided.

Recommended preliminary knowledge for completing the subject

Knowledge type competencies
(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
Skill type competencies
(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
Recommended (non-compulsory) preliminary competencies
(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
General rules
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.
Assessment methods
In-term assessments

No detailed assessments provided.

Weight of in-term assessments

No weights provided.

Exam-period assessments

No detailed assessments provided.

Weight of exam elements

No weights provided.

Grade calculation

No grade thresholds provided.

Attendance requirements

No attendance requirements provided.

Rules for retake and resubmission

Not provided.

Short description

Not provided.

Detailed description

Not provided.

Recommended courses
Kötelező: Nincs. Ajánlott: Szoftverarchitektúrák (BMEVIAUMA06) vagy Elosztott rendszerek és szakterületi modellezés (BMEVIAUMA01)
Workload to complete the subject

No workload breakdown provided.

Validity of subject requirements
Requirements valid from:
Requirements valid until:
Curriculum placement

No curriculum placements recorded for this subject version.