K-INFO
HU
EN
Belépés

DevOps: A rendszerfejlesztés és üzemeltetés kapcsolódása

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

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.

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

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

Online források
A főbb segédanyagok listája; mellett a hallgatókat a félév során további publikációkkal és technológiai; segédanyagokkal látjuk el.; Michael; Hüttermann: „DevOps for Developers", Aspress, 2012.; Joakim Verona:; „Practical DevOps", Packt, 2016.; Top 10 challenges; to DevOps implementation (2017):; https://www.techrepublic.com/article/top-10-challenges-to-devops-implementation/; Michael Duffy:; „DevOps Automation Cookbook", Packt, 2015; Duvall, Paul M.,; Steve Matyas, and Andrew Glover. Continuous integration: improving software; quality and reducing risk. Pearson Education, 2007.

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)
Operációs rendszerek Számítógépes hálózatok  
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)
Operációs rendszerek Számítógépes hálózatok  
Általános szabályok
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).
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

Nincs megadva.

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.