20 Ofte stilte DevOps-intervjuspørsmål og svar [2022]

DevOps blir i økende grad en populær måte å bygge og distribuere applikasjoner på, noe som har ført til økende etterspørsel etter DevOps-profesjonelle.

Denne artikkelen vil dekke noen av de vanligste DevOps-intervjuspørsmålene og svarene deres. Å bruke disse spørsmålene som kjerne for å studere kan øke sjansene dine for å bli ansatt, eller hvis du er en rekrutterer, kan de hjelpe deg i ansettelsesprosessen.

Ofte stilte DevOps-intervjuspørsmål og svar

Hva er DevOps for deg?

DevOps er en tilnærming rettet mot å forbedre arbeidet gjennom hele programvareutviklingens livssyklus. DevOps-prosessen er avbildet som en uendelig sløyfe, som omfatter stadiene planlegging, koding, bygging, testing, utgivelse, distribusjon, drift og overvåking.

DevOps påvirker applikasjonens livssyklus gjennom planleggings-, utviklings-, leverings- og driftsfasene. Hver fase avhenger av de andre, og fasene er ikke spesifikke for en rolle. I en ekte DevOps-kultur er hver rolle involvert i hver fase til en viss grad.

Hvorfor er DevOps viktig?

Team som tar en DevOps-tilnærming har en tendens til å få prosjektene sine gjort raskere. På denne måten unngås kommunikasjonsfeil, noe som gjør det lettere å implementere forbedringer og andre nødvendige endringer. DevOps-tilnærmingen oppmuntrer til større samarbeid mellom utviklings- og driftsteamene, der målene til dem alle er mer på linje. Du kan oppsummere noen av fordelene som følger:

  • Forbedret kommunikasjon
  • Teamarbeid og samhold
  • Forbedret samarbeid
  • Raskere levering av kvalitetsprodukter
  • Redusert kompleksitet og rask problemløsning
  • Større skalerbarhet og fleksibilitet for å legge til ny kode
  • Mer stabile driftsmiljøer
  • Større automatisering
  • Kostnadsreduksjon og ressursutnyttelse
  • Sikkerhet gjennom integrerte og automatiserte verktøy

Hva er de daglige oppgavene til DevOps?

Noen av de daglige oppgavene du kan nevne er:

  • Sikre kontinuerlig integrasjon og distribusjon
  • Tilordne og kommunisere oppgaver som skal utføres
  • Designe og bestille testprotokoller
  • Overvåking og innsamling av infrastruktur og applikasjonsberegninger
  • Analyse av resultater oppnådd i hver fase av utviklingen
  • Reduser feilfrekvens og gjenopprettingstid ved feil
  • Reduser leveringstiden
  Slik ser du NBA-sluttspillet uten kabel

Hvordan hjelper DevOps utviklere?

Når en DevOps-metodikk er implementert, trenger ikke utviklere lenger å vente på tilbakemelding fra driftsteamet for å fikse feil i koden deres. Men nå kan de løse disse problemene raskere fordi de har kontinuerlig tilbakemelding på koden deres.

Hva er versjonskontroll?

Versjonskontroll er en praksis som lar oss holde styr på endringene vi gjør i en fil eller et sett med filer over tid, slik at spesifikke versjoner kan hentes senere. Et versjonskontrollverktøy lar oss enkelt spore fremdriften av utviklingsarbeidet ditt og lagre forskjellige versjoner av kildekoden for å gå tilbake til den forrige etter behov. Et av de mest brukte verktøyene på dette stadiet av programvareutvikling er Git.

Hva er CI/CD, og ​​hva er fordelene med det?

Kontinuerlig integrasjon (CI)

CI kombinerer verktøy og praksis som gjør det enkelt å levere høykvalitets, rask programvare. På denne måten elimineres flaskehalser, og tekniske problemer unngås i lanseringsfasene.

Kontinuerlig levering (CD)

Denne praksisen automatiserer levering av kodeendringer, og sikrer at koden raskt kan suppleres i produksjonen og at applikasjoner fungerer korrekt.

Kontinuerlig distribusjon (CD)

I motsetning til kontinuerlig levering, er målet med denne praksisen at det ikke er noen menneskelig inngripen når programvaren distribueres i produksjon. Publisering av ny eller endret kode til produksjon er automatisert.

CI/CD implementerer DevOps gjennom hele applikasjonens livssyklus. Disse praksisene bidrar til å forbedre produktiviteten i de ulike fasene av programvareutviklingsprosessen ved å strømlinjeforme og automatisere dem.

Hva er kontinuerlig overvåking

Kontinuerlig overvåking er en DevOps-praksis som involverer overvåking, varsling og handling på både kode og infrastruktur. Så det problemet som kan oppstå i implementeringen blir raskt oppdaget og identifisert, noe som reduserer tiden med å løse problemer.

Hvorfor er kontinuerlig testing viktig?

