20 Nejčastějších otázek a odpovědí v rozhovoru pro DevOps [2022]

DevOps se stále více stává oblíbeným způsobem vytváření a nasazování aplikací, což se promítlo do rostoucí poptávky po profesionálech DevOps.

Tento článek se bude zabývat některými z nejčastěji kladených otázek v rozhovorech DevOps a jejich odpovědí. Použití těchto otázek jako základu ke studiu může zvýšit vaše šance na získání zaměstnání, nebo pokud jste náborář, mohou vám pomoci v procesu najímání.

Často kladené otázky a odpovědi v rozhovorech DevOps

Co je pro vás DevOps?

DevOps je přístup zaměřený na zlepšení práce během životního cyklu vývoje softwaru. Proces DevOps je znázorněn jako nekonečná smyčka, která zahrnuje fáze plánování, kódování, sestavování, testování, uvolňování, nasazení, provozu a monitorování.

DevOps ovlivňuje životní cyklus aplikace během fáze plánování, vývoje, dodávky a provozu. Každá fáze závisí na ostatních a fáze nejsou specifické pro roli. Ve skutečné kultuře DevOps je každá role do určité míry zapojena do každé fáze.

Proč je DevOps důležité?

Týmy, které používají přístup DevOps, mají tendenci dokončit své projekty rychleji. Tímto způsobem se zabrání chybám v komunikaci, což usnadní rychlou implementaci vylepšení a dalších nezbytných změn. Přístup DevOps podporuje větší spolupráci mezi vývojovými a provozními týmy, kde jsou cíle všech více sladěny. Některé výhody můžete shrnout následovně:

  • Vylepšená komunikace
  • Týmová práce a soudržnost
  • Vylepšená spolupráce
  • Rychlejší dodání kvalitních produktů
  • Snížená složitost a rychlé řešení problémů
  • Větší škálovatelnost a flexibilita při přidávání nového kódu
  • Stabilnější operační prostředí
  • Větší automatizace
  • Snížení nákladů a využití zdrojů
  • Zabezpečení prostřednictvím integrovaných a automatizovaných nástrojů

Jaké jsou každodenní úkoly DevOps?

Některé z každodenních úkolů, které byste mohli zmínit, jsou:

  • Zajistěte nepřetržitou integraci a nasazení
  • Přidělovat a komunikovat úkoly, které mají být provedeny
  • Navrhnout a objednat zkušební protokoly
  • Monitorování a sběr metrik infrastruktury a aplikací
  • Analýza výsledků získaných v každé fázi vývoje
  • Snižte chybovost a dobu zotavení v případě chyb
  • Zkraťte dodací lhůtu

Jak DevOps pomáhá vývojářům?

Když je implementována metodika DevOps, vývojáři již nemusí čekat na zpětnou vazbu od provozního týmu, aby opravili chyby v jejich kódu. Nyní však mohou tyto problémy řešit rychleji, protože mají neustálou zpětnou vazbu ke svému kódu.

  Povolte mřížku na obrazovce pro snadnější uspořádání oken

Co je kontrola verzí?

Kontrola verzí je postup, který nám umožňuje sledovat změny, které provádíme v souboru nebo sadě souborů v průběhu času, takže konkrétní verze lze později načíst. Nástroj pro správu verzí nám umožňuje snadno sledovat postup vaší vývojové práce a ukládat různé verze zdrojového kódu, abyste se mohli v případě potřeby vrátit k předchozí. Jedním z nejpoužívanějších nástrojů v této fázi vývoje softwaru je Git.

Co je CI/CD a jaké jsou jeho výhody?

Průběžná integrace (CI)

CI kombinuje nástroje a postupy, které usnadňují poskytování vysoce kvalitního a rychlého softwaru. Tímto způsobem jsou eliminována úzká hrdla a je zabráněno technickým problémům ve fázích spouštění.

Nepřetržité doručování (CD)

Tento postup automatizuje doručování změn kódu a zajišťuje, že kód lze rychle doplnit v produkci a že aplikace fungují správně.

Průběžné nasazování (CD)

Na rozdíl od nepřetržitého dodávání je cílem této praxe to, že při nasazení softwaru ve výrobě nedochází k žádnému lidskému zásahu. Publikování nového nebo změněného kódu do produkce je automatizované.

CI/CD implementuje DevOps po celý životní cyklus aplikace. Tyto postupy pomáhají zlepšit produktivitu v různých fázích procesu vývoje softwaru tím, že je zjednodušují a automatizují.

Co je nepřetržité monitorování

Nepřetržité monitorování je postup DevOps, který zahrnuje monitorování, upozorňování a přijímání opatření na kódu i infrastruktuře. Takže problém, který může při implementaci nastat, je rychle detekován a identifikován, což zkracuje čas na řešení problémů.

Proč je průběžné testování důležité?

