20 gyakran ismételt DevOps-interjú kérdés és válasz [2022]

A DevOps egyre népszerűbb módja az alkalmazások építésének és üzembe helyezésének, ami a DevOps szakemberek iránti növekvő keresletet eredményezte.

Ez a cikk a DevOps interjúk leggyakrabban feltett kérdéseivel és az azokra adott válaszokkal foglalkozik. Ha ezeket a kérdéseket tanulmányozási alapként használja, növelheti a felvételi esélyeit, vagy ha Ön toborzó, akkor segíthet a felvételi folyamatban.

Gyakran ismételt DevOps-interjú kérdések és válaszok

Mi az Ön számára a DevOps?

A DevOps egy olyan megközelítés, amelynek célja a munka javítása a szoftverfejlesztés teljes életciklusa során. A DevOps folyamat egy végtelen hurokként van ábrázolva, amely a tervezés, a kódolás, az építés, a tesztelés, a kiadás, a telepítés, a működés és a felügyelet szakaszait tartalmazza.

A DevOps befolyásolja az alkalmazás életciklusát annak tervezési, fejlesztési, szállítási és üzemeltetési szakaszában. Mindegyik fázis a többitől függ, és a fázisok nem egy-egy szerepre vonatkoznak. Egy igazi DevOps-kultúrában minden szerep bizonyos mértékben részt vesz az egyes fázisokban.

Miért fontos a DevOps?

A DevOps megközelítést alkalmazó csapatok általában gyorsabban hajtják végre a projekteket. Így elkerülhetők a kommunikációs hibák, megkönnyítve a fejlesztések és egyéb szükséges változtatások gyors végrehajtását. A DevOps megközelítés nagyobb együttműködést ösztönöz a fejlesztői és az üzemeltetési csapatok között, ahol mindegyikük céljai jobban illeszkednek egymáshoz. Néhány előnyt az alábbiakban foglalhat össze:

  • Továbbfejlesztett kommunikáció
  • Csapatmunka és összetartás
  • Továbbfejlesztett együttműködés
  • Minőségi termékek gyorsabb szállítása
  • Csökkentett bonyolultság és gyors problémamegoldás
  • Nagyobb méretezhetőség és rugalmasság új kód hozzáadásához
  • Stabilabb működési környezet
  • Nagyobb automatizálás
  • Költségcsökkentés és erőforrás-felhasználás
  • Biztonság integrált és automatizált eszközökön keresztül

Mik a DevOps napi feladatai?

A napi feladatok közül néhányat megemlíthet:

  • Folyamatos integráció és telepítés biztosítása
  • Az elvégzendő feladatok kiosztása és kommunikációja
  • Tesztprotokollok tervezése és megrendelése
  • Az infrastruktúra és az alkalmazási mutatók figyelése és gyűjtése
  • A fejlesztés egyes fázisaiban elért eredmények elemzése
  • Csökkentse a hibaarányt és a helyreállítási időt hiba esetén
  • Csökkentse a szállítási időt

Hogyan segít a DevOps a fejlesztőknek?

Amikor egy DevOps módszert alkalmaznak, a fejlesztőknek többé nem kell visszajelzést várniuk az üzemeltetési csapattól, hogy kijavítsák a kódjukon belüli hibákat. De most gyorsabban meg tudják oldani ezeket a problémákat, mert folyamatos visszajelzést kapnak a kódjukról.

  A „Feladatkezelőt a rendszergazda letiltotta” hiba kijavítása

Mi az a verziókezelés?

A verziókezelés egy olyan gyakorlat, amely lehetővé teszi számunkra, hogy nyomon kövessük a fájlon vagy fájlkészleten idővel végrehajtott módosításokat, így az egyes verziók később lekérhetők. A verzióvezérlő eszköz segítségével könnyedén nyomon követhetjük fejlesztési munkája előrehaladását, és menthetjük a forráskód különböző verzióit, hogy szükség esetén visszatérhessünk az előzőhöz. A szoftverfejlesztés ezen szakaszában az egyik leggyakrabban használt eszköz a Git.

Mi az a CI/CD, és mik az előnyei?

Folyamatos integráció (CI)

A CI olyan eszközöket és gyakorlatokat kombinál, amelyek megkönnyítik a kiváló minőségű, gyors szoftverek szállítását. Így megszűnnek a szűk keresztmetszetek, és elkerülhetők a technikai problémák az indítási fázisokban.

