20 ofte stillede DevOps-interviewspørgsmål og -svar [2022]

DevOps bliver i stigende grad en populær måde at bygge og implementere applikationer på, hvilket har oversat til stigende efterspørgsel efter DevOps-professionelle.

Denne artikel vil dække nogle af de oftest stillede DevOps-interviewspørgsmål og deres svar. Brug af disse spørgsmål som kerne til at studere kan øge dine chancer for at blive ansat, eller hvis du er rekrutterer, kan de hjælpe dig i ansættelsesprocessen.

Ofte stillede DevOps-interviewspørgsmål og -svar

Hvad er DevOps for dig?

DevOps er en tilgang, der sigter mod at forbedre arbejdet gennem hele softwareudviklingens livscyklus. DevOps-processen er afbildet som en uendelig løkke, der omfatter stadierne planlægning, kodning, opbygning, test, frigivelse, implementering, drift og overvågning.

DevOps påvirker applikationens livscyklus i hele dens planlægnings-, udviklings-, leverings- og driftsfaser. Hver fase afhænger af de andre, og faserne er ikke specifikke for en rolle. I en ægte DevOps-kultur er hver rolle involveret i hver fase til en vis grad.

Hvorfor er DevOps vigtigt?

Hold, der tager en DevOps-tilgang, har en tendens til at få deres projekter udført hurtigere. På denne måde undgås kommunikationsfejl, hvilket letter den hurtige implementering af forbedringer og andre nødvendige ændringer. DevOps-tilgangen tilskynder til større samarbejde mellem udviklings- og driftsteamene, hvor målene for dem alle er mere afstemte. Du kan opsummere nogle af fordelene som følger:

  • Forbedret kommunikation
  • Teamwork og samhørighed
  • Forbedret samarbejde
  • Hurtigere levering af kvalitetsprodukter
  • Reduceret kompleksitet og hurtig problemløsning
  • Større skalerbarhed og fleksibilitet til at tilføje ny kode
  • Mere stabile driftsmiljøer
  • Større automatisering
  • Omkostningsreduktion og ressourceudnyttelse
  • Sikkerhed gennem integrerede og automatiserede værktøjer

Hvad er DevOps’ daglige opgaver?

Nogle af de daglige opgaver du kan nævne er:

  • Sikre kontinuerlig integration og implementering
  • Tildel og kommuniker opgaver, der skal udføres
  • Design og bestil testprotokoller
  • Overvågning og indsamling af infrastruktur og applikationsmålinger
  • Analyse af resultater opnået i hver udviklingsfase
  • Reducer fejlfrekvens og retableringstid i tilfælde af fejl
  • Reducer leveringstiden

Hvordan hjælper DevOps udviklere?

Når en DevOps-metodologi er implementeret, behøver udviklere ikke længere at vente på feedback fra driftsteamet for at rette fejl i deres kode. Men nu kan de løse disse problemer hurtigere, fordi de har løbende feedback på deres kode.

  Hvad er FFXIV-skærmbilledets placering?

Hvad er versionskontrol?

Versionskontrol er en praksis, der giver os mulighed for at holde styr på de ændringer, vi foretager i en fil eller et sæt filer over tid, så specifikke versioner kan hentes senere. Et versionsstyringsværktøj giver os mulighed for nemt at spore fremskridtene i dit udviklingsarbejde og gemme forskellige versioner af kildekoden for at vende tilbage til den forrige efter behov. Et af de mest brugte værktøjer på dette stadium af softwareudvikling er Git.

Hvad er CI/CD, og ​​hvad er dets fordele?

Kontinuerlig integration (CI)

CI kombinerer værktøjer og praksis, der gør det nemt at levere hurtig software af høj kvalitet. På denne måde elimineres flaskehalse, og tekniske problemer undgås i lanceringsfaserne.

Kontinuerlig levering (CD)

Denne praksis automatiserer leveringen af ​​kodeændringer, hvilket sikrer, at koden hurtigt kan suppleres i produktionen, og at applikationer fungerer korrekt.

Kontinuerlig implementering (CD)

I modsætning til kontinuerlig levering er formålet med denne praksis, at der ikke er nogen menneskelig indgriben, når softwaren implementeres i produktionen. Udgivelse af ny eller ændret kode til produktion er automatiseret.

CI/CD implementerer DevOps gennem hele applikationens livscyklus. Denne praksis hjælper med at forbedre produktiviteten i de forskellige faser af softwareudviklingsprocessen ved at strømline og automatisere dem.

Hvad er kontinuerlig overvågning

Kontinuerlig overvågning er en DevOps-praksis, der involverer overvågning, alarmering og handling på både kode og infrastruktur. Så det problem, der kan opstå i implementeringen, bliver hurtigt opdaget og identificeret, hvilket reducerer tiden til at løse problemer.

Hvorfor er kontinuerlig test vigtig?

