46 Често постављана питања и одговори на ДевОпс интервјуу [2023]

Преглед садржаја

Želite da saznate koja pitanja možete očekivati na vašem sledećem intervjuu za poziciju DevOps inženjera? Naš praktični vodič vam može pomoći da se pripremite.

Termin DevOps se pojavio između 2007. i 2008. godine, a danas predstavlja jednu od najpopularnijih karijernih opcija u softverskom inženjerstvu. DevOps nije samo tehnologija, već i kulturološka promena koja ima uticaj na sve faze razvoja i poslovanja softvera.

U DevOps okruženju, razvojni i operativni timovi sarađuju od faze planiranja i izrade softvera do njegovog praćenja i iteracije. Ukoliko tražite posao DevOps inženjera, verovatno ćete se susresti sa pitanjima koja su navedena u nastavku teksta.

Šta je DevOps?

DevOps je skraćenica od development (razvoj) i operations (operacije). Ova praksa softverskog inženjerstva spaja razvojne i operativne timove sa ciljem automatizacije svakog segmenta projekta. DevOps tim se fokusira na upravljanje resursima, komunikaciju i timski rad.

Koje su različite faze u DevOps metodologiji?

  • Kontinuirani razvoj. Ovo je faza planiranja i pisanja koda.
  • Kontinuirana integracija. U ovoj fazi razvojni tim integriše različite komponente i osigurava da kod funkcioniše bez grešaka.
  • Kontinuirano testiranje. Ovo je faza unapred zakazanog i automatizovanog testiranja.
  • Kontinuirana implementacija. Ova faza osigurava besprekornu implementaciju koja ne utiče na performanse aplikacije.
  • Kontinuirano praćenje. Ova faza je ključna za efikasnost aplikacije.
  • Kontinuirana povratna sprega. Analiziraju se problemi i performanse, uzimajući u obzir povratne informacije krajnjih korisnika.
  • Kontinuirane operacije. Omogućavaju programerima da brzo identifikuju probleme i kreiraju bolje verzije proizvoda.

Koje su prednosti DevOps-a?

  • Brža i efikasnija isporuka proizvoda.
  • Veća skalabilnost.
  • Brže rešavanje problema.
  • Bolja iskorišćenost resursa.

Navedite neke DevOps KPI

  • Učestalost primene.
  • Obim promena.
  • Vreme implementacije.
  • Stopa neuspešnih primena.
  • Vreme detekcije.
  • Stopa uklanjanja defekata.

Razlika između DevOps-a i Agilnog

DevOps je kultura koja podstiče saradnju između svih članova tima koji su uključeni u razvoj i održavanje softvera.

Agilna metodologija je usmerena na povećanje produktivnosti timova i lansiranje softverskih izdanja koja se prilagođavaju promenljivim potrebama.

Koja je uloga AWS-a u DevOps-u?

AWS nudi fleksibilan set usluga koje pomažu kompanijama da brzo i pouzdano razvijaju aplikacije. AWS usluge olakšavaju primenu koda, pojednostavljuju infrastrukturu, automatizuju procese izdavanja softvera i prate performanse infrastrukture.

Koja je upotreba SSH-a?

SSH (Secure Shell) je protokol koji omogućava bezbednu vezu između računara. SSH pruža jaku autentifikaciju, enkripciju, integritet veze i ukupnu sigurnost.

Šta je kontinuirana integracija?

Kontinuirana integracija omogućava programerima da spajaju svoj kod u centralno repozitorijum. Nakon toga, kod prolazi kroz automatizovane build-ove i testove.

Šta je upravljanje konfiguracijom?

To je proces u okviru sistemskog inženjerstva koji uspostavlja i održava doslednost performansi sistema/proizvoda, kao i njegovih funkcionalnih i fizičkih atributa tokom čitavog životnog ciklusa.

Šta je kontinuirano testiranje?

Kontinuirano testiranje podrazumeva unapred zakazano i automatizovano testiranje aplikacija tokom procesa razvoja.

Šta je Git?

Git je besplatan alat otvorenog koda za upravljanje izvornim kodom. Pogodan je kako za male, tako i za velike projekte.

Navedite neke osnovne Git komande

git clone <https://name-of-the-repository-link>
git branch <branch-name>
git checkout <name-of-your-branch>
git add <file>
git commit -m "commit message"
git push <remote> <branch-name>
git pull <remote>

Objasnite razliku između Git merge i Git rebase

Komanda git merge spaja različite Git grane, pri čemu istorija commit-a grana ostaje netaknuta.

Komanda git rebase integriše promene iz jedne grane u drugu, pri čemu se istorija commit-a menja nakon završetka procesa.

Objasnite razliku između Git fetch i Git pull

Git fetch komanda preuzima najnovije metapodatke sa originalnog repozitorijuma, ali ne prenosi datoteke.

Git pull komanda preuzima promene sa udaljenog repozitorijuma na lokalni projekat.

Šta je sukob spajanja?

