Zajímá vás, jaké otázky zazní během vašeho příštího pohovoru na pozici DevOps inženýra? Projděte si naše praktické shrnutí.
Koncept DevOps se objevil mezi lety 2007 a 2008, a nyní se stal jednou z nejvyhledávanějších oblastí v softwarovém inženýrství. DevOps představuje kulturní transformaci, která zasahuje všechny aspekty vývoje a provozu softwaru.
Oba týmy (vývoj a provoz) úzce spolupracují od počátečního plánování a vytváření až po monitorování a iterace. Následují typické otázky, na které narazíte, pokud se ucházíte o pozici DevOps inženýra.
Co se rozumí pod pojmem DevOps?
DevOps je zkratka pro „development and operations“ (vývoj a provoz). Tato metodika softwarového inženýrství spojuje vývojové a provozní týmy s cílem automatizovat všechny fáze projektu. DevOps tým se zaměřuje na správu zdrojů, komunikaci a týmovou spolupráci.
Jaké jsou jednotlivé fáze v metodologii DevOps?
- Kontinuální vývoj: Jedná se o fázi plánování a psaní kódu.
- Kontinuální integrace: V této fázi vývojový tým integruje různé komponenty a zajišťuje, aby nedocházelo k chybám v kódu.
- Kontinuální testování: Předem naplánovaná a automatizovaná fáze testování.
- Kontinuální nasazování: Tato fáze zabezpečuje plynulý vývoj bez negativního dopadu na výkon aplikace jako celku.
- Kontinuální monitorování: Zajišťuje se celková efektivita aplikace.
- Kontinuální zpětná vazba: Analýza problémů a výkonu na základě hlášení koncových uživatelů.
- Kontinuální operace: Umožňuje vývojářům vytvářet lepší verze produktu a rychle identifikovat problémy.
Jaké jsou přínosy DevOps?
- Rychlejší a kvalitnější dodávka produktů.
- Zlepšená škálovatelnost.
- Rychlé řešení problémů.
- Efektivnější využití zdrojů.
Jmenujte některé klíčové ukazatele výkonnosti (KPI) pro DevOps.
- Frekvence nasazení
- Míra změn
- Doba trvání nasazení
- Míra selhání nasazení
- Doba detekce problému
- Rychlost úniku chyb
Jaký je rozdíl mezi DevOps a Agile?
DevOps je kultura, která podporuje spolupráci mezi všemi členy týmu, kteří se podílejí na vývoji a údržbě softwaru.
Agile je metodika vývoje, která je navržena tak, aby týmy byly produktivní a řídily vydávání na základě měnících se potřeb.
Jaká je úloha AWS v DevOps?
AWS nabízí flexibilní sadu služeb, které firmám usnadňují rychlý a spolehlivý vývoj aplikací. Služby AWS zjednodušují nasazování kódu, zřizování infrastruktury, automatizaci procesů uvolňování softwaru a monitorování výkonu infrastruktury.
K čemu slouží SSH?
SSH (Secure Shell) je protokol, který umožňuje bezpečné propojení mezi různými počítači. SSH se používá k různým účelům, například k zajištění silného ověřování, robustního šifrování, zachování integrity připojení a zabezpečení.
Co je kontinuální integrace?
Kontinuální integrace umožňuje softwarovým vývojářům slučovat svůj kód do centrálního úložiště. Poté kód prochází automatizovanými sestaveními a testy.
Co je správa konfigurací?
Jedná se o proces systémového inženýrství, jehož cílem je zavést a udržovat konzistentní výkonnost, funkční a fyzické atributy systému/produktu během celého jeho životního cyklu.
Co je kontinuální testování?
Je to předem naplánované a automatické testování aplikace během vývoje.
Co je Git?
Je to open-source a bezplatný nástroj pro správu zdrojového kódu. Je navržen pro malé i velké projekty.
Uveďte některé základní příkazy Git.
git clone <https://link-na-repozitar>
git branch <název-větve>
git checkout <název-vaší-větve>
git add <soubor>
git commit -m "zpráva-pro-commit"
git push <remote> <název-větve>
git pull <remote>
Vysvětlete rozdíl mezi git merge a git rebase.
Příkaz git merge
umožňuje vývojářům sloučit různé větve Git, přičemž historie commitů příslušných větví zůstává zachována.
Příkaz git rebase
umožňuje vývojářům integrovat změny z jedné větve do druhé, přičemž historie commitů se po dokončení procesu mění.
Vysvětlete rozdíl mezi git fetch a git pull.
Příkaz git fetch
instruuje Git, aby stáhl/zkontroloval nejnovější metadata z originálního repozitáře. Nedochází však k přenosu souborů, pouze ke kontrole.
Příkaz git pull
kontroluje a přenáší změny ze vzdáleného repozitáře do lokálního projektu.
Co je konflikt při slučování?
Ke konfliktům při slučování dochází, když sloučíte dvě větve s protichůdnými změnami. Obvykle se to stane, když různí vývojáři změní stejný řádek kódu nebo soubor.
Co je řízení verzí a jaké jsou jeho typy?
Řízení verzí (správa zdrojového kódu) je proces sledování a správy změn v softwarovém kódu.
Zde jsou různé typy řízení verzí:
- Centralizované: Jeden „centrální“ server s kopií zdrojového kódu. Všechny změny se ukládají do této „centrální“ kopie. Příklady jsou Subversion (SVN) a Perforce.
- Distribuované (DVCS): Nemá centrální server pro všechny soubory projektu. Příklady jsou Git a Mercurial.
Jaké jsou výhody používání správy verzí?
- Pomáhá vývojářům zachovat efektivitu a agilitu.
- Poskytuje kompletní záznam o každé změně projektu/souboru.
- Zlepšuje sledovatelnost.
- Usnadňuje správu slučování a vytváření větví.
- Umožňuje spolupráci.
Co je větvení?
Větvení znamená vytvoření samostatné/nové verze hlavního repozitáře. Větve vám umožňují pracovat na různých částech projektu bez dopadu na hlavní větev.
Co jsou strategie větvení?
Strategie slučování jsou metodiky, které týmy pro vývoj softwaru používají při psaní, slučování a nasazování kódu. Tento přístup zajišťuje, že chyby a defekty jsou opraveny ve fázi větve, než se sloučí s hlavním projektem.
Co je automatizované testování a jak ho automatizovat v DevOps?
Automatizované testování je technika automatické kontroly a ověřování kódu. Provádí se za účelem ověření, zda byly splněny standardy kvality pro funkčnost (obchodní logiku), styl kódu a uživatelskou zkušenost.
Automatizované testování se provádí pomocí nástrojů jako Selenium a Katalon.
Co je Jenkinsfile?
Jenkinsfile je textový soubor, který obsahuje definici Jenkins pipeline. Je uložen v repozitáři pro kontrolu zdrojového kódu. Mezi jeho výhody patří: umožňuje auditní záznam pro pipeline, kontrolu kódu a iteraci v pipeline a poskytuje jednotný zdroj pravdy o pipeline.
Vysvětlete architekturu Jenkins.
Jenkins má architekturu master-slave. To znamená, že jeden „master“ koordinuje mnoho „slaves“. Díky tomu může Jenkins spouštět stejné testy v různých prostředích a výsledky se shromažďují a kombinují na hlavním uzlu pro monitorování.
Jaké jsou nejlepší pluginy pro Jenkins?
- Blue Ocean Plugin pro Jenkins
- Mailer Plugin pro Jenkins
- Git plugin pro Jenkins
- Jira plugin pro Jenkins
- Docker plugin pro Jenkins
- Maven Integration Plugin pro Jenkins
- Kubernetes plugin pro Jenkins
- SonarQube plugin pro Jenkins
- Amazon EC2 plugin pro Jenkins
Co je Selenium IDE?
Selenium IDE je nástroj, který zaznamenává interakce v prohlížeči pro testovací případy. Umožňuje nastavit body přerušení a zkontrolovat a pozastavit proměnné, když dojde k chybě.
Jaké jsou různé komponenty Selenium?
(Tato otázka zjevně chybí v původním textu – může se doplnit)
Jaké jsou různé typy testování v Selenium?
- End-to-end testování
- Regresní testování
- Systémové testování
- Testování výkonu
- Testování kompatibility
Jaké jsou různé výjimky v Selenium?
- ElementNotSellectableException
- NoAlertPresentException
- InvalidSelectorException
- NoSuchSessionException
- StaleElementReferenceException
- NoSuchWindowException
- NoSuchFrameException
- NoSuchElementException
- TimeoutException
- ElementNotVisibleException
Co dělají driver.close()
a driver.quit()
ve WebDriveru?
Příkaz driver.close()
uzavře okno prohlížeče, které je aktuálně aktivní. Pokud je otevřen pouze jeden prohlížeč, uzavře se celá relace prohlížeče.
Příkaz driver.quit()
uzavře celou relaci prohlížeče včetně všech vyskakovacích oken, karet a oken prohlížeče.
Co je Dockerfile?
Dockerfile je textový dokument, který obsahuje všechny příkazy, které uživatel může použít v příkazovém řádku k sestavení obrazu.
Jaký je rozdíl mezi obrazy Dockeru a kontejnery Dockeru?
Obrazy Dockeru jsou šablony určené pouze pro čtení, vytvořené ze zdrojového kódu, nástrojů, knihoven, externích závislostí a dalších souborů potřebných pro úspěšné spuštění aplikace na libovolném operačním systému nebo platformě.
Kontejner Dockeru je box, který spouští šablony obrazů Dockeru.
Vysvětlete architekturu Dockeru.
Docker se řídí architekturou klient-server a zahrnuje Docker Client, Docker Host a Docker Registry.
Klient Docker používá REST API a příkazy ke komunikaci se serverem (Docker Daemon).
Klient Docker používá CLI ke spouštění těchto příkazů:
docker build
docker pull
docker run
- Docker Host poskytuje prostředí pro běh a spouštění aplikací. Skládá se z démona Dockeru, úložiště, obrazů, kontejnerů a sítí.
- Docker Registry spravuje a ukládá obrazy Dockeru.
Cloudové platformy, které podporují Docker
(Tato otázka zjevně chybí v původním textu – může se doplnit)
Co je Nagios?
Nagios je nástroj, který monitoruje celou IT infrastrukturu s cílem zajistit správné fungování obchodních procesů, systémů, služeb a aplikací.
Jak Nagios funguje?
- Sledování: IT specialisté konfigurují Nagios pro sledování síťových protokolů, systémových metrik, aplikací, síťové infrastruktury, služeb a serverů.
- Upozornění: Nagios odesílá výstrahy, když kritické komponenty selžou. Upozornění se posílají přes SMS, vlastní kód nebo e-mail.
- Odezva: IT tým bere na vědomí výstrahy a jedná.
- Hlášení: Generují se reporty s historickým záznamem upozornění, výpadků, odpovědí na upozornění a událostí pro pozdější kontrolu.
- Údržba: Plánované výpadky zabraňují odesílání výstrah během údržby.
Uveďte některé pluginy pro Nagios.
- Oficiální pluginy Nagios: Vyvinuté a spravované oficiálním týmem.
- Vlastní pluginy: Napsané jednotlivci/firmami pro uspokojení specifických potřeb.
- Komunitní pluginy: Vyvinuté členy komunity Nagios.
Vysvětlete virtualizaci s Nagios.
Nagios umožňuje sledovat různé metriky na různých virtualizačních platformách. Může se spouštět na platformách jako Xen, Amazon EC2, VMware a Microsoft Virtual PC.
Jak Nagios pomáhá s monitorováním?
Nagios používá agenty jako NRPE, check_mk nebo SNMP ke shromažďování statistik na serveru a odesílání upozornění, pokud jsou metriky nad definovanou hranicí.
Jaká čísla portů používá Nagios pro monitorování?
SNMP, porty 161 a 162
Co je Nagios Network Analyzer?
Nagios Network Analyzer je software pro analýzu tokových dat, který uživatelům umožňuje proaktivně řešit neobvyklé chování, výpadky a bezpečnostní hrozby před přerušením obchodních operací. Tento komerční nástroj nabízí podrobný přehled o síťovém provozu a IT infrastruktuře.
Proměnné, které ovlivňují dědičnost a rekurzi v Nagios.
- Název: Šablona „jméno“ umožňuje dědit proměnné/vlastnosti objektu.
- Použít: Zadejte název objektu šablony, ze kterého chcete dědit proměnné/vlastnosti.
- Registrovat: Určuje, zda má být název objektu šablony „zaregistrován“ u Nagios.
Co je Puppet?
Puppet je open-source nástroj pro správu a nasazení konfigurací softwaru.
Co je Puppet manifest?
Puppet manifest je soubor, který obsahuje konfigurační jazyk Puppet. Popisuje, jak mají být zdroje konfigurovány.
Co je Puppet code?
Puppet code je deklarativní kód, což znamená, že pomocí něj popisujete požadovaný stav vašeho systému, a nikoli kroky potřebné k dosažení tohoto stavu.
Co je Chef?
Chef je nástroj pro správu konfigurací, který převádí infrastrukturu na kód. Zaměřuje se na psaní kódu namísto manuálního procesu.
Jak Chef funguje?
Práce s Chef začíná, když systémoví administrátoři nebo vývojáři definují úlohy, které mají být automatizovány. Recepty a kuchařky (malé programy napsané v jazyce specifickém pro danou doménu) jsou poté zachyceny a testovány pomocí nástrojů jako Test Kitchen, ChefSpec a Foodcritic.
Pokud kuchařky a recepty fungují podle očekávání, jsou nasazeny na server Chef pomocí nástrojů příkazového řádku knife a Chef. Proces nasazení Chef zahrnuje server Chef, pracovní stanice a uzly. K dispozici je více než 3000 šablon kuchařek, které si můžete přizpůsobit. O zbytek práce se pak postará Chef.
Shrnutí
Podle Glassdoor činí průměrný roční plat DevOps inženýra v USA 104 281 $. I když je DevOps poměrně nová oblast, stále více společností přijímá pracovníky na tyto pozice a nabízí kurzy, aby jim poskytly potřebné dovednosti. Výše uvedené otázky patří mezi ty, se kterými se pravděpodobně setkáte při pohovoru na pozici DevOps.
Doporučujeme prozkoumat také dostupné online kurzy, abyste se o DevOps naučili více.