Kontinuerlig test er at automatisere test tidligt, gradvist og passende i udviklingspipelinen. Det er vigtigt, fordi det gør det muligt at sikre kodens kvalitet. Fejl opdages tidligt, og kodefeedback sker hurtigere.

Forklar nogle få typer test, der bruges i DevOps?

Enhedstests

De tester et bestemt stykke kode isoleret. Enhedstest må ikke være forbundet med databasen, bruge filsystemet, tale med eksterne systemer eller interagere med systemkomponenter. Det giver dem mulighed for at køre hurtigt, og du får hurtig feedback, hvis ændringer har brudt eksisterende funktionalitet.

Komponenttests

De tester store grupper af funktioner, så de kan identificere problemer som disse. De er generelt langsommere, kræver mere kompleks konfiguration og mere I/O-forbindelse til en database, et filsystem eller andre systemer.

Implementeringstests

Sådanne tests bekræfter, at implementeringen fungerede, med andre ord, at din applikation er korrekt installeret, konfigureret, kan få adgang til de tjenester, den har brug for, og at den reagerer.

Ud over disse er der også test for udnyttelse og brugbarhed. For at vide mere om test, tjek artiklen om typer af applikationstest.

  9 bedste VR-headset til en fordybende Virtual Reality-oplevelse

Hvad er mikroservicearkitektur, og hvordan adskiller den sig fra traditionel arkitektur?

Den traditionelle metode til at skrive software er monolitisk. Det betyder, at alle funktionerne i en applikation er samlet i en enkelt blok. I tilfælde af fejl eller behov for opdatering analyseres koden, der styrer hele produktet.

Det genererer stop eller endda nedbrud og repræsenterer en stor fare for bevarelsen af ​​koden. For kunderne betyder det tab og hovedpine.

I en mikroservicearkitektur repræsenterer en applikations funktioner en uafhængigt udviklet og integreret service. Komponenterne er adskilte, men arbejder sammen for at udføre de relaterede opgaver.

På denne måde kører hver uafhængig service uden at forstyrre de andre, hvilket også gælder i tilfælde af fejl. Hvis en funktion fejler, er det muligt at justere den uden at kompromittere funktionen af ​​hele applikationen.

Microservices ankommer for at gøre DevOps endnu mere agile og effektive, og accelererer end-to-end-udvikling og gør applikationer endnu mere skalerbare.

Hvad er Infrastruktur som kode?

Infrastruktur som kode er tilgangen til at definere computer- og netværksinfrastrukturen, som bruger kildekodehåndteringsteknikker og behandles som ethvert softwaresystem.

Denne kode kan holdes i kildekontrol for at tillade hørbarhed og reproducerbar konstruktion, underlagt testpraksis og den fulde disciplin for kontinuerlig levering.

Infrastruktur som kode er baseret på nogle få praksisser:

  • Brug definitionsfiler
  • Selvdokumenterede systemer og processer
  • Version alle elementer
  • Test løbende systemer og processer
  • Små ændringer i stedet for batches
  • Hold tjenester tilgængelige løbende

Byg automatiseringsværktøjer specificerer, hvordan softwaren skal bygges (hvilke trin, der skal udføres og i hvilken rækkefølge), og hvilke afhængigheder der kræves (hvilken anden software skal være til stede, for at bygningen kan lykkes).

Nogle værktøjer egner sig bedre til projekter i specifikke programmeringssprog, såsom Maven og Apache’s Ant, som, mens teknologien kan bruges med andre sprog, mest bruges i Java-projekter. Andre, som Hudson eller Jenkins, kan bruges mere bredt med forskellige projekter.

Hvad er en DevOps-pipeline?

DevOps-pipelinen er en proces, der omfatter flere trin, før ny software frigives. Det kan anvendes i alle faser af projektet, fra integration og test til levering og implementering. Generelt gennemgår det følgende stadier og hold:

  • Produktvision: definerer produktets egenskaber;
  • Dev Team: udvikler iterativt og trinvist;
  • Driftsområde: implementerer og vedligeholder stabile miljøer;
  • Overvågning og feedback: søg at skabe værdi og brug for kunden.

Hvad er de forskellige stadier af en CI/CD-pipeline?

De trin, der udgør en CI/CD-pipeline, er nogle få grupperede opgaver, der kaldes pipeline-stadiet. Kort fortalt er de:

  • Kompilering: trin, hvor ansøgningen er kompileret;
  • Test: stadiet, hvor koden testes. Her sparer automatisering tid og kræfter;
  • Start: når applikationen sendes til depotet;
  • Implementering: Koden implementeres til produktionsmiljøet;
  • Validering og overholdelse: Du kan bruge billedsikkerhedsverifikationsværktøjer som Clair til at sikre kvaliteten af ​​dine billeder ved at sammenligne dem med kendte sårbarheder (CVE’er).
  Top 25 bedste gratis Snagit-alternativer

