K-INFO
HU
EN
Login

DevOps: Connection Between System Development and Operations

DevOps: A rendszerfejlesztés és üzemeltetés kapcsolódása
A tantárgyleírás hatályossága
Hatályosság kezdete:
Hatályosság vége:
Subject name (Hungarian, English)
DevOps: A rendszerfejlesztés és üzemeltetés kapcsolódása
DevOps: Connection Between System Development and Operations
Subject code BMEVIMIAV21
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
Szatmári Zoltán adjunktus
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

1.      Bevezető. Az informatikai rendszerek fejlesztési és üzemeltetési életciklusának bemutatása: a fejlesztés, fordítás, csomagolás, tesztelés, integráció, telepítés és üzemeltetési lépések általános bemutatása, automatizálási lehetőségei, a DevOps kultúra és szerepkör megjelenése, pozíciója és tipikus feladatai a szervezeten belül.

2.      Fejlesztéstámogató, verziókezelő és fordítási technológiák: a fejlesztés során használt és elvárt, a csoportmunkát és későbbi üzemeltetést támogató megoldások alkalmazásai. A verziókezelő rendszerek használatának korszerű módszertanai (Git-GitFlow) és a fordítást támogató keretrendszerek (Gradle, Maven) alkalmazása, automatizálása.

Labor: Ismerkedés a Git használatával, a GitFlow módszertannal és a Gradle, vagy Maven fordítást támogató keretrendszerrel.

3.      Folytonos integráció (CI) és keretrendszerek: a fejlesztést támogató keretrendszerek feladata, azok illeszkedése a fejlesztési módszertanba. Az integrációs szintek áttekintése és automatizáció különböző fokozatainak bemutatása. Az integrált keretrendszerek bemutatása, konfigurációjuk és alkalmazásuk az általános módszertanban. CI/CD keretrendszerek (Jenkins, TravisCI) bemutatása, GUI-alapú és leíróalapú konfigurációs megoldások összevetése.

Labor: Ismerkedés a Jenkins és a TravisCI rendszerekkel.

4.      Virtualizációs technológiák: a különböző szintű virtualizációs technológiák áttekintése, automatizálási és központosított menedzsment lehetőségeik. Automatikus virtuális gép építési folyamatokhoz kapcsolódó technológiák (Packer, Vagrant) és alkalmazásaik heterogén környezetekben.

Labor: Virtuális gép építés Packer és Vagrant technológiával

5.      Konténer virtualizációs technológiák: a konténer virtualizációs megoldások architekturális felépítése, alapfogalmainak áttekintése, hálózati és lemezképeinek felépítése és alkalmazása az automatizált alkalmazástelepítésben (Docker, Docker-compose, Kubernetes). A konténer technológiák illeszkedése a folytonos integráció világába és gyakorlati alkalmazásai a Contunious Deployment megközelítés keretében.

Labor: A Docker alapvető fogalmainak kipróbálása, a Docker-compose megismerése.

6.      Cloud technológiák és az IaaS, PaaS és SaaS technológiákhoz kapcsolódó automatizációs megoldások: a cloud computing pozícionálása a rendszertelepítés és üzemeltetés területén. A cloud technológiák alkalmazásának lehetőségei, valamint kapcsolódása a fejlesztési életciklus és folytonos integrációs folyamatokba. A különböző szintű cloud szolgáltatásokhoz kapcsolódó szolgáltatások: virtuális gépek, hálózati háttérismeretek, OS lemezképek, terheléselosztók, skálázási lehetőségek áttekintése és automatizációs megoldásaik, kapcsolódásuk a folytonos telepítés folyamatába.

Labor: Az AWSwebes konzoljának megismerése és alapvető szolgáltatásainak kipróbálása.

7.      A Microservice rendszerek fejlesztési ciklusának támogatása és a Cloud-Native megközelítés: a Microservice architektúra és az ilyen sémára való fejlesztés támogatásának bemutatása, a kapcsolódó jó gyakorlatok áttekintése. A kapcsolódó szolgáltatástípusok (szolgáltatásfelderítés, telepítés, skálázás) áttekintése és a Cloud Native Computing Foundation ajánlásainak és kategóriáinak bemutatása.

