20 Vanliga DevOps-intervjufrågor och svar [2022]

DevOps blir alltmer ett populärt sätt att bygga och distribuera applikationer, vilket har lett till ökad efterfrågan på DevOps-proffs.

Den här artikeln kommer att täcka några av de vanligaste DevOps-intervjufrågorna och deras svar. Att använda dessa frågor som kärna för att studera kan öka dina chanser att bli anställd, eller om du är rekryterare kan de hjälpa dig i anställningsprocessen.

Vanliga DevOps-intervjufrågor och svar

Vad är DevOps för dig?

DevOps är ett tillvägagångssätt som syftar till att förbättra arbetet under hela mjukvaruutvecklingens livscykel. DevOps-processen avbildas som en oändlig slinga, som omfattar stadierna planering, kodning, byggande, testning, frigivning, driftsättning, drift och övervakning.

DevOps påverkar applikationens livscykel under dess planering, utveckling, leverans och driftfaser. Varje fas beror på de andra, och faserna är inte specifika för en roll. I en sann DevOps-kultur är varje roll involverad i varje fas i någon mån.

Varför är DevOps viktigt?

Team som använder en DevOps-strategi tenderar att få sina projekt gjorda snabbare. På så sätt undviks kommunikationsfel, vilket underlättar snabb implementering av förbättringar och andra nödvändiga förändringar. DevOps-metoden uppmuntrar till ökat samarbete mellan utvecklings- och driftteamen, där målen för dem alla är mer anpassade. Du kan sammanfatta några av fördelarna så här:

  • Förbättrad kommunikation
  • Lagarbete och sammanhållning
  • Förbättrat samarbete
  • Snabbare leverans av kvalitetsprodukter
  • Minskad komplexitet och snabb problemlösning
  • Större skalbarhet och flexibilitet för att lägga till ny kod
  • Stabilare driftsmiljöer
  • Större automatisering
  • Kostnadsminskning och resursutnyttjande
  • Säkerhet genom integrerade och automatiserade verktyg

Vilka är de dagliga uppgifterna för DevOps?

Några av de dagliga uppgifterna du kan nämna är:

  • Säkerställ kontinuerlig integration och driftsättning
  • Tilldela och kommunicera uppgifter som ska utföras
  • Designa och beställa testprotokoll
  • Övervakning och insamling av infrastruktur och applikationsmått
  • Analys av resultat som erhållits i varje utvecklingsfas
  • Minska felfrekvensen och återställningstiden vid fel
  • Minska leveranstiden

Hur hjälper DevOps utvecklare?

När en DevOps-metodik implementeras behöver utvecklarna inte längre vänta på feedback från driftteamet för att fixa buggar i sin kod. Men nu kan de lösa dessa problem snabbare eftersom de har kontinuerlig feedback på sin kod.

Vad är versionskontroll?

Versionskontroll är en praxis som gör att vi kan hålla reda på de ändringar vi gör i en fil eller uppsättning filer över tiden så att specifika versioner kan hämtas senare. Ett versionskontrollverktyg gör att vi enkelt kan spåra framstegen i ditt utvecklingsarbete och spara olika versioner av källkoden för att återgå till den tidigare när det behövs. Ett av de mest använda verktygen i detta skede av mjukvaruutveckling är Git.

Vad är CI/CD och vilka är fördelarna med det?

Kontinuerlig integration (CI)

CI kombinerar verktyg och metoder som gör det enkelt att leverera högkvalitativ, snabb programvara. På så sätt elimineras flaskhalsar och tekniska problem undviks i lanseringsfaserna.

Kontinuerlig leverans (CD)

Denna praxis automatiserar leveransen av kodändringar, vilket säkerställer att koden snabbt kan kompletteras i produktionen och att applikationer fungerar korrekt.

Kontinuerlig distribution (CD)

Till skillnad från kontinuerlig leverans är syftet med denna praxis att det inte finns något mänskligt ingripande när programvaran distribueras i produktionen. Publicering av ny eller ändrad kod till produktion är automatiserad.

CI/CD implementerar DevOps under hela applikationens livscykel. Dessa metoder hjälper till att förbättra produktiviteten i de olika faserna av mjukvaruutvecklingsprocessen genom att effektivisera och automatisera dem.

Vad är kontinuerlig övervakning

Kontinuerlig övervakning är en DevOps-praxis som involverar övervakning, varning och åtgärder på både kod och infrastruktur. Så det problem som kan uppstå i implementeringen upptäcks och identifieras snabbt, vilket minskar tiden för att lösa problem.

Varför är kontinuerliga tester viktigt?

