DevOps-intervju: 46 vanlige spørsmål og svar (2023)

Lurer du på hvilke spørsmål som kan dukke opp i et DevOps-intervju? Vår guide gir deg en oversikt over hva du bør forberede deg på.

DevOps, et begrep som oppstod rundt 2007-2008, har vokst til å bli en av de mest etterspurte karriereveiene innen programvareutvikling. DevOps handler om et kulturskifte som involverer alle aspekter ved utvikling og drift av programvare.

I DevOps samarbeider utviklings- og driftsteamene tett, fra planlegging og bygging til overvåking og kontinuerlig forbedring. Her er noen vanlige spørsmål du kan forvente å møte dersom du søker en stilling som DevOps-ingeniør.

Hva innebærer DevOps?

DevOps, en forkortelse for utvikling og drift, er en tilnærming innen programvareutvikling som forener utviklings- og driftsteam for å automatisere alle trinn i et prosjekt. Et DevOps-team fokuserer på ressurshåndtering, åpen kommunikasjon og samarbeid.

Hvilke faser finnes i DevOps-metodikken?

  • Kontinuerlig utvikling: Planlegging og koding er sentrale i denne fasen.
  • Kontinuerlig integrasjon: Utviklingsteamet samler ulike komponenter og sørger for at koden fungerer som den skal.
  • Kontinuerlig testing: Automatiserte tester gjennomføres som en del av utviklingsprosessen.
  • Kontinuerlig levering: Sikrer at utviklingen ikke hindrer applikasjonens ytelse.
  • Kontinuerlig overvåking: Applikasjonens generelle ytelse evalueres fortløpende.
  • Kontinuerlig tilbakemelding: Tilbakemeldinger fra brukere om problemer og ytelse analyseres.
  • Kontinuerlig drift: Utviklere kan forbedre produktet og raskt oppdage potensielle feil.

Hvilke fordeler gir DevOps?

  • Raskere og mer effektiv produktlevering
  • Bedre skalerbarhet
  • Raskere problemløsning
  • Mer effektiv ressursutnyttelse

Hvilke nøkkeltall (KPIer) brukes i DevOps?

  • Distribusjonsfrekvens
  • Endringsvolum
  • Distribusjonstid
  • Feilrate ved distribusjon
  • Tid for feildeteksjon
  • Antall feil som oppstår etter lansering

Hva er forskjellen mellom DevOps og smidig (Agile)?

DevOps er en kultur som legger vekt på samarbeid mellom alle teammedlemmene som jobber med utvikling og vedlikehold av programvare.

Agile er en utviklingsmetodikk som er utformet for å gjøre team produktive og tilpasse lanseringer til endrede behov.

Hvilken rolle spiller AWS i DevOps?

AWS tilbyr en rekke fleksible tjenester som hjelper bedrifter med å utvikle applikasjoner raskt og pålitelig. Disse tjenestene forenkler kodeimplementering, infrastrukturhåndtering, automatisering av programvarelanseringer og overvåking av infrastruktur.

Hva brukes SSH til?

SSH (Secure Shell) er en protokoll som etablerer sikker kommunikasjon mellom ulike datamaskiner. SSH brukes for sterk autentisering, kryptering, bevaring av tilkoblingsintegritet og sikkerhet.

Hva betyr kontinuerlig integrasjon?

Kontinuerlig integrasjon gjør det mulig for programvareutviklere å slå sammen koden sin i et sentralt lager. Koden gjennomgår deretter automatiserte bygg- og testprosesser.

Hva er konfigurasjonsadministrasjon?

Konfigurasjonsadministrasjon er prosessen med å etablere og opprettholde konsistens i et systems/produkts ytelse og funksjonelle/fysiske egenskaper gjennom hele livssyklusen.

Hva er kontinuerlig testing?

Kontinuerlig testing er en forhåndsplanlagt og automatisert test av en applikasjon under utviklingsprosessen.

Hva er Git?

Git er et gratis verktøy med åpen kildekode for kildekodeadministrasjon. Det er designet for å håndtere prosjekter av varierende størrelse.

Nevn noen grunnleggende Git-kommandoer

git clone <https://navn-på-repositoriet>
git branch <gren-navn>
git checkout <navn-på-grenen>
git add <fil>
git commit -m "melding"
git push <remote> <gren-navn>
git pull <remote>

Forklar forskjellen mellom Git merge og Git rebase

Git merge tillater sammenslåing av grener, og historikken til hver gren forblir intakt.