Folyamatos kézbesítés (CD)

Ez a gyakorlat automatizálja a kódmódosítások kézbesítését, biztosítva a kód gyors kiegészítését a termelésben, és az alkalmazások megfelelő működését.

Folyamatos telepítés (CD)

A folyamatos kézbesítéssel ellentétben ennek a gyakorlatnak az a célja, hogy ne legyen emberi beavatkozás a szoftver éles üzembe helyezésekor. Az új vagy módosított kód éles kiadása automatizált.

A CI/CD az alkalmazás teljes életciklusa során megvalósítja a DevOps-t. Ezek a gyakorlatok azáltal, hogy racionalizálják és automatizálják, elősegítik a termelékenység javítását a szoftverfejlesztési folyamat különböző fázisaiban.

Mi a folyamatos monitorozás

A folyamatos figyelés egy DevOps-gyakorlat, amely magában foglalja a figyelést, a riasztást és a kóddal és az infrastruktúrával kapcsolatos műveleteket. Így a megvalósítás során felmerülő problémákat gyorsan észleljük és azonosítjuk, csökkentve ezzel a problémák megoldásának idejét.

Miért fontos a folyamatos tesztelés?

A folyamatos tesztelés a tesztek korai, fokozatos és megfelelő automatizálását jelenti a fejlesztési folyamatban. Ez elengedhetetlen, mert lehetővé teszi a kód minőségének biztosítását. A hibákat a rendszer korán észleli, és a kód visszajelzése gyorsabb.

Magyarázzon el néhány, a DevOps-ban használt teszttípust?

Egységtesztek

Egy adott kódrészletet külön-külön tesztelnek. Az egységtesztek nem kapcsolódhatnak az adatbázishoz, nem használhatják a fájlrendszert, nem beszélhetnek külső rendszerekkel, és nem léphetnek interakcióba rendszerelemekkel. Lehetővé teszi, hogy gyorsan fussanak, és gyors visszajelzést kap, ha a változások megszakították a meglévő funkciókat.

Alkatrész tesztek

A funkciók nagy csoportjait tesztelik, hogy azonosítani tudják az ehhez hasonló problémákat. Általában lassabbak, bonyolultabb konfigurációt és több I/O-t igényelnek adatbázishoz, fájlrendszerhez vagy más rendszerekhez.

Telepítési tesztek

Az ilyen tesztek ellenőrzik, hogy a központi telepítés működött-e, vagyis az alkalmazás megfelelően van-e telepítve, konfigurálva, hozzáfér-e a szükséges szolgáltatásokhoz, és válaszol-e.

Ezeken kívül vannak még kihasználási és használhatósági tesztek is. Ha többet szeretne megtudni a tesztelésről, tekintse meg az alkalmazástesztelés típusairól szóló cikket.

Mi az a mikroszolgáltatás-architektúra, és miben különbözik a hagyományos architektúrától?

A szoftverírás hagyományos módszere monolitikus. Ez azt jelenti, hogy egy alkalmazás összes funkciója egyetlen blokkban van összegyűjtve. Hiba vagy frissítés szükségessége esetén a rendszer elemzi a teljes terméket szabályozó kódot.

  Ez az interaktív diagram egyéni szűrőket használ a megfelelő laptop megtalálásához

Leállásokat vagy akár összeomlásokat generál, és nagy veszélyt jelent a kód megőrzésére. Az ügyfelek számára ez veszteségeket és fejfájást jelent.

A mikroszolgáltatási architektúrában az alkalmazás funkciói egy önállóan fejlesztett és integrált szolgáltatást jelentenek. Az összetevők különállóak, de együtt működnek a kapcsolódó feladatok végrehajtásában.

Így minden független szolgáltatás anélkül fut, hogy zavarná a többit, ami hiba esetén is érvényes. Ha egy funkció meghibásodik, akkor az egész alkalmazás működésének veszélyeztetése nélkül módosítható.

A mikroszolgáltatások azért érkeznek, hogy a DevOpsot még agilisabbá és hatékonyabbá tegyék, felgyorsítva a végpontok közötti fejlesztést, és még jobban méretezhetővé tegyék az alkalmazásokat.