Kontinuerlig testning är att automatisera tester tidigt, gradvis och på lämpligt sätt i utvecklingspipelinen. Det är viktigt eftersom det gör det möjligt att säkerställa kodens kvalitet. Fel upptäcks tidigt och kodåterkoppling sker snabbare.

Förklara några typer av tester som används i DevOps?

Enhetstest

De testar en specifik kodbit isolerat. Enhetstester får inte vara kopplade till databasen, använda filsystemet, prata med externa system eller interagera med systemkomponenter. Det låter dem köras snabbt och du får snabb feedback om ändringar har brutit befintlig funktionalitet.

Komponenttester

De testar stora grupper av funktioner så att de kan identifiera problem som dessa. De är i allmänhet långsammare, kräver mer komplex konfiguration och mer I/O-anslutningar till en databas, filsystem eller andra system.

Implementeringstester

Sådana tester verifierar att distributionen fungerade, med andra ord att din applikation är korrekt installerad, konfigurerad, kan komma åt alla tjänster den behöver och att den svarar.

Förutom dessa finns det även exploaterings- och användbarhetstester. För att veta mer om testning, läs artikeln om typer av applikationstestning.

Vad är mikroservicearkitektur och hur skiljer den sig från traditionell arkitektur?

Den traditionella metoden att skriva programvara är monolitisk. Det betyder att alla funktioner i en applikation är samlade i ett enda block. Vid fel eller behov av uppdatering analyseras koden som styr hela produkten.

Det genererar stopp eller till och med krascher och utgör en stor fara för bevarandet av koden. För kunderna innebär det förluster och huvudvärk.

I en mikrotjänstarkitektur representerar en applikations funktioner en oberoende utvecklad och integrerad tjänst. Komponenterna är separata men arbetar tillsammans för att utföra de korrelerade uppgifterna.

På så sätt körs varje oberoende tjänst utan att störa de andra, vilket även gäller i fall av fel. Om en funktion misslyckas är det möjligt att justera den utan att kompromissa med hela applikationens funktion.

Microservices anländer för att göra DevOps ännu mer flexibel och effektiv, accelererar utvecklingen från slut till ände och gör applikationer ännu mer skalbara.

Vad är Infrastruktur som kod?

Infrastruktur som kod är metoden för att definiera dator- och nätverksinfrastrukturen, som använder källkodshanteringstekniker och behandlas som vilket programvarusystem som helst.

Denna kod kan hållas i källkontroll för att möjliggöra hörbarhet och reproducerbar konstruktion, med förbehåll för testpraxis och hela disciplinen för kontinuerlig leverans.

Infrastruktur som kod är baserad på några metoder:

  • Använd definitionsfiler
  • Självdokumenterade system och processer
  • Version alla element
  • Testar kontinuerligt system och processer
  • Små förändringar istället för partier
  • Håll tjänsterna tillgängliga kontinuerligt

Byggautomatiseringsverktyg anger hur mjukvaran ska byggas (vilka steg som måste göras och i vilken ordning) och vilka beroenden som krävs (vilka annan programvara som måste finnas för att bygget ska bli framgångsrikt).

Vissa verktyg är bättre lämpade för projekt i specifika programmeringsspråk, som Maven och Apache’s Ant, som, även om teknik kan användas med andra språk, mest används i Java-projekt. Andra, som Hudson eller Jenkins, kan användas mer allmänt med olika projekt.

Vad är en DevOps Pipeline?

DevOps pipeline är en process som omfattar flera steg innan ny programvara släpps. Den kan tillämpas i alla faser av projektet, från integration och testning till leverans och driftsättning. I allmänhet går det igenom följande stadier och lag:

  • Produktvision: definierar produktens egenskaper;
  • Dev Team: utvecklas iterativt och inkrementellt;
  • Verksamhetsområde: implementerar och underhåller stabila miljöer;
  • Övervakning och återkoppling: sträva efter att skapa värde och användning av kunden.

Vilka är de olika stegen i en CI/CD-pipeline?

Stegen som utgör en CI/CD-pipeline är några få grupperade uppgifter som kallas pipeline-stadiet. Kortfattat är de:

  • Sammanställning: skede där ansökan sammanställs;
  • Test: steget där koden testas. Här sparar automatisering tid och ansträngning;
  • Lansering: när applikationen skickas till förvaret;
  • Distribution: Koden distribueras till produktionsmiljön;
  • Validering och efterlevnad: Du kan använda verktyg för bildsäkerhetsverifiering som Clair för att säkerställa kvaliteten på dina bilder genom att jämföra dem med kända sårbarheter (CVE).

Dessa är de vanligaste stegen i DevOps-pipelinen. Varje företag har dock sina specifika behov och pipeline.