Sukobi spajanja nastaju kada spajate dve grane sa različitim commit-ima. Obično se javljaju kada različiti programeri menjaju isti red koda ili datoteku.

Šta je kontrola verzija i koji su različiti tipovi?

Kontrola verzija (kontrolisanje izvora) je proces praćenja i upravljanja promenama u softverskom kodu.

Postoje dva osnovna tipa kontrole verzija:

  • Centralizovana kontrola verzija – koristi centralnu kopiju izvornog koda na serveru, i sve promene se šalju na tu centralnu kopiju. Primjeri su Subversion (SVN) i Perforce.
  • Distribuirana kontrola verzija (DVCS) – ne koristi centralni server za skladištenje svih datoteka projekta. Primjeri su Git i Mercurial.

Koje su prednosti korišćenja kontrole verzija?

  • Pomaže programerima da održe efikasnost i agilnost.
  • Pruža detaljan zapis svih promena na projektu/datoteci.
  • Poboljšava sledljivost.
  • Pomaže u upravljanju spajanjem i grananjem.
  • Omogućava kolaboraciju.

Šta je grananje?

Grananje je kreiranje nove verzije glavnog repozitorijuma. Grane vam omogućavaju rad na različitim segmentima projekta bez uticaja na glavnu granu.

Šta su strategije grananja?

Strategije grananja su metodologije koje koriste timovi prilikom pisanja, spajanja i implementacije koda. Cilj je da se greške i bagovi otklone u fazi grane pre spajanja sa glavnim projektom.

Šta je automatsko testiranje i kako automatizovati testiranje u DevOps-u?

Automatsko testiranje je tehnika automatskog pregleda i validacije koda. Testiranje automatizacije se koristi da se proveri da li su ispunjeni standardi kvaliteta za funkcionalnost, stil koda i korisničko iskustvo.

Automatsko testiranje se može sprovesti koristeći alate kao što su Selenium i Katalon.

Šta je Jenkinsfile?

Jenkinsfile je tekstualna datoteka koja sadrži definiciju Jenkins pipeline-a. Jenkinsfile se čuva u repozitorijumu kontrole izvora. Njegove prednosti su mogućnost praćenja istorije promena, pregleda koda i ponavljanja pipeline-a, kao i jedinstven izvor istine za pipeline.

Objasnite arhitekturu u Jenkinsu

Jenkins ima master-slave arhitekturu. To znači da postoji više ‘slave’ (robova) čvorova koji rade za jednog ‘master’ (glavnog) čvora. Jenkins Distributed Build omogućava pokretanje identičnih testova u različitim okruženjima, uz prikupljanje i kombinovanje rezultata na glavnom čvoru.

Koji su najpopularniji Jenkins dodaci?

  • Blue Ocean dodatak za Jenkins
  • Mailer dodatak za Jenkins
  • Git dodatak za Jenkins
  • Jira dodatak za Jenkins
  • Docker dodatak za Jenkins
  • Maven Integration dodatak za Jenkins
  • Kubernetes dodatak za Jenkins
  • SonarQube dodatak za Jenkins
  • Amazon EC2 dodatak za Jenkins

Šta je Selenium IDE?

Selenium IDE je alat koji snima interakcije pregledača za test slučajeve. Omogućava postavljanje prekida i proveru i pauziranje promenljivih kada se pojave greške.

Koje su različite komponente Selenium-a?

Koje su različite vrste testiranja u Selenium-u?

  • End-to-end testiranje
  • Regresijsko testiranje
  • Sistemsko testiranje
  • Testiranje performansi
  • Testiranje kompatibilnosti

Koji su različiti izuzeci u Selenium-u?

  • ElementNotSelectableException
  • NoAlertPresentException
  • InvalidSelectorException
  • NoSuchSessionException
  • StaleElementReferenceException
  • NoSuchWindowException
  • NoSuchFrameException
  • NoSuchElementException
  • TimeoutException
  • ElementNotVisibleException

Šta su driver.close() i driver.quit() u Webdriver-u?

Komanda driver.close() zatvara prozor pregledača koji je u fokusu. Ako je otvoren samo jedan pregledač, zatvara se cela sesija pregledača.

Komanda driver.quit() zatvara celu sesiju pregledača, uključujući sve iskačuće prozore i kartice.

Šta je Dockerfile?

Dockerfile je tekstualni dokument koji sadrži sve komande koje korisnik može koristiti u komandnoj liniji za kreiranje image-a.

Razlike između docker slika i docker kontejnera

Docker image-i su šabloni samo za čitanje kreirani od izvornog koda, alata, biblioteka, eksternih zavisnosti i drugih datoteka potrebnih da aplikacija uspešno radi na bilo kom operativnom sistemu ili platformi.

Docker kontejner je okvir u kome se izvršavaju docker image-i.

Objasnite arhitekturu Docker-a

Docker koristi klijent-server arhitekturu i sastoji se od Docker klijenta, Docker host-a i Docker registra.