Mi az infrastruktúra kódként?

Az infrastruktúra mint kód a számítási és hálózati infrastruktúra meghatározásának megközelítése, amely forráskód-kezelési technikákat használ, és úgy kezelik, mint bármely szoftverrendszert.

Ez a kód a forrásvezérlés alatt tartható, hogy lehetővé tegye a hallhatóságot és a reprodukálhatóságot, a tesztelési gyakorlatok és a folyamatos kézbesítés teljes fegyelmének megfelelően.

Az infrastruktúra mint kód néhány gyakorlaton alapul:

  • Használjon definíciós fájlokat
  • Öndokumentált rendszerek és folyamatok
  • Az összes elem verziója
  • Rendszerek és folyamatok folyamatos tesztelése
  • Kis változtatások kötegek helyett
  • A szolgáltatások folyamatosan elérhetőek legyenek

Az építési automatizálási eszközök meghatározzák, hogyan kell a szoftvert felépíteni (milyen lépéseket kell végrehajtani és milyen sorrendben), és milyen függőségekre van szükség (milyen más szoftvernek kell jelen lennie a felépítés sikerességéhez).

Egyes eszközök jobban megfelelnek bizonyos programozási nyelveken végzett projektekhez, mint például a Maven és az Apache’s Ant, amelyek bár a technológia más nyelvekkel is használható, többnyire Java projektekben használatosak. Mások, mint például a Hudson vagy a Jenkins, szélesebb körben használhatók különféle projektekben.

Mi az a DevOps Pipeline?

A DevOps folyamat egy olyan folyamat, amely több lépésből áll az új szoftver kiadása előtt. A projekt minden szakaszában alkalmazható, az integrációtól és a teszteléstől a szállításig és telepítésig. Általában a következő szakaszokon és csapatokon megy keresztül:

  • Product Vision: meghatározza a termék tulajdonságait;
  • Fejlesztői csapat: iteratívan és fokozatosan fejlődik;
  • Működési terület: stabil környezetet valósít meg és tart fenn;
  • Monitoring és visszacsatolás: törekedjen arra, hogy értéket generáljon és felhasználja a vevőt.

Melyek a CI/CD folyamat különböző szakaszai?

A CI/CD folyamatot alkotó lépések néhány csoportosított feladat, az úgynevezett folyamatszakasz. Röviden ezek:

  • Összeállítás: az alkalmazás összeállításának szakasza;
  • Teszt: az a szakasz, ahol a kódot tesztelik. Itt az automatizálás időt és erőfeszítést takarít meg;
  • Indítás: amikor az alkalmazás elküldésre kerül a repository-ba;
  • Üzembe helyezés: A kód üzembe kerül az éles környezetben;
  • Érvényesítés és megfelelőség: Használhat képbiztonsági ellenőrző eszközöket, például a Clairt, hogy biztosítsa a képek minőségét azáltal, hogy összehasonlítja azokat az ismert sebezhetőségekkel (CVE).

Ezek a DevOps folyamat leggyakoribb szakaszai. Mindazonáltal minden vállalatnak megvannak a sajátos igényei és sajátos csővezetékei.

  Használjon PowerShell-szkriptet a Windowson telepített alkalmazások listájának lekéréséhez

Mit jelent a platformvirtualizáció, és mik az előnyei?

A platformvirtualizáció azt jelenti, hogy egy teljes számítógépes rendszert szimulálnak az operációs rendszerek több példányának egyidejű futtatására egyetlen fizikai gépen.

Ebben a konfigurációban egy virtuális gép-figyelő (VMM) vagy hipervizor teljes mértékben felügyeli a fizikai gép hardver erőforrásait. A vendég operációs rendszerek virtuális gépeken futnak, amelyeket a VMM kezel. A környezet virtualizációja magában foglalja egy vagy több virtuális gép és a köztük lévő hálózati kapcsolatok szimulálását.

A virtualizáció számos módon segíthet csökkenteni a telepítésre fordított időt és az ezzel kapcsolatos kockázatokat. A virtuális gépek telepítési használata óriási segítséget jelent a hatékony konfigurációkezelés eléréséhez vertikálisan és vízszintesen a rendszerekben.