Git rebase integrerer endringer fra en gren til en annen, og historikken blir endret under prosessen.

Forklar forskjellen mellom Git fetch og Git pull

Git fetch laster ned de siste metadataene fra originalen, men overfører ikke filene.

Git pull laster ned endringer fra det eksterne lageret til det lokale prosjektet.

Hva er en sammenslåingskonflikt?

Sammenslåingskonflikter oppstår når to grener med konkurrerende endringer slås sammen, vanligvis når ulike utviklere endrer samme kode eller fil.

Hva er versjonskontroll, og hvilke typer finnes?

Versjonskontroll (kildekontroll) er prosessen med å spore og administrere endringer i programvarekode.

Typer versjonskontroll:

  • Sentralisert: Kildekoden lagres på en sentral server, og endringer sendes til denne kopien. Eksempler: Subversion (SVN) og Perforce.
  • Distribuert (DVCS): Mangler en sentral server. Hver utvikler har en full kopi av prosjektet. Eksempler: Git og Mercurial.

Hva er fordelene ved å bruke versjonskontroll?

  • Hjelper utviklere med å opprettholde effektivitet
  • Gir en komplett logg over hver endring i et prosjekt/fil
  • Forbedrer sporbarheten
  • Hjelper med å administrere sammenslåing og forgrening
  • Muliggjør samarbeid

Hva er forgrening?

Forgrening innebærer å lage en ny versjon av hovedlageret. Dette gir mulighet for å jobbe med ulike deler av prosjektet uten å påvirke hovedgrenen.

Hva er forgreningstrategier?

Forgreningsstrategier er de metodene programvareutviklingsteam bruker for å skrive, slå sammen og distribuere kode. Dette sikrer at feil rettes i en egen gren før de slås sammen med hovedprosjektet.

Hva er automatisert testing, og hvordan implementeres det i DevOps?

Automatisert testing innebærer automatisk gjennomgang og validering av kode. Dette brukes for å sjekke funksjonalitet, kodestil og brukeropplevelse.

Verktøy som Selenium og Katalon brukes til å gjennomføre automatisert testing.

Hva er en Jenkinsfile?

En Jenkinsfile er en tekstfil som inneholder definisjonen av en Jenkins-rørledning, og den lagres i kildekoderepositoriet. Dette gir et revisjonsspor for rørledningen, gjør det mulig å gjennomgå og endre rørledningen, og fungerer som en enkelt kilde for sannhet for rørledningen.

Forklar arkitekturen i Jenkins

Jenkins har en master-slave-arkitektur. Flere «slaver» jobber for en «master». Jenkins Distributed Build kan kjøre identiske tester i forskjellige miljøer, og resultatene samles på masternoden for overvåking.

Hvilke er de mest brukte Jenkins-pluginene?

  • Blue Ocean Plugin for Jenkins
  • Mailer Plugin for Jenkins
  • Git-plugin for Jenkins
  • Jira-plugin for Jenkins
  • Docker-plugin for Jenkins
  • Maven Integration Plugin for Jenkins
  • Kubernetes-plugin for Jenkins
  • SonarQube-plugin for Jenkins
  • Amazon EC2-plugin for Jenkins

Hva er Selenium IDE?

Selenium IDE registrerer nettleserinteraksjoner for testcaser. Man kan sette bruddpunkter og sjekke variabler når feil oppstår.

Hvilke komponenter finnes i Selenium?

Hvilke testtyper finnes i Selenium?

  • End-to-end testing
  • Regresjonstesting
  • Systemtesting
  • Ytelsestesting
  • Kompatibilitetstesting

Hvilke unntak kan oppstå i Selenium?

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

Hva er driver.close() og driver.quit() i WebDriver?

driver.close() lukker det aktive nettleservinduet. Hvis det kun er ett vindu, lukker den hele nettleserøkten.

driver.quit() lukker hele nettleserøkten, inkludert alle popup-vinduer og faner.

Hva er en Dockerfile?

En Dockerfile er et tekstdokument som inneholder alle kommandoer en bruker kan bruke for å bygge et docker-bilde.

Hva er forskjellen mellom docker-bilder og docker-containere?

Docker-bilder er skrivebeskyttede maler som inneholder kildekode, verktøy, biblioteker og andre filer som trengs for å kjøre en applikasjon.

En docker-container er en instans av et docker-bilde som kjører.

Forklar arkitekturen til Docker

Docker benytter en klient-server-arkitektur med Docker Client, Docker Host og Docker Registry.