Nepřetržité testování je automatizace testů brzy, postupně a přiměřeně v procesu vývoje. Je to nezbytné, protože umožňuje zajistit kvalitu kódu. Chyby jsou detekovány včas a zpětná vazba kódu se provádí rychleji.

Vysvětlete několik typů testů používaných v DevOps?

Jednotkové testy

Izolovaně testují konkrétní část kódu. Testy jednotek nesmí být připojeny k databázi, používat systém souborů, komunikovat s externími systémy nebo interagovat se systémovými komponentami. Umožňuje jim to rychle běžet a získáte rychlou zpětnou vazbu, pokud změny naruší stávající funkce.

Testy součástí

Testují velké skupiny funkcí, aby mohli identifikovat problémy, jako jsou tyto. Jsou obecně pomalejší, vyžadují složitější konfiguraci a více I/O připojení k databázi, souborovému systému nebo jiným systémům.

Testy nasazení

Takové testy ověřují, že nasazení fungovalo, jinými slovy, že je vaše aplikace správně nainstalována, nakonfigurována, má přístup ke všem službám, které potřebuje, a že odpovídá.

Kromě toho existují také testy využití a použitelnosti. Chcete-li se dozvědět více o testování, přečtěte si článek o typech testování aplikací.

Co je architektura mikroslužeb a jak se liší od tradiční architektury?

Tradiční způsob psaní softwaru je monolitický. To znamená, že všechny funkce aplikace jsou shromážděny v jediném bloku. V případě chyb nebo potřeby aktualizace je analyzován kód, který řídí celý produkt.

  Jak změnit můj obrázek Google na animovaný GIF

Generuje zastavení nebo dokonce pády a představuje velké nebezpečí pro zachování kódu. Pro zákazníky to znamená ztráty a bolesti hlavy.

V architektuře mikroslužeb představují funkce aplikace nezávisle vyvinutou a integrovanou službu. Komponenty jsou samostatné, ale spolupracují při provádění souvisejících úkolů.

Tímto způsobem běží každá nezávislá služba, aniž by zasahovala do ostatních, což platí i v případech selhání. Pokud některá funkce selže, je možné ji upravit, aniž by byla ohrožena funkčnost celé aplikace.

Přicházejí mikroslužby, aby byly DevOps ještě agilnější a efektivnější, urychlují end-to-end vývoj a činí aplikace ještě škálovatelnějšími.

Co je infrastruktura jako kód?

Infrastruktura jako kód je přístup k definování výpočetní a síťové infrastruktury, který využívá techniky správy zdrojového kódu a je s ním zacházeno jako s jakýmkoli softwarovým systémem.

Tento kód může být uchováván pod kontrolou zdroje, aby byla umožněna slyšitelnost a reprodukovatelná konstrukce, s výhradou testovacích postupů a plné disciplíny nepřetržitého doručování.

Infrastruktura jako kód je založena na několika postupech:

  • Použijte definiční soubory
  • Samodokumentované systémy a procesy
  • Verze všech prvků
  • Průběžně testovat systémy a procesy
  • Malé změny místo dávek
  • Udržujte služby dostupné nepřetržitě

Nástroje pro automatizaci sestavení specifikují, jak by měl být software sestaven (jaké kroky je třeba provést a v jakém pořadí) a jaké závislosti jsou vyžadovány (jaký další software musí být přítomen, aby bylo sestavení úspěšné).

Některé nástroje jsou vhodnější pro projekty ve specifických programovacích jazycích, jako je Maven a Apache’s Ant, které, i když lze technologii použít s jinými jazyky, se většinou používají v projektech Java. Jiné, jako je Hudson nebo Jenkins, lze použít šířeji s různými projekty.

Co je to DevOps Pipeline?

Potrubí DevOps je proces, který před vydáním nového softwaru zahrnuje několik kroků. Lze jej použít ve všech fázích projektu, od integrace a testování až po dodání a nasazení. Obecně prochází následujícími fázemi a týmy:

  • Vize produktu: definuje vlastnosti produktu;
  • Dev Team: vyvíjí se iterativně a postupně;
  • Oblast působení: implementuje a udržuje stabilní prostředí;
  • Monitorování a zpětná vazba: snažte se vytvářet hodnotu a využívat ji zákazníkem.

Jaké jsou různé fáze potrubí CI/CD?

Kroky, které tvoří potrubí CI/CD, je několik seskupených úkolů nazývaných fáze potrubí. Stručně řečeno, jsou to:

  • Kompilace: fáze, ve které je aplikace kompilována;
  • Test: fáze, ve které se testuje kód. Zde automatizace šetří čas a námahu;
  • Spuštění: když je aplikace odeslána do úložiště;
  • Nasazení: Kód je nasazen do produkčního prostředí;
  • Ověření a soulad: Můžete použít nástroje pro ověřování zabezpečení obrázků, jako je Clair, abyste zajistili kvalitu svých obrázků jejich porovnáním se známými chybami zabezpečení (CVE).
  Jak vytvořit Ganttův diagram v Tabulkách Google