A virtualizáció használata különösen a következő előnyökkel jár:

  • Gyors reagálás a változó igényekre
  • Konszolidáció
  • Szabványosítás
  • Az alapvonalak karbantartásának egyszerűsége

Mi a különbség a konténerek és a virtuális gépek között?

Mind a tároló, mind a virtuális gép virtualizációval és a környezetek elkülönítésével dolgozik, hogy elősegítse az alkalmazásoktól független feldolgozást. Ennek ellenére a konténerek izolált környezeteket hoznak létre, ahol különböző alkalmazások futhatnak egyszerre, mivel a felosztás a rendelkezésre álló erőforrások szintjén történik, például a memória és a feldolgozás szintjén. Másrészt a Virtuális gép lehetővé teszi, hogy a fizikai gépek más operációs rendszerekkel, merevlemezekkel és az eredetitől független hardverekkel is rendelkezzenek.

Mi a fő különbség a Docker és a Kubernetes között?

A Docker az egyik leggyakrabban használt DevOps konténereszköz. Az alkalmazások hordozhatóságára összpontosít, technológiai konténerekbe és csomagolórendszerekbe helyezve, valamint különböző platformokon való mozgatására.

Ugyanakkor a Kubernetes egy konténer-rendezési eszköz, amely logikai kategorizálás alapján csoportosíthatja a tárolókat. Az automatizált terjesztés révén több számítógépre is telepíthető.

További információ a Kubernetes Vs. Dokkmunkás.

Milyen telemetriai mutatók vannak a DevOps-ban?

  • Üzleti szint: A példák közé tartozik az értékesítési tranzakciók száma, az értékesítési tranzakciókból származó bevétel, a felhasználói regisztrációk, a lemorzsolódási arány és az A/B tesztek eredményei.
  • Alkalmazásszint: Ilyen például a tranzakciós idő, a felhasználói válaszidő és az alkalmazáshibák.
  • Infrastruktúra szint: Ilyen például a webszerver-forgalom, a CPU-terhelés és a lemezhasználat.
  • Kliensszoftver szint: Ilyenek például az alkalmazáshibák, összeomlások és a felhasználó által mért tranzakciós idők.
  • Üzembe helyezési folyamat szintje: Példák az összeépítési folyamat állapota (piros vagy zöld a különböző automatizált tesztcsomagokhoz), a telepítési határidők, a telepítési gyakoriságok, a tesztkörnyezet promóciói és a környezet állapota.

Milyen technológiákat használ a DevOps elkészítéséhez?

Ennek a kérdésnek az a célja, hogy megtudja, milyen technológiákat használhat a DevOps kultúra megvalósításához a szervezeten belül. A DevOps által használt leggyakoribb technológiák közül néhány:

  • Folyamatos fejlesztés: Git, SVN, Mercurial, CVS, Jira
  • Folyamatos integráció: Jenkins, Bamboo, Hudson
  • Folyamatos fejlesztés: Nexus, Archívum, Tomcat
  • Folyamatos bevetés: Puppet, Chef, Docker
  • Folyamatos felügyelet: Splunk, ELK Stack, Continuous Nagios
  • Tesztelés: Selenium, Katalon Stúdió

Mondja el nekünk a DevOps projektek kezelésével kapcsolatos tapasztalatait

A DevOps készségek nemcsak a technikai know-how-t jelentik, hanem emberi és vezetői készségeket igényelnek, amelyek gyakran megtalálhatók a menedzserek, programigazgatók és projektmenedzserek körében.

Alapvető fontosságú a változás kezelésének és támogatásának ismerete, átjáró biztosítása a kód új verzióinak az üzemeltetési oldalra történő átviteléhez, a különböző platformok és eszközök értékelése és monitorozása a teljesítmény mérésére, valamint az eredmények elemzése és megosztása a jövőbeli szállítások javítása érdekében. stb.

Közelítse meg ezt a kérdést módszertannal, és magyarázza el az összetett problémák megoldásában tett utat. Hogyan szándékozik javítani az infrastruktúrák működését? Hogyan tervezi az együttműködést a front-, közép- és back-office fejlesztőkkel? Milyen felügyeleti eszközöket sajátít el? Fontolja meg a konfliktuskezelési tapasztalatok megosztását a csapaton belül is.

Ha többet szeretne megtudni, fontolja meg, hogy beiratkozik valamelyik DevOps-tanfolyamra.