Labor: A Cloud Native Computing Foundation ajánlásainak áttekintése, a Consul, CoreDNS, Envoy és HAProxy technológiák kipróbálása.

8.      Telepítési környezetek, konfiguráció: a fejlesztői környezettől az éles környezetig, a konfigurációt támogató konfigurációmenedzsment technológiák és automatizálási módszerek bemutatása. Az „Environment as a code" szemlélet.

Labor: Ismerkedés az Ansible és TerraForm technológiával

9.      Az alkalmazástelepítés szintjei: az alkalmazástelepítés granularitásának meghatározása, az egyszerű bináristól a virtuális gép szintjéig. Az alkalmazástelepítési célok, módszerek és lehetőségek áttekintése.

Labor: A különböző szintű csomagolási módszerek megismerése és a kapcsolódó konfigurációs lehetőségek tesztelése.

10.  Cloud-Native alkalmazások fejlesztése, integrációja: a fejlesztési módszertanokhoz és tervezési mintákhoz kapcsolódó komponensek, fejlesztési technológiák (pl. Java Spring Boot), adatbázisrendszerek (pl. MariaDB, Elasticsearch), authentikációs megoldások (Oauth, SAML), integrációs megoldások (Swagger).

Labor: Ismerkedés integrációs technológiákkal és elemi komponensekkel.

11.  Monitoring és biztonsági mentés: a folyamatos üzemeltetéshez kapcsolódó technológiák áttekintése, a monitoring (CollectD, InfluxDB, Prometeus, Grafana, Nagios), archiválás és biztonsági mentés technológiák cloud környezetben.

Labor: A Prometheus és Grafana rendszerek kipróbálása, rsync-alapú biztonsági mentés tesztelése

12.  Felhő és konténer alapú rendszerek üzemeltetése: hálózatszervezés, hálózati szeparáció megvalósítása, megfigyelési és felügyeleti kérdések a bemutatott cloud- és konténeralapú technológiákhoz.

Labor: A Docker és AWS hálózati megoldások tesztelése.

13.  Hibakeresési módszerek és eszközök: analízis eszközök a hardver, operációs rendszer és hálózati rétegekben. A magas szintű naplózás, metrika gyűjtő és monitoring (pl. AWS CloudWatch)  rendszerektől haladva hibakeresés egyre elemibb komponensei felé az alapvető Linux kernel paraméterek vizsgálatáig.

Labor: Az AWS CloudWatch és Simple Notification Service megismerése.

14.  Házi feladatok bemutatása

A tantárgy célkitűzése, hogy megismertesse a hallgatókat az informatikai rendszerek fejlesztésének támogatásával és üzemeltetésével kapcsolatos technológiákkal, a DevOps szerepkör betöltéséhez szükséges ismeretekkel, és áttekintést nyújtson ezek széles alkalmazási lehetőségeiről. A tantárgy az informatikai rendszerek fejlesztési és üzemeltetési életciklusának bemutatása után végighalad az egyes fázisokon, bemutatja az ezeket támogató keretrendszereket, automatizációs lehetőségeket és az aktuálisan elterjedt technológiai megoldásokat. A tárgy keretében bemutatott technológiákat labor keretében ki is próbáljuk. A tantárgy elvégzése után a hallgatók képesek lesznek arra, hogy átlássák a fejlesztés és üzemeltetés területeken felmerülő problémákat, megértsék a fenti területek kapcsolódását és tudjanak automatizálási technológiákat alkalmazni a munkájuk során.

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

Heti egy alkalommal 90 perc tantermi foglalkozás, melyből az első 45 perc előadás és a második 45 perc a témához kapcsolódó számítógépes laborfoglalkozás.

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)
Operációs rendszerek Számítógépes hálózatok  
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)
Operációs rendszerek Számítógépes hálózatok  
General rules
Követelmények: A szorgalmi időszakban: házi feladat vagy tanulmány elkészítése egy kapcsolódó témáról a szorgalmi időszak végéig. A kredit megszerzésének feltétele a házi feladat vagy tanulmány elkészítése, melynek osztályzata képezi a félév végi jegyet.   Pótlási lehetőségek: A házi feladat a pótlási héten pótolható (különeljárási díj ellenében).
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

Not provided.

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.