Dette er de mest almindelige stadier af DevOps-pipelinen. Hver virksomhed har dog sine specifikke behov og pipeline.

Hvad betyder platformvirtualisering, og hvad er dens fordele?

Platformvirtualisering betyder simulering af et helt computersystem for at køre flere forekomster af operativsystemer samtidigt på en enkelt fysisk maskine.

I denne konfiguration har en virtuel maskinemonitor (VMM) eller hypervisor fuld kontrol over den fysiske maskines hardwareressourcer. Gæsteoperativsystemer kører i virtuelle maskiner, som VMM administrerer. Miljøvirtualisering involverer simulering af en eller flere virtuelle maskiner og netværksforbindelserne mellem dem.

Virtualisering kan hjælpe med at reducere den tid, der bruges på implementering og de risici, der er forbundet med det på flere måder. Brugen af ​​virtuelle maskiner i implementeringen er en stor hjælp til at opnå effektiv konfigurationsstyring vertikalt og horisontalt på tværs af dine systemer.

Specielt giver brugen af ​​virtualisering følgende fordele:

  • Hurtigt svar på skiftende krav
  • Konsolidering
  • Standardisering
  • Nem vedligeholdelse af basislinjer

Hvad er forskellen mellem containere og virtuelle maskiner?

Både Containeren og VM’en arbejder med virtualisering og isolering af miljøer for at fremme behandling uafhængigt af applikationer. Alligevel skaber Containere isolerede miljøer, hvor forskellige applikationer kan køre samtidigt, fordi opdelingen sker på niveau med tilgængelige ressourcer, såsom hukommelse og behandling. På den anden side tillader den virtuelle maskine en fysisk maskine at huse andre med forskellige operativsystemer, harddiske og hardware-uafhængige af de originale.

Hvad er den største forskel mellem Docker og Kubernetes?

Docker er et af de mest brugte DevOps containerværktøjer. Det fokuserer på portabiliteten af ​​applikationer, placere dem i teknologiske beholdere og pakkesystemer og flytte dem på tværs af forskellige platforme.

Samtidig er Kubernetes et containerorkestreringsværktøj, der kan gruppere containere efter logisk kategorisering. Det kan implementeres til flere computere gennem automatiseret distribution.

Læs mere om Kubernetes Vs. Docker.

Hvad er nogle telemetri-metrics i DevOps?

  • Forretningsniveau: Eksempler omfatter antallet af salgstransaktioner, omsætning fra salgstransaktioner, brugertilmeldinger, churn rate og A/B-testresultater.
  • Applikationsniveau: Eksempler inkluderer transaktionstider, brugerresponstider og applikationsfejl.
  • Infrastrukturniveau: Eksempler inkluderer webservertrafik, CPU-belastning og diskbrug.
  • Klientsoftwareniveau: Eksempler omfatter applikationsfejl, nedbrud og brugermålte transaktionstider.
  • Implementeringspipeline-niveau: Eksempler inkluderer build-pipeline-status (rød eller grøn for forskellige automatiserede testsuiter), ændring af implementeringsfrister, implementeringsfrekvenser, testmiljøpromoveringer og miljøstatus.

Hvilke teknologier bruger du til at lave DevOps?

Dette spørgsmål har til formål at vide, hvilke teknologier du kan bruge til at implementere DevOps-kulturen i organisationen. Nogle af de mest almindelige teknologier, som en DevOps kan bruge, er:

  • Kontinuerlig udvikling: Git, SVN, Mercurial, CVS, Jira
  • Kontinuerlig integration: Jenkins, Bamboo, Hudson
  • Kontinuerlig udvikling: Nexus, Archive, Tomcat
  • Kontinuerlig implementering: Puppet, Chef, Docker
  • Kontinuerlig overvågning: Splunk, ELK Stack, Continuous Nagios
  • Test: Selen, Katalon Studio

Fortæl os om din erfaring med at styre DevOps-projekter

DevOps-færdigheder handler ikke kun om teknisk knowhow og kræver menneskelige og ledelsesmæssige færdigheder, som ofte findes blandt ledere, programdirektører og projektledere.

Det er vigtigt at vide, hvordan man håndterer og understøtter forandringer, giver en gateway til at lette overførslen af ​​nye versioner af kode til driftssiden, evaluere og overvåge de forskellige platforme og værktøjer til at måle ydeevne og analysere og dele resultater for at forbedre fremtidige leverancer , etc.

Gå til dette spørgsmål med metodologi og forklar din rejse med at løse komplekse problemer. Hvordan agter du at gøre for at forbedre infrastrukturernes funktion? Hvordan planlægger du at samarbejde med front-, middle- og backoffice-udviklere? Hvilke overvågningsværktøjer mestrer du? Overvej også at dele dine erfaringer med konfliktløsning i dit team.

For at lære mere kan du overveje at tilmelde dig et af disse DevOps-kurser.