Toto jsou nejběžnější fáze potrubí DevOps. Každá společnost má však své specifické potřeby a možnosti.

Co znamená virtualizace platforem a jaké jsou její výhody?

Virtualizace platforem znamená simulaci celého počítačového systému pro současné spuštění více instancí operačních systémů na jediném fyzickém počítači.

V této konfiguraci má monitor virtuálního stroje (VMM) nebo hypervizor plnou kontrolu nad hardwarovými prostředky fyzického stroje. Hostované operační systémy běží na virtuálních strojích, které VMM spravuje. Virtualizace prostředí zahrnuje simulaci jednoho nebo více virtuálních strojů a síťových připojení mezi nimi.

Virtualizace může několika způsoby pomoci snížit čas strávený nasazením a rizika s tím spojená. Použití virtuálních strojů při nasazení je obrovskou pomocí při dosahování efektivní správy konfigurace vertikálně i horizontálně napříč vašimi systémy.

Využití virtualizace přináší zejména následující výhody:

  • Rychlá reakce na měnící se požadavky
  • Konsolidace
  • Standardizace
  • Snadná údržba základních linií

Jaký je rozdíl mezi kontejnery a virtuálními stroji?

Kontejner i virtuální počítač pracují s virtualizací a izolací prostředí, aby podpořily zpracování nezávisle na aplikacích. Přesto kontejnery vytvářejí izolovaná prostředí, kde mohou různé aplikace běžet současně, protože rozdělení je provedeno na úrovni dostupných zdrojů, jako je paměť a zpracování. Na druhou stranu virtuální stroj umožňuje fyzickému stroji umístit ostatní s různými operačními systémy, pevnými disky a hardwarově nezávislými od těch původních.

Jaký je hlavní rozdíl mezi Dockerem a Kubernetes?

Docker je jedním z nejpoužívanějších kontejnerových nástrojů DevOps. Zaměřuje se na přenositelnost aplikací, jejich umísťování do technologických kontejnerů a balicích systémů a jejich přesouvání napříč různými platformami.

Kubernetes je zároveň nástroj pro orchestraci kontejnerů, který dokáže seskupovat kontejnery podle logické kategorizace. Lze jej nasadit na více počítačů prostřednictvím automatizované distribuce.

Přečtěte si více o Kubernetes vs. Přístavní dělník.

Jaké jsou některé metriky telemetrie v DevOps?

  • Obchodní úroveň: Příklady zahrnují počet prodejních transakcí, výnosy z prodejních transakcí, registrace uživatelů, míru odchodu a výsledky A/B testů.
  • Úroveň aplikace: Příklady zahrnují časy transakcí, doby odezvy uživatelů a selhání aplikací.
  • Úroveň infrastruktury: Příklady zahrnují provoz webového serveru, zatížení procesoru a využití disku.
  • Úroveň klientského softwaru: Příklady zahrnují chyby aplikací, selhání a uživatelem měřené doby transakcí.
  • Úroveň kanálu nasazení: Příklady zahrnují stav kanálu sestavení (červený nebo zelený u různých automatických testovacích sad), měnící se termíny nasazení, frekvence nasazení, propagace testovacího prostředí a stav prostředí.

Jaké technologie používáte k provádění DevOps?

Cílem této otázky je zjistit, jaké technologie můžete použít k implementaci kultury DevOps v rámci organizace. Některé z nejběžnějších technologií, které může DevOps používat, jsou:

  • Neustálý vývoj: Git, SVN, Mercurial, CVS, Jira
  • Nepřetržitá integrace: Jenkins, Bamboo, Hudson
  • Neustálý vývoj: Nexus, Archive, Tomcat
  • Nepřetržité nasazení: Loutka, Kuchař, Docker
  • Nepřetržité monitorování: Splunk, ELK Stack, Continuous Nagios
  • Testování: Selenium, Katalon Studio

Řekněte nám o svých zkušenostech s řízením projektů DevOps

Dovednosti DevOps nejsou jen o technickém know-how a vyžadují lidské a manažerské dovednosti, které se často vyskytují mezi manažery, programovými řediteli a projektovými manažery.

Je nezbytné vědět, jak řídit a podporovat změny, poskytovat bránu pro usnadnění přenosu nových verzí kódu na provozní stranu, vyhodnocovat a monitorovat různé platformy a nástroje pro měření výkonu a analyzovat a sdílet výsledky za účelem zlepšení budoucích dodávek. , atd.

Přistupte k této otázce pomocí metodologie a vysvětlete svou cestu při řešení složitých problémů. Jak hodláte zlepšit fungování infrastruktur? Jak plánujete spolupráci s předními, středními a back-office vývojáři? Jaké monitorovací nástroje ovládáte? Zvažte také sdílení zkušeností s řešením konfliktů v rámci vašeho týmu.

Chcete-li se dozvědět více, můžete zvážit přihlášení do jednoho z těchto kurzů DevOps.