Kontinuerlig testing er å automatisere tester tidlig, gradvis og hensiktsmessig i utviklingspipeline. Det er viktig fordi det gjør det mulig å sikre kvaliteten på koden. Feil oppdages tidlig, og kodetilbakemelding gjøres raskere.

Forklar noen typer tester som brukes i DevOps?

Enhetstester

De tester en bestemt kodebit isolert. Enhetstester må ikke kobles til databasen, bruke filsystemet, snakke med eksterne systemer eller samhandle med systemkomponenter. Det lar dem kjøre raskt, og du får rask tilbakemelding hvis endringer har ødelagt eksisterende funksjonalitet.

Komponenttester

De tester store grupper av funksjoner slik at de kan identifisere problemer som disse. De er generelt tregere, krever mer kompleks konfigurasjon og mer I/O-tilkobling til en database, filsystem eller andre systemer.

Implementeringstester

Slike tester bekrefter at distribusjonen fungerte, med andre ord, at applikasjonen din er riktig installert, konfigurert, har tilgang til alle tjenestene den trenger, og svarer.

Bortsett fra disse er det også utnyttelses- og brukstester. For å vite mer om testing, sjekk artikkelen om typer applikasjonstesting.

  Løs problemer med å godta en invitasjon til en Xbox-fest

Hva er mikrotjenestearkitektur, og hvordan er den forskjellig fra tradisjonell arkitektur?

Den tradisjonelle metoden for å skrive programvare er monolitisk. Det betyr at alle funksjonene til en applikasjon er samlet i en enkelt blokk. Ved feil eller behov for oppdatering analyseres koden som styrer hele produktet.

Det genererer stopp eller til og med krasj og representerer en stor fare for bevaring av koden. For kundene betyr det tap og hodepine.

I en mikrotjenestearkitektur representerer en applikasjons funksjoner en uavhengig utviklet og integrert tjeneste. Komponentene er separate, men fungerer sammen for å utføre de korrelerte oppgavene.

På denne måten kjører hver uavhengig tjeneste uten å forstyrre de andre, noe som også gjelder i feiltilfeller. Hvis en funksjon feiler, er det mulig å justere den uten at det går på bekostning av funksjonen til hele applikasjonen.

Mikrotjenester kommer for å gjøre DevOps enda mer smidig og effektiv, og akselererer ende-til-ende-utvikling og gjør applikasjoner enda mer skalerbare.

Hva er Infrastruktur som kode?

Infrastruktur som kode er tilnærmingen til å definere databehandlings- og nettverksinfrastrukturen, som bruker kildekodehåndteringsteknikker og behandles som et hvilket som helst programvaresystem.

Denne koden kan holdes i kildekontroll for å tillate hørbarhet og reproduserbar konstruksjon, underlagt testpraksis og hele disiplinen for kontinuerlig levering.

Infrastruktur som kode er basert på noen få praksiser:

  • Bruk definisjonsfiler
  • Selvdokumenterte systemer og prosesser
  • Versjon alle elementer
  • Kontinuerlig teste systemer og prosesser
  • Små endringer i stedet for batcher
  • Hold tjenester tilgjengelige kontinuerlig

Byggautomatiseringsverktøy spesifiserer hvordan programvaren skal bygges (hvilke trinn som må gjøres og i hvilken rekkefølge) og hvilke avhengigheter som kreves (hvilken annen programvare må være til stede for at byggingen skal lykkes).

Noen verktøy er bedre egnet for prosjekter i spesifikke programmeringsspråk, som Maven og Apache’s Ant, som selv om teknologi kan brukes med andre språk, mest brukes i Java-prosjekter. Andre, som Hudson eller Jenkins, kan brukes mer utbredt med ulike prosjekter.

Hva er en DevOps-pipeline?

DevOps-pipelinen er en prosess som omfatter flere trinn før utgivelse av ny programvare. Den kan brukes i alle faser av prosjektet, fra integrasjon og testing til levering og distribusjon. Generelt går den gjennom følgende stadier og lag:

  • Produktvisjon: definerer egenskapene til produktet;
  • Dev Team: utvikler iterativt og inkrementelt;
  • Driftsområde: implementerer og vedlikeholder stabile miljøer;
  • Overvåking og tilbakemelding: søk å generere verdi og bruk for kunden.

Hva er de forskjellige stadiene i en CI/CD-pipeline?

Trinnene som utgjør en CI/CD-pipeline er noen få grupperte oppgaver som kalles pipeline-stadiet. Kort fortalt er de:

  • Kompilering: stadiet der søknaden er kompilert;
  • Test: stadiet der koden testes. Her sparer automatisering tid og krefter;
  • Lansering: når applikasjonen sendes til depotet;
  • Utrulling: Koden distribueres til produksjonsmiljøet;
  • Validering og samsvar: Du kan bruke verifiseringsverktøy for bildesikkerhet som Clair for å sikre kvaliteten på bildene dine ved å sammenligne dem med kjente sårbarheter (CVE).
  Slik finner du en tapt iPhone, iPad eller Apple Watch med Siri

