DevOps: Connection Between System Development and Operations
A tantárgyleírás hatályossága
| 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) |
|
||||||||||||
| 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
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
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
Tanulástámogató anyagok
Not provided.
Recommended preliminary knowledge for completing the subject
General rules
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
Curriculum placement
No curriculum placements recorded for this subject version.