Vyučující
|
-
Beneš Vojtěch, Ing. Ph.D.
|
Obsah předmětu
|
Přehled témat přednášek (nejedná se o rozpis do výukových týdnů): 1) Úvod, důvody zavádění DevOps metodologie, její cíle, fáze a metriky. Průběžná integrace a nasazování změn (CI/CD), princip sestavovací linky, definice vývojového, testovacího, předprodukčního a produkčního prostředí. 2) Nasazování software a zajišťování jeho skladebních komponent. Teorie a strategie aktualizace software. Základní typy softwarových artefaktů, jejich distribuce a údržba vzájemných závislostí. Úvod do kontejnerové architektury. 3) Kontejnerová architektura, její principy a přínos. Úvod do sestavování, distribuce a nasazování kontejnerů v sestavovací lince. 4) Přístup k infrastruktuře jako ke kódu. Základní principy, verzování, nasazování změn. Dynamické aspekty infrastruktury a automatické škálování. CI/CD infrastruktury. 5) Monitorování software, trasování a audit událostí. Sběr metrik, významné provozní metriky softwarových systémů. Agregace logů, jejich archivace a retenční strategie. Využití metrik při provozu, návrhu a vývoji software. Srozumitelnost a správná interpretace nasbíraných metrik. Indikátory úrovně služeb a jejich vhodná volba. Nakládání s citlivými údaji při logování. 6) Bezpečnostní aspekty při vývoji a provozu software. Návrh bezpečného software, statická analýza bezpečnosti software, penetrační testy. Analýza složení software, soupis použitých komponent, bezpečnost software třetích stran a dodržení licenčních ujednání software třetích stran v rámci konkrétního způsobu distribuce software. 7) CI/CD v kontextu databázových systémů. Problém migrace databázového schématu a dat, specifika migrace tradičních relačních a noSQL databází. 8) Aplikace technik průběžného vývoje a provozu v oblasti mobilních aplikací a IoT zařízení. 9) Kontinuální zpětná vazba. Realizace v jednotlivých fázích sestavovací linky, automatické notifikace o výpadcích a nežádoucích trendech parametrů běžícího software. Postupy řešení havárií a jejich protokolování. Systémy pro sběr a evidenci chyb a nových požadavků. Dle aktuálních možností budou také zařazena 1 hostovaná přednáška na téma aplikace kontinuální integrace a nasazování změn.
|
Studijní aktivity a metody výuky
|
- Kontaktní výuka
- 48 hodin za semestr
- Praktická výuka [vyjádření počtem hodin]
- 32 hodin za semestr
- Příprava na zkoušku [10-60]
- 24 hodin za semestr
|
Předpoklady |
---|
Odborné znalosti |
---|
Zvládnutí alespoň jednoho vyššího programovacího jazyka na pokročilé úrovni. |
Schopnost navrhnout a implementovat aplikaci malého až středního rozsahu na úrovni předmětů KIV/SAR a KIV/PIA. |
Znalost základů TCP/IP sítí a prostředí OS Unix/Linux na úrovni předmětů KIV/UPS a KIV/ZOS. |
Znalost vyšších komunikačních protokolů na úrovni etablovaných aplikačních rozhraní na úrovni předmětu KIV/PIA. |
Znalost základních principů agilního vývoje software na úrovni předmětu KIV/ZSWI. |
Odborné dovednosti |
---|
Zvládání alespoň jednoho běžného nástroje pro správu verzí na úrovni předmětu KIV/ZSWI. |
Obecné znalosti z oblasti správy procesů a zdrojů OS Unix/Linux na úrovni předmětu KIV/ZOS. |
Programovat a ladit programy pod operačním systémem typu Unix/Linux. |
Obecné způsobilosti |
---|
mgr. studium: dle rámcového zadání a přidělených zdrojů koordinují činnost týmu, nesou odpovědnost za jeho výsledky, |
mgr. studium: srozumitelně a přesvědčivě sdělují odborníkům i laikům informace o povaze odborných problémů a vlastním názoru na jejich řešení, |
Výsledky učení |
---|
Odborné znalosti |
---|
Schopnost popsat a vysvětlit model kooperativního vývoje, automatizovaného nasazení, bezpečného a spolehlivého provozu aplikace. |
Schopnost rozumět základním pojmům a problémům kooperativního vývoje jako jsou technický dluh, regrese, problém důvěry v kvalitu svobodného software a software třetích stran. |
Schopnost rozumět funkcím a významu jednotlivých etap vývoje software a být schopen jejich realizace pomocí software třetích stran nebo vlastními prostředky. |
Znalost strategií pro nasazení a aktualizaci software. |
Znalost přístupů k distribuci software a jeho částí. |
Základní znalost technologií kontejnerů. |
Přehled o možnostech monitoringu, metrikách provozovaného software a jejich uplatnění při diagnostice a sledování trendů provozních parametrů software. |
Odborné dovednosti |
---|
Praktická zkušenost s alespoň jedním nástrojem pro automatizaci správy infrastruktury a jejího nasazení. |
Praktická zkušenost s alespoň jedním nástrojem pro tvorbu sestavovací linky software. |
Praktická zkušenost s CI/CD modelem a návrhem sestavovací linky. |
Praktická zkušenost s návrhem a implementací modelu kooperativního vývoje. |
Obecné způsobilosti |
---|
mgr. studium: používají své odborné znalosti, odborné dovednosti a obecné způsobilosti alespoň v jednom cizím jazyce, |
Vyučovací metody |
---|
Odborné znalosti |
---|
Přednáška s diskusí, |
Skupinová konzultace, |
Samostudium, |
Odborné dovednosti |
---|
Cvičení (praktické činnosti), |
Demonstrace dovedností, |
Skupinová konzultace, |
Obecné způsobilosti |
---|
Přednáška s aktivizací studentů, |
Hodnotící metody |
---|
Odborné znalosti |
---|
Písemná zkouška, |
Průběžné hodnocení, |
Odborné dovednosti |
---|
Demonstrace dovedností (praktická činnost), |
Průběžné hodnocení, |
Obecné způsobilosti |
---|
Písemná zkouška, |
Doporučená literatura
|
-
Gonzales, David. Implementing Modern DevOps. Packt Publishing, 2017. ISBN 978-1-78646-687-7.
-
Hsu, Tony. Hands-On Security in DevOps. Packt Publishing, 2019. ISBN 978-1-78899-550-4.
-
Krief, Mikael. Learning DevOps. Packt Publishing, 2019. ISBN 978-1-83864-273-0.
|