Belépés címtáras azonosítással
magyar nyelvű adatlap
DevOps: A rendszerfejlesztés és üzemeltetés kapcsolódása
A tantárgy angol neve: DevOps: Connection Between System Development and Operations
Adatlap utolsó módosítása: 2019. április 6.
Tantárgy lejárati dátuma: 2023. július 31.
Mérnökinformatikus szak
Választható tantárgy
Dr. Szatmári Zoltán adjunktus, Méréstechnika és Információs Rendszerek Tanszék
Operációs rendszerek
Számítógépes hálózatok
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
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
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.
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.
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.
Dr. Szatmári Zoltán
adjunktus
MIT
Dr. Micskei Zoltán
egyetemi docens