Docker Client kommuniserer med Docker Daemon via REST APIer og kommandoer.

Docker Client bruker CLI for å kjøre kommandoer som:

docker build
docker pull
docker run
  • Docker Host sørger for et miljø for å kjøre applikasjoner og består av docker-demon, lagring, bilder, containere og nettverk.
  • Docker Registry administrerer og lagrer Docker-bilder.

Hvilke skyplattformer støtter docker?

Plattformer som støtter docker-hosting inkluderer:

Hva er Nagios?

Nagios er et verktøy for å overvåke IT-infrastruktur for å sikre at systemer, tjenester og applikasjoner fungerer som de skal.

Hvordan fungerer Nagios?

  • Overvåking: Nagios konfigureres for å overvåke nettverksprotokoller, systemmålinger, applikasjoner, infrastruktur, tjenester og servere.
  • Varsler: Nagios sender varsler når kritiske komponenter feiler, via SMS, e-post eller egendefinert kode.
  • Respons: IT-teamet bekrefter og håndterer varsler.
  • Rapporter: Historiske rapporter genereres for analyse av varsler, avbrudd og hendelser.
  • Vedlikehold: Planlagt nedetid forhindrer at varsler sendes under vedlikehold.

Nevn noen plugin i Nagios

  • Offisielle Nagios-plugin utviklet og vedlikeholdt av Nagios-teamet
  • Tilpassede plugin som er utviklet for å imøtekomme individuelle behov
  • Fellesskaps-plugin som er utviklet av Nagios-fellesskapet

Forklar virtualisering med Nagios

Nagios kan overvåke ulike målinger på ulike virtualiseringsplattformer som Xen, Amazon EC2, VMware og Microsoft Virtual PC.

Hvordan hjelper Nagios med overvåking?

Nagios bruker agenter som NRPE, check_mk eller SNMP for å samle statistikk på serveren og sende varsler hvis målinger overskrider forhåndsdefinerte terskler.

Hvilke portnummer bruker Nagios for overvåking?

SNMP: port 161 og 162

Hva er en Nagios Network Analyzer?

Nagios Network Analyzer er et sflow-dataanalyseverktøy som lar brukere proaktivt løse unormal atferd, driftsstans og sikkerhetstrusler før de påvirker virksomheten. Dette kommersielle verktøyet gir innsikt i nettverkstrafikk og IT-infrastruktur.

Hvilke variabler påvirker arv og rekursjon i Nagios?

  • Navn: Et malnavn som kan arve objektvariabler/egenskaper.
  • Bruk: Spesifiserer malobjektets navn som du vil arve variabler/egenskaper fra.
  • Register: Angir om malobjektets navn skal «registreres» i Nagios.

Hva er Puppet?

Puppet er et verktøy med åpen kildekode for administrasjon og distribusjon av programvarekonfigurasjon.

Hva er et Puppet-manifest?

Et Puppet-manifest er en fil som inneholder Puppet-konfigurasjonskode som beskriver hvordan ressurser skal konfigureres.

Hva er Puppet-kode?

Puppet-kode er deklarativ, det vil si at den beskriver systemets ønskede tilstand og ikke trinnene som trengs for å komme dit.

Hva er Chef?

Chef er et konfigurasjonsadministrasjonsverktøy som konverterer infrastruktur til kode, og fokuserer på å skrive kode i stedet for manuelle prosesser.

Hvordan fungerer Chef?

Chef starter når systemadministratorer eller utviklere definerer oppgaver for automatisering. Kokebøkene og oppskriftene (små programmer i et domenespesifikt språk) testes med verktøy som Test Kitchen, ChefSpec og Foodcritic.

Når kokebøkene og oppskriftene fungerer som forventet, distribueres de til Chef-serveren med kniv- og chef-kommandolinjeverktøy. En Chef-distribusjon består av en Chef-server, arbeidsstasjoner og noder. Du kan velge mellom over 3000 kokebokmaler og tilpasse dem. Chef tar seg av resten av jobben.

Sammendrag

Ifølge Glassdoor er gjennomsnittslønnen til en DevOps-ingeniør $104 281 i USA. Selv om DevOps er en ny karriere, ser vi nå at flere selskaper ansetter i denne stillingen og tilbyr kurs for å utruste fagfolk med de nødvendige ferdighetene. Ovenfor er noen spørsmål du sannsynligvis vil møte i et DevOps-intervju.

Du kan også utforske ulike nettkurs for å lære mer om DevOps.