Vad innebär plattformsvirtualisering och vilka är fördelarna med det?

Plattformvirtualisering innebär att simulera ett helt datorsystem för att köra flera instanser av operativsystem samtidigt på en enda fysisk maskin.

I den här konfigurationen har en virtuell maskinövervakare (VMM), eller hypervisor, full kontroll över den fysiska maskinens hårdvaruresurser. Gästoperativsystem körs i virtuella maskiner, som VMM hanterar. Miljövirtualisering innebär att simulera en eller flera virtuella maskiner och nätverksanslutningarna mellan dem.

Virtualisering kan på flera sätt bidra till att minska tiden som ägnas åt driftsättning och de risker som är förknippade med det. Användningen av virtuella maskiner i driftsättning är en stor hjälp för att uppnå effektiv konfigurationshantering vertikalt och horisontellt över dina system.

I synnerhet ger användningen av virtualisering följande fördelar:

  • Snabbt svar på ändrade krav
  • Konsolidering
  • Standardisering
  • Enkelt underhåll av baslinjer

Vad är skillnaden mellan behållare och virtuella maskiner?

Både Containern och VM arbetar med virtualisering och isolering av miljöer för att främja bearbetning oberoende av applikationer. Fortfarande skapar Containers isolerade miljöer där olika applikationer kan köras samtidigt eftersom uppdelningen görs på nivån av tillgängliga resurser, såsom minne och bearbetning. Å andra sidan tillåter den virtuella maskinen en fysisk maskin att hysa andra med olika operativsystem, hårddiskar och hårdvaruoberoende från de ursprungliga.

Vad är den största skillnaden mellan Docker och Kubernetes?

Docker är ett av de mest använda DevOps containerverktygen. Det fokuserar på portabilitet av applikationer, placera dem i tekniska behållare och förpackningssystem och flytta dem över olika plattformar.

Samtidigt är Kubernetes ett verktyg för orkestrering av behållare som kan gruppera behållare efter logisk kategorisering. Den kan distribueras till flera datorer genom automatiserad distribution.

Läs mer om Kubernetes Vs. Hamnarbetare.

Vad finns det för telemetrimått i DevOps?

  • Affärsnivå: Exempel inkluderar antalet försäljningstransaktioner, intäkter från försäljningstransaktioner, användarregistreringar, churn rate och A/B-testresultat.
  • Applikationsnivå: Exempel inkluderar transaktionstider, användarens svarstider och applikationsfel.
  • Infrastrukturnivå: Exempel inkluderar webbservertrafik, CPU-belastning och diskanvändning.
  • Klientprogramnivå: Exempel inkluderar programfel, krascher och användaruppmätta transaktionstider.
  • Implementeringspipelinenivå: Exempel inkluderar byggpipelinestatus (röd eller grön för olika automatiserade testsviter), ändrade distributionsdeadlines, distributionsfrekvenser, testmiljökampanjer och miljöstatus.

Vilka tekniker använder du för att göra DevOps?

Denna fråga syftar till att veta vilka teknologier du kan använda för att implementera DevOps-kulturen inom organisationen. Några av de vanligaste teknikerna som en DevOps kan använda är:

  • Kontinuerlig utveckling: Git, SVN, Mercurial, CVS, Jira
  • Kontinuerlig integration: Jenkins, Bamboo, Hudson
  • Kontinuerlig utveckling: Nexus, Archive, Tomcat
  • Kontinuerlig distribution: Puppet, Chef, Docker
  • Kontinuerlig övervakning: Splunk, ELK Stack, Continuous Nagios
  • Testning: Selenium, Katalon Studio

Berätta för oss om din erfarenhet av att hantera DevOps-projekt

DevOps-färdigheter handlar inte bara om tekniskt kunnande och kräver mänskliga och ledande färdigheter som ofta finns bland chefer, programledare och projektledare.

Det är viktigt att veta hur man hanterar och stödjer förändringar, tillhandahåller en gateway för att underlätta överföringen av nya versioner av kod till driftsidan, utvärdera och övervaka de olika plattformarna och verktygen för att mäta prestanda, samt analysera och dela resultat för att förbättra framtida leveranser , etc.

Närma dig denna fråga med metodik och förklara din resa för att lösa komplexa problem. Hur tänker ni gå tillväga för att förbättra infrastrukturernas funktion? Hur planerar du att samarbeta med front-, middle- och backoffice-utvecklare? Vilka övervakningsverktyg behärskar du? Överväg också att dela dina erfarenheter av konfliktlösning inom ditt team.

Om du vill veta mer kan du överväga att anmäla dig till någon av dessa DevOps-kurser.