Docker klijent koristi REST API-je i komande za komunikaciju sa serverom (Docker daemon).

Docker klijent koristi CLI za pokretanje ovih komandi:

docker build
docker pull
docker run
  • Docker Host obezbeđuje okruženje za izvršavanje i pokretanje aplikacija. Sastoji se od docker demona, skladišta, image-a, kontejnera i mreža.
  • Docker Registry upravlja i čuva Docker image-e.

Cloud platforme koje podržavaju Docker

Platforme koje podržavaju Docker hosting su:

Šta je Nagios?

Nagios je alat koji nadgleda celokupnu IT infrastrukturu kako bi se osiguralo da poslovni procesi, sistemi, usluge i aplikacije pravilno funkcionišu.

Kako Nagios funkcioniše?

  • Praćenje. IT osoblje konfiguriše Nagios da nadgleda mrežne protokole, sistemske metrike, aplikacije, mrežnu infrastrukturu, usluge i servere.
  • Upozorenja. Nagios šalje upozorenja kada se kritične komponente pokvare. Upozorenja se mogu slati putem SMS-a, prilagođenog koda ili e-pošte.
  • Reakcija. IT tim preuzima i rešava probleme.
  • Izveštaji. Generišu se izveštaji koji daju istorijski pregled obaveštenja, zastoja, odgovora na upozorenja i drugih događaja.
  • Održavanje. Planirani zastoji sprečavaju slanje upozorenja tokom održavanja.

Navedite neke dodatke u Nagiosu

  • Zvanični dodaci za Nagios – razvijeni i održavani od strane zvaničnog tima.
  • Prilagođeni dodaci – razvijeni od strane pojedinaca ili preduzeća za specifične potrebe.
  • Dodaci zajednice – razvijeni od strane članova Nagios zajednice.

Objasnite virtuelizaciju sa Nagiosom

Nagios pruža mogućnost praćenja različitih metrika na različitim platformama za virtuelizaciju. Kompatibilan je sa platformama kao što su Xen, Amazon EC2, VMware i Microsoft Virtual PC.

Kako Nagios pomaže u praćenju?

Nagios koristi agente kao što su NRPE, check_mk ili SNMP za prikupljanje statistike na serveru i šalje upozorenje ako metrike pređu unapred definisan prag.

Koje brojeve portova Nagios koristi u svrhu praćenja?

SNMP, portovi 161 i 162

Šta je Nagios mrežni analizator?

Nagios mrežni analizator je softver za analizu protoka podataka koji omogućava korisnicima da proaktivno rešavaju neuobičajena ponašanja, zastoje i sigurnosne pretnje pre nego što ugroze poslovanje. Ovaj komercijalni alat pruža detaljan uvid u mrežni saobraćaj i IT infrastrukturu.

Promenljive koje utiču na nasleđivanje i rekurziju u Nagiosu

  • name – šablon ‘name’ koji može naslediti promenljive/svojstva objekta.
  • use – označava naziv objekta šablona iz kog se nasleđuju promenljive/svojstva.
  • register – označava da li je šablon ‘registrovan’ u Nagios-u.

Šta je Puppet?

Puppet je alat otvorenog koda za upravljanje konfiguracijom softvera i implementaciju.

Šta je manifest Puppet-a?

Manifest Puppet-a je datoteka koja sadrži konfiguracioni jezik Puppet-a, opisujući kako resurse treba konfigurisati.

Šta je kod Puppet-a?

Kod Puppet-a je deklarativni kod, što znači da se opisuje željeno stanje sistema, a ne koraci potrebni za postizanje tog stanja.

Šta je Chef?

Chef je alat za upravljanje konfiguracijom koji pretvara infrastrukturu u kod, fokusirajući se na pisanje koda umesto na ručne procese.

Kako Chef radi?

Rad Chef-a počinje kada administratori ili programeri definišu zadatke koje treba automatizovati. Kuvari (cookbooks) i recepti (recepts), mali programi napisani na jeziku specifičnom za domen, se zatim snimaju i testiraju pomoću alata kao što su Test Kitchen, ChefSpec i Foodcritic.

Ako kuvari i recepti funkcionišu kako se očekuje, postavljaju se na Chef server pomoću alata komandne linije knife i chef. Proces postavljanja kuvara podrazumeva Chef server, radne stanice i čvorove. Postoji više od 3000 dostupnih šablona koje možete prilagoditi svojim potrebama. Chef će se pobrinuti za ostatak posla.

Rezime

Prema podacima sa Glassdoor-a, prosečna godišnja plata DevOps inženjera u SAD iznosi 104.281 dolara. Iako je DevOps relativno nova karijerna opcija, sve više kompanija zapošljava DevOps stručnjake i nudi različite obuke kako bi profesionalci stekli neophodne veštine. Gore navedena pitanja su tipična za DevOps intervjue.

Takođe možete istražiti i online kurseve za učenje DevOps-a.