Dette er de vanligste stadiene i DevOps-pipelinen. Hvert selskap har imidlertid sine spesifikke behov og pipeline.

Hva betyr plattformvirtualisering, og hva er fordelene med det?

Plattformvirtualisering betyr å simulere et helt datasystem for å kjøre flere forekomster av operativsystemer samtidig på en enkelt fysisk maskin.

I denne konfigurasjonen har en virtuell maskinmonitor (VMM), eller hypervisor, full kontroll over den fysiske maskinens maskinvareressurser. Gjesteoperativsystemer kjører i virtuelle maskiner, som VMM administrerer. Miljøvirtualisering innebærer å simulere en eller flere virtuelle maskiner og nettverksforbindelsene mellom dem.

Virtualisering kan bidra til å redusere tiden brukt på distribusjon og risikoen forbundet med det på flere måter. Bruken av virtuelle maskiner i distribusjon er en stor hjelp for å oppnå effektiv konfigurasjonsadministrasjon vertikalt og horisontalt på tvers av systemene dine.

Spesielt gir bruken av virtualisering følgende fordeler:

  • Rask respons på endrede krav
  • Konsolidering
  • Standardisering
  • Enkel vedlikehold av grunnlinjer

Hva er forskjellen mellom containere og virtuelle maskiner?

Både Container og VM jobber med virtualisering og isolering av miljøer for å fremme behandling uavhengig av applikasjoner. Beholdere skaper likevel isolerte miljøer der ulike applikasjoner kan kjøres samtidig fordi oppdelingen gjøres på nivå med tilgjengelige ressurser, som minne og prosessering. På den annen side lar den virtuelle maskinen en fysisk maskin huse andre med forskjellige operativsystemer, harddisker og maskinvareuavhengig av de originale.

Hva er hovedforskjellen mellom Docker og Kubernetes?

Docker er et av de mest brukte DevOps-beholderverktøyene. Den fokuserer på portabiliteten til applikasjoner, plassere dem i teknologiske beholdere og emballasjesystemer og flytte dem over forskjellige plattformer.

Samtidig er Kubernetes et containerorkestreringsverktøy som kan gruppere containere etter logisk kategorisering. Den kan distribueres til flere datamaskiner gjennom automatisert distribusjon.

Les mer om Kubernetes vs. Docker.

Hva er noen telemetri-beregninger i DevOps?

  • Forretningsnivå: Eksempler inkluderer antall salgstransaksjoner, inntekter fra salgstransaksjoner, brukerregistreringer, churn rate og A/B-testresultater.
  • Applikasjonsnivå: Eksempler inkluderer transaksjonstider, brukerresponstider og applikasjonsfeil.
  • Infrastrukturnivå: Eksempler inkluderer webservertrafikk, CPU-belastning og diskbruk.
  • Klientprogramvarenivå: Eksempler inkluderer applikasjonsfeil, krasj og brukermålte transaksjonstider.
  • Distribusjonspipeline-nivå: Eksempler inkluderer byggepipelinestatus (rød eller grønn for ulike automatiserte testsuiter), endring av distribusjonsfrister, distribusjonsfrekvenser, testmiljøkampanjer og miljøstatus.

Hvilke teknologier bruker du for å gjøre DevOps?

Dette spørsmålet tar sikte på å vite hvilke teknologier du kan bruke for å implementere DevOps-kulturen i organisasjonen. Noen av de vanligste teknologiene som en DevOps kan bruke er:

  • Kontinuerlig utvikling: Git, SVN, Mercurial, CVS, Jira
  • Kontinuerlig integrasjon: Jenkins, Bamboo, Hudson
  • Kontinuerlig utvikling: Nexus, Archive, Tomcat
  • Kontinuerlig distribusjon: Puppet, Chef, Docker
  • Kontinuerlig overvåking: Splunk, ELK Stack, Continuous Nagios
  • Testing: Selenium, Katalon Studio

Fortell oss om din erfaring med å administrere DevOps-prosjekter

DevOps-ferdigheter handler ikke bare om teknisk kunnskap og krever menneskelige og ledelsesmessige ferdigheter som ofte finnes blant ledere, programdirektører og prosjektledere.

Det er viktig å vite hvordan man håndterer og støtter endringer, gir en gateway for å lette overføringen av nye versjoner av kode til driftssiden, evaluere og overvåke de ulike plattformene og verktøyene for å måle ytelse, og analysere og dele resultater for å forbedre fremtidige leveranser , etc.

Tilnærm deg dette spørsmålet med metodikk og forklar reisen din for å løse komplekse problemer. Hvordan har du tenkt å gå frem for å forbedre funksjonen til infrastrukturene? Hvordan planlegger du å samarbeide med front-, middle- og backoffice-utviklere? Hvilke overvåkingsverktøy behersker du? Vurder også å dele konfliktløsningserfaringene dine i teamet ditt.

For å lære mer kan du vurdere å melde deg på et av disse DevOps-kursene.