|
Vyučující
|
-
Otta Maxmilián, 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.
|