DevOps-fagfolk er meget efterspurgte, og det er let at se hvorfor. De er ansvarlige for den kontinuerlige integration og levering af kode samt for overvågning og håndtering af servere, netværk og andre infrastrukturkomponenter i en virksomheds netværk.
DevOps handler om at sikre, at din virksomheds software kører effektivt og uden problemer. Det betyder, at hvis du vil ansætte en DevOps-ingeniør, vil du gerne have en, der kan levere en problemfri drift af din software – og måske endda hjælpe med at forbedre den.
DevOps, eller Development Operations, er en jobfunktion, der er blevet mere almindelig udbredt inden for de seneste år. Da det først var omkring 1970’erne, hvor computere første gang blev anvendt i større virksomheder, dukkede DevOps som en funktion ikke op før end i 2000-tallet. Virksomheder ansætter DevOps-specialister til at håndtere deres softwareudviklings- og implementeringsprocesser.
Når du tænker på al opmærksomheden på DevOps inden for de seneste par år, er det nemt at se, hvorfor denne rolle er så eftertragtet. I en tid, hvor software fylder meget i hele verden, indser virksomheder, at de har brug for en veletableret DevOps-kultur for at opnå succes. Kombinationen af den teknologiske knowhow og virksomhedsmæssige bevidsthed, der følger med det at have en DevOps-ingeniør ansat, gør din virksomhed meget mere fleksibel end konkurrenterne. Ansættelse af en DevOps-ingeniør bør være din første prioritet, hvis du vil forblive konkurrencedygtig i dagens erhvervsklima.
DevOps er især blevet så populære, fordi det er særdeles vigtigt for virksomheder at forblive konkurrencedygtige. Tag f.eks. en virksomhed, der skal implementere specifikke applikationer i deres systemer hurtigere pga. efterspørgsel. I det tilfælde kan de risikere at miste kunder – eller i det mindste opleve en mere udfordrende tid end deres konkurrenter, der kan få tingene ud hurtigere. DevOps-udvikleren er med til at sikre, at det ikke sker ved at sørge for, at kundernes behov opfyldes ved at følge med den hurtige udvikling inden for software i et hurtigt tempo.
Med væksten af program- og systemudvikling indfører virksomheder i større grad DevOps-teknikker for at kunne følge med tempoet i dette landskab, der konstant forandrer sig. Med hvad betyder det for DevOps-ingeniøren? Oplever jobmarkedet for DevOps-ingeniører virkelig en markant stigning? Eller er det mere hype end virkelighed? Hvad skal du kigge efter hos en DevOps-kandidat? Hvilke færdigheder skal de have? Det er nogle af de spørgsmål, vi bl.a. kigger på i denne artikel.
Vi viser dig også, hvordan du udfører en grundig samtaleproces, så du kan ansætte den bedst mulige kandidat til dit team. Men inden vi fortsætter med det, skal vi have en større forståelse af denne rolle.
Hvad er DevOps?
Udtrykket "DevOps" har eksisteret i flere år, men kan stadig være forvirrende for mange. Der er mange, der forbinder DevOps med en bestemt stilling – f.eks. en DevOps-ingeniør. Sandheden er, at DevOps er en tilgang til it-administration (informationsteknologi), der involverer samarbejde mellem virksomheden og it-fagfolk, der hjælper med at håndtere den teknologi, der driver den.
DevOps-ingeniøren er en rolle, der oftere dukker op i stillingsannoncer. Lad os antage, at du ikke kender udtrykket. I så fald er DevOps-ingeniøren eller developer-turned-DevOps-ingeniøren en, der forstår både softwareudvikling og it-drift. Det er med andre ord en, der ved, hvordan man skriver kode og anvender den, der kan skrive enhedstests og vedligeholde produktionssystemer, der kan lege med ilden (i overført betydning) og også hjælpe med at slukke ilden (en meget bogstavelig beskrivelse af deres job).
Har du brug for en udvikler eller en DevOps-ingeniør? Hvad er forskellen?
Tja, du har sandsynligvis brug for begge.
Softwareudviklere udvikler de programmer, der kører på servere, hvorimod DevOps-ingeniører administrerer disse servere. De to roller er afhængige af hinanden, men de er også meget forskellige. Udvikleren arbejder med kode og udvikler software – DevOps-ingeniøren arbejder med servere, værktøjer til konfigurationsstyring og anden infrastruktur.
På et tidspunkt i ansættelsesprocessen vil du gerne vide helt præcist, hvad du får fra en DevOps-ingeniør – det vil sige, at du ser på, hvordan denne rolle adskiller sig fra dine traditionelle udviklere, og hvorfor nogen ønsker jobbet i første omgang.
Der er en række forskellige stillinger inden for DevOps-verden, hvilket vi dækker nedenfor, for at få en forståelse af, hvad disse jobs indebærer, og hvordan de adskiller sig fra andre roller, så du kan finde ud af, hvilken stilling der passer bedst til din virksomhed.
Jobmarkedet for DevOps-ingeniører
DevOps-ingeniører er meget efterspurgte, fordi de kan bruge deres ekspertise til at transformere virksomheder. Rollen som DevOps-ingeniør er blevet en nøgleposition inden for it-branchen og vokser stadig hastigt. I henhold til gminsights er størrelsen på DevOps-markedet oversteget 7 trillioner USD i 2021, og DevOps-markedsandelen vil stige med mere end 20 % inden 2028. Og antallet af DevOps-jobs forventes stadig at stige med mere end 20 % årligt mellem 2020 og 2026.
Mange virksomheder bliver hurtigt klar over, hvor stor en indvirkning de kan have. Uanset om virksomheder arbejder med udviklere eller driftsteams, har de brug for nogen, der kan udfylde hullet mellem de to verdener og sikre, at alt kører uden problemer.
Mens jobmarkedet for DevOps-ingeniører er konkurrencedygtigt nu, vil det kun blive endnu mere konkurrencedygtigt fremover. Den dyreste del af din virksomhed er virksomhedens team. Hvis du har budgetbegrænsninger, kan du blive fristet til at ansætte en knap så dyr DevOps-ingeniør. Men i sidste ende kan ansættelse af den forkerte person koste dig din forretning. Det tager tid at uddanne nye medarbejdere, og det tager endnu længere tid, når du prøver at genoptræne en ikke-teknisk medarbejder til at blive DevOps-ingeniør. Derfor er det vigtigt at ansætte den rette person til jobbet i første omgang.
Der er mange forskellige typer virksomheder, der ansætter DevOps-ingeniører, herunder
- Softwarevirksomheder
- SaaS-udbydere
- Konsulentvirksomheder inden for administration
- Cloud Storage-udbydere
Virksomheder, der anvender DevOps
DevOps anvendes i mange virksomheder i tech-branchen i dag. Her er en liste over blot nogle af dem:
- Amazon
- HP
- Netflix
- Walmart
- Etsy
- Target
- Meta
- Adobe
- Sony Pictures Entertainment
Svaret er simpelt: Fordi de får tingene til at fungere uden problemer.
DevOps-ingeniører er sædvanligvis ansvarlige for automatisering af processer, der på nuværende tidspunkt udføres manuelt af mennesker. De udtænker måder til at automatisere gentagne opgaver på og tager sig af dem backend, så medarbejdere ikke længere skal bekymre sig om dem. Dette giver udviklere tid til at fokusere på deres primære job – udvikling af nye funktioner og forbedring af de eksisterende – i stedet for at bruge tid på opsætning af servere eller på at sikre, at backups fungerer korrekt.
Credit: OnGraph.com: Hvorfor en investering i DevOps kan betale sig
Hvis du er på udkig efter at ansætte en DevOps-ingeniør, har du sikkert allerede en webtjeneste eller et program, der anvendes på nettet. Du vil gerne øge hyppigheden af afsendelse af nye funktioner, samtidig med at du sikrer dig, at det ikke forårsager for meget nedetid. Du vil gerne gøre det nemt for udviklere hurtigt at anvende kode og for systemadministratorer hurtigt at annullere evt. opdateringer i tilfælde af fejl. Det er her, at DevOps-ingeniører kommer ind i billedet: De bliver mellemleddet mellem begge afdelinger og opfordrer til en kultur med tillid mellem teammedlemmer, hvor de koordinerer deres indsats, så dyrebar tid og penge ikke går til spilde ved at forsøge at afværge problemer på forhånd eller rette dem efterfølgende.
Vi har talt med Anmol Nagpal, DevOps-ekspert, om vigtigheden af ansættelse af DevOps i din virksomhed.
“DevOps spiller en vigtig rolle. Det er dem, der tager sig af skyen/infrastrukturen. Der er ikke nogen virksomhed, der kan vækste uden en stabil og skalerbar infrastruktur, og programmer vil ikke være stabile. Selvom du har den bedste kode, men arkitekturen ikke er god nok, vil programmet ikke være stabil, og det kan resultere i nedetid, hvilket også fører til tab af penge og forretning."
Anmol Nagpal
Adskillige kandidater er erfarne inden for DevOps – men som ansvarlig for ansættelse hjælper det at vide, hvordan man finder en fantastisk kandidat i forhold til en god kandidat. Anmol foreslår, at den potentielle kandidat overvejer følgende. I følge ham skal de:
-
Have en mentalitet med at få tingene gjort på den bedst mulige måde
-
Foretage konsistente opdateringer af de seneste værktøjer i DevOps
-
Følge de bedste fremgangsmåder inden for sikkerhed i alt, hvad de udvikler eller designer
-
Være en holdspiller. Det er dem, der arbejder med forskellige teammedlemmer om engagementet og skal supportere og hjælpe dem
-
Være klar til nye udfordringer
-
Kunne arbejde alene uden supervision
Typiske stillinger, der er besat af DevOps
En typisk stilling inden for dette område er en systemudvikler, som involverer design og udvikling af softwaresystemer (som databaser). Systemudviklere arbejder tæt sammen med udviklere og andre tekniske medarbejdere for at sikre, at de har alt, hvad de skal bruge, så deres engagementer kører uden problemer og effektivt.
En anden jobtitel, der ofte er forbundet med DevOps, er infrastrukturtekniker. Disse fagfolk designer og administrerer netværk og lagersystemer for virksomheder, så de kan håndtere store mængder data på én gang. De udvikler, vedligeholder, implementerer og koordinerer it-infrastrukturen ved hjælp af nye teknologier.
Andre almindelige titler inden for dette felt omfatter:
- Site Reliability Engineer (SRE)
Deres primære opgaver involverer test og evaluering af produkter, når de bliver fremstillet. De forventes også at analysere data og håndtere risici forbundet med aktivers pålidelighed, samtidig med at de arbejder hårdt på at reducere dem.
Configuration Managers er ansvarlige for koordinering og dirigering af konfigurationer af alle typer produkter. De står typisk for softwarens livscyklus eller hardwareproduktion, som f. eks. udviklingen af et nyt program eller en ny server.
En DevOps-ingeniør er en it-medarbejder, der har en omfattende viden inden for udvikling og drift, hvilket typisk omfatter programmering, infrastrukturstyring, systemadministration og DevOps-værktøjskæder.
- Cloud Engineer (Azure/AWS/GCP)
En Cloud Engineer er en it-ekspert, der udvikler og vedligeholder en cloud-infrastruktur. De er særligt ansvarlige for alle tekniske opgaver relateret til cloud computing, herunder design, planlægning, administration, vedligeholdelse og support.
En løsningsarkitekt designer den overordnede tekniske vision for en bestemt løsning til et forretningsproblem. De udfylder i bund og grund hullet mellem et forretningsproblem og den teknologiske løsning, hvor de skitserer alle de faser og krav, der kræves for at implementere den pågældende løsning.
En Release Engineer håndterer udviklingen og behandlingen af softwareprodukter. En Release Engineering Manager står for softwareudviklingen og releases og er hovedsageligt ansvarlig for planlægning og kontrol af softwarens udviklings- og leveringsproces.
DevSecOps integrerer uden problemer program- og infrastruktursikkerhed med fleksible og DevOps-processer og -værktøjer.
Hvad er jobansvaret for en DevOps-ingeniør?
For at gøre det mere overskueligt holder vi os til én rolle – DevOps-ingeniør.
DevOps-ingeniører arbejder med andre it-eksperter som f.eks. udviklere, testere og kvalitetssikringsudviklere. De hjælper teamet med implementering af de funktioner, der kræves af dem, ved hjælp af forskellige værktøjer som f.eks. Puppet, Chef eller Ansible for at automatisere opgaver, der skal udføres jævnligt.
De overordnede roller og ansvarsområder er:
-
Implementering af forskellige værktøjer til udvikling, test og automatisering samt it-infrastruktur
-
Udvikling af nye funktioner i programmer
-
Definition og angivelse af udvikling, test, release, opdatering samt understøttende processer til DevOps-drift
-
Fejlfinding og rettelse af fejl
-
Overvågning af processerne under hele livscyklussen for deres overholdelse samt opdatering eller udvikling af nye strategier til forbedring og minimering af svind
-
Udvikling af automatiserede processer, hvor det er muligt
-
Identificering og implementering af foranstaltninger i forbindelse med cybersikkerhed
-
Hændelsesstyring og udførelse af årsagsanalyse
-
Jævnlig kommunikation med teammedlemmer og med kunder
-
Valg af de rette CI/CD-værktøjer og implementering af disse
-
Administration af periodisk rapportering
Ansættelse af egnede DevOps-kandidater
DevOps er meget oppe i tiden lige nu. Viden om, hvordan du ansætter de rette medarbejdere, kan være nøglen til din succes.
Du vil gerne have nogen til at holde styr på udvikling og afsendelse af produkter fra start til slut – ikke blot en, der er god til administration af infrastruktur.
Det kan kræve arbejde at finde en med den rette erfaring og personlighed til dit team. Men med lidt forarbejde kan du adskille dig fra andre virksomheder, der konkurrerer om denne persons opmærksomhed, hvilket øger dine chancer for at få vedkommende interesseret og i sidste ende få vedkommende med i dit team.
Her er nogle ting, du bør overveje, når du skal ansætte nye medarbejdere:
- Hvad er din virksomheds behov?
Har du brug for en, der kan administrere servere, eller har du brug for en, der kan håndtere softwareudvikling? Er der specifikke færdigheder, der kunne være nyttige?
- Hvad er kandidatens baggrund?
Har vedkommende tidligere erfaring? Hvilken uddannelse har vedkommende? Har deres arbejde i andre virksomheder været en succes? Viser deres CV, at de har arbejdet godt sammen med andre før? Disse spørgsmål kan hjælpe dig med at vurdere, om vedkommende har det, der kræves for at passe ind i din virksomhed.
- Hvordan interagerer denne person med andre?
Nogle er af natur udadvendte og får nemt venner, mens andre holder sig mere for sig selv. Du vil gerne have en, der passer godt ind sammen med resten af dit team.
- Se på mere end blot deres CV.
Har de en god forståelse af DevOps? Det er vigtigt at sikre, at de forstår, hvad DevOps betyder, og hvordan det relaterer til din virksomhed. Hvis ikke de forstår disse koncepter eller ikke har nogen erfaring med dem, så er de sandsynligvis ikke et godt match til denne rolle eller andre roller i din virksomhed.
- Kan de også løse problemer?
Det betyder, at de skal kunne kommunikere effektivt med andre og stille spørgsmål for at få svar om forskellige koncepter, processer, værktøjer osv., som kunne være relevant i løbet af deres arbejde.
- Er de effektive formidlere?
De skal kunne forklare deres arbejde i detaljer, så andre kan forstå det, hvilket kan være ensbetydende med at afholde præsentationer eller skrive dokumentation baseret på, hvad de har lært i forbindelse med arbejde på engagementer, der er relateret til deres jobbeskrivelse. Dette kan også betyde at kunne besvare spørgsmål fra kunder eller klienter, der ønsker flere oplysninger om, hvordan noget fungerer (eller hvorfor det ikke fungerer).
Hvilken uddannelse og erfaring skal du kigge efter hos en DevOps-ingeniør?
DevOps-ingeniører har typisk en tertiær uddannelse inden for computervidenskab eller et relateret område sammen med faglig erfaring inden for branchen. For at kunne arbejde med DevOps skal man have afsluttet en Bachelor i computervidenskab eller en relateret eksamen, der fokuserer på softwareudvikling.
Du kan kigge efter DevOps-ingeniører med erfaring inden for forskellige sprog og strukturer. Det er af afgørende betydning at have en bred viden. Men hvis de har særlige færdigheder inden for ét programmeringssprog, kan det stadig være en fordel for din virksomhed, forudsat at de er eksperter i det pågældende sprog. Væksten i populariteten af DevOps (kombinationen af udvikling og it-drift) og de fantastiske statistikker har ført til jobmuligheder for en lang række forskellige roller, men ofte bliver rollen for en DevOps-ingeniør defineret af, hvad du prøver at opnå.
Det handler om, hvad din organisation har brug for på det pågældende tidspunkt. Hvis du lige er startet, kan det være bedst at ansætte nogen med erfaring inden for kodning og drift. Mange organisationer vil muligvis gerne ansætte nogen, der kan udføre et mere funktionelt arbejde, som f.eks. implementering af overvågnings- eller automatiseringsværktøjer, inden de ansætter en softwareudvikler på fuld tid. Dette giver dig mulighed for at gøre dit team større, samtidig med at du bruger færre penge først og fremmest på udbetalingen til ansættelse af udviklere.
Erfaring inden for sprog og strukturer
Som du allerede ved, er DevOps-ingeniører en hybrid type af softwareudviklere, der skal have en solid forståelse af både softwareudviklingsprincipper og driften og infrastrukturen af webapps. Dette kræver, at de har erfaring inden for følgende:
Det er vigtigt at kigge efter en DevOps-ingeniør med erfaring inden for Java og ideelt Apache Tomcat. De næstvigtigste faktorer er SQL og MySQL, men du skal også kigge efter viden inden for DevOps-værktøjer som Puppet, Chef og Ansible.
Anmol foreslår andre vigtige færdigheder, som DevOps-fagfolk skal have, så de kan udføre deres job godt som f.eks. følgende:
- Fejlfindings- og Analytics-færdigheder – dette er nyttigt for at kunne forstå problemet.
- Dokumentation – Dette er en færdighed, som ikke alle har, og det er virkelig vigtigt at have den rette dokumentation, så der ikke går viden tabt.
- Opsætning af prioriteter – Når man arbejder i en DevOps-afdeling, kommer andre medarbejdere til dig med 100 ting, men det er din opgave at forstå og kunne prioritere disse opgaver.
- Proaktiv – I DevOps er dette af afgørende betydning. Du skal aktivt overvåge infrastrukturen/programmerne og sikre dig, at vi følger de bedste fremgangsmåder. I de tilfælde hvor vi finder noget, skal du anerkende det og få det sorteret baseret på prioritet
- Forståelse af virksomheden/produktet – dette vil hjælpe dig med at designe og levere den rette infrastruktur
Efterhånden som DevOps-bevægelsen vokser, vokser karrieremulighederne også. En god DevOps-ingeniør er en altmuligmand, der kan håndtere alle dele af softwareudviklingens livscyklus. De skal kunne løse problemer hurtigt, kommunikere disse løsninger til deres team og have en bred teknisk viden.
Udførelse af effektive samtaler med DevOps-ingeniører
En effektiv samtale er en vigtig del af ansættelsen af den rette person til dit team, men det er ikke altid nemt at identificere den kandidat, der passer perfekt til en stilling, der kræver så forskellige færdigheder. For at hjælpe med processen er første vigtige trin at forstå, hvilke bløde færdigheder du skal kigge efter blandt mulige DevOps-ingeniører.
Nødvendige bløde færdigheder
Bløde færdigheder er lige så vigtig for en DevOps-ingeniørs succes som tekniske færdigheder. Bløde færdigheder bliver generelt betragtet som færdigheder inden for kommunikation, problemløsning og opbygning af relationer. Disse færdigheder er vigtige for at kunne vejlede teamet til at koordinere og samarbejde effektivt, opbygge gensidig forståelse og tillid til interessenter og effektivt løse problemer. Følgende er en opdeling af de bløde færdigheder, som DevOps-ingeniører bør besidde:
-
Du skal bruge en, der er god til at kommunikere. For at kunne kommunikere effektivt skal en DevOps-ingeniør være god til at lytte, tale præcis og tydeligt og udtrykke ideer med nøjagtighed. Denne person skal muligvis håndtere en masse ansvar på egen hånd, så de skal kunne tydeligt forklare ræsonnementet bag de beslutninger, de træffer. Den bedste måde at gøre det på er ved at stille gode spørgsmål og lytte nøje til alle de svar, der gives. Det er vigtigt, at de kan udpege andres fejl uden at blive opfattet som uhøflig eller nedladende.
-
De skal være detaljeorienterede og villige til at gøre en ekstra indsats i deres arbejde.
-
De skal heller aldrig tøve, hvad angår ting, der skal gøres, og når det skal gøres. Denne person vil være ansvarlig for oprettelse af processer, der letter kommunikationen i dit team, og skal kunne tyde den nødvendige information og den information, der godt kan vente til en anden dag.
-
Problemløsning er et andet vigtigt aspekt af jobbet. Hvis der opstår et problem i it-infrastrukturen, vil det højst sandsynligt påvirke hele organisationen. DevOps-ingeniøren finder i bund og grund måder, hvorpå de kan forhindre, at disse problemer opstår fremover.
-
En behagelig, respektfuld holdning over for andre kommer man langt med ved at sikre, at foretagender kører problemfrit, og at de respektive teams fungerer godt sammen.
Nødvendige tekniske færdigheder
For at kunne fungere godt i DevOps-miljøet adskiller de nødvendige færdigheder til denne rolle sig fra rollerne hos en traditionel it-medarbejder. DevOps-teams består ofte af personer med en række forskellige baggrunde og færdigheder, så det er vigtigt, at teammedlemmerne er i stand til at arbejde tæt sammen og har de forskellige færdigheder, der er angivet nedenfor:
-
Erfaring med flere operativsystemer – Linux-viden er især nyttigt
-
Scripting-sprog som f.eks. bash, PERL, Python og Ruby (ved brug af "gem" og andre pakkestyringer)
-
Erfaring med programmeringssprog som f.eks. Ruby, Python eller Java
-
Kendskab til versionskontrolsystemer som Git
-
Det at have en forståelse for Linux-systemadministration er vigtigt for at kunne implementere nye programmer korrekt
-
Moderne webappstrukturer og designmønstre
-
Grundlæggende netværksviden
Anmol angiver følgende som vigtige tekniske færdigheder inden for DevOps:
“Cloud (det kan være Azure/AWS/GCP). Det er bedre at have viden om flere end blot én, men hvis de ved virkelig meget om én, kan det accepteres.”
Anmol Nagpal
-
IAC (Terraform/Cloudformation/Pulumi/CDK)
-
Docker
-
Kubernetes
-
CI/CD (Jenkins/GitHub Actions/GitLab/Azure DevOps)
-
Sikkerhedsafdelingen skal vide, at uanset hvad de udvikler, så er det sikret
Samtalespørgsmål + forventede svar
En liste over samtalespørgsmål og de foreslåede svar for at hjælpe en CTO med, hvad man kan forvente under en samtale, men det er også noget, som DevOps-ingeniører kan læse som en hjælp til deres samtale.
For begyndere:
- Hvad er forskellen mellem DevOps og Agile?
Forventet svar: De vigtigste forskelle omfatter:
- DevOps skaber et bånd mellem alle de teams, der er involveret i softwareudvikling og -vedligeholdelse. Hvorimod Agile typisk isolerer specifikke opgaver til forskellige teams
- DevOps har stor fokus på konsistens, stabilitet og automatisering. Med Agile er der i stedet mere vægt på tilpasningsevne og iterativ udvikling.
- I DevOps bliver hele softwarearbejdsgangen betragtet ud fra dannelse af forestillinger til levering af outputtet og vedligeholdelse. Men med Agile slutter det som regel, når koden er færdiggjort.
- Hvad er rollen i forbindelse med kontinuerlig test?
Forventet svar: Kontinuerlig test er, når software bliver testet regelmæssigt for fejl i hver eneste fase af dens udviklingslivscyklus. I løbet af denne proces er der en kontinuerlig feedback mellem interessenter, og udviklere er i stand til at evaluere softwarekvaliteten igennem hele processen.
- Hvad er rollen i forbindelse med automatiseringstest?
Forventet svar: Automatiseringstest er, når scripts automatisk bliver gennemgået og valideret for at sikre, at det program, der bruges, bliver bekræftet. Der er ingen grund til menneskelig indgriben, hvilket gør automatiseringstest tidsfølsom.
- Hvad betyder forgrening?
Forventet svar: Forgrening er en teknik, som udviklere bruger i versionskontrolsystemer, hvor kildekode kopieres for at oprette to versioner, der udvikles separat. Disse forgreninger kan derefter udvikles uafhængigt uden at påvirke kodebasen, hvilket opfordrer til samarbejde.
- Hvad kender du til Jenkins?
Forventet svar: Jenkins er det mest populære værktøj til kontinuerlig integration og kontinuerlig levering (CI/CD), som i øjeblikket findes på markedet. Mange DevOps-teams (hvis ikke alle) anvender Jenkins til at automatisere dele af softwareudvikling relateret til build, test og implementering af programmer.
- Hvad er fordelene ved versionskontrol?
Forventet svar: Versionskontrolsystemer forbedrer effektiviteten ved kodning. Dette opnås via
- Sporbarhed: Der registreres ændringer til kode fra alle udviklere, hvilket resulterer i en tydelig historik, der hjælper med at forbedre softwarens funktionalitet
- Forgrening: Udviklere får mulighed for at arbejde på kode uafhængigt uden indflydelse fra andre samarbejdspartnere
- Fejlreduktion: Årsagen til softwarefejl registreres, og evt. dubletter findes
På mellemniveau og ekspert
- Hvilke udfordringer er der ved oprettelse af DevOps-pipelines?
Forventet svar:
Funktionsflag er en almindelig måde at håndtere produktreleases på i CI-miljøer.
Hvis en databaseoverførsel ikke lykkedes, men blev kørt som et planlagt job, kan systemet nu være i en ubrugelig tilstand.
- Hvordan kommunikerer objektbeholdere i Kubernetes?
Forventet svar: En Pod er en tilknytning mellem objektbeholdere i Kubernetes og kan typisk indeholde flere objektbeholdere. Pods har et fladt netværkshierarki inde i et overlejret netværk og kommunikerer til hinanden på en flad måde, hvilket betyder, at i teorien kan en hvilken som helst pod i det pågældende overlejrede netværk tale til en anden pod.
- Hvordan begrænser du kommunikationen mellem Kubernetes-pods?
Forventet svar: Afhængigt af den CNI-netværksplugin, du bruger, hvis den understøtter API’en til Kubernetes-netværkspolitik, giver Kubernetes dig mulighed for at angive netværkspolitikker, der begrænser netværksadgang.
Politikker kan begrænse på baggrund af IP-adresser, porte og/eller selektorer.
- Hvad er de to overordende typer af forgreningsstrategier?
Forventet svar:
Forgrening baseret på release, som opretter en forgrening til en potentiel ny release.
Forgrening baseret på funktion, som opretter en forgrening til specifikke funktioner eller opgaver.
- Hvordan bygger du en hybridsky?
Anmols svar:
Når man bygger en hybridsky, skal man først sikre sig, hvilken slags data vi kører i Datacenter, og hvor vigtige de er. Lad os antage, at vi vil forbinde dem til AWS. Vi har to muligheder: Som det første kan vi gå med site2site VPN, hvilket vil være knap så dyrt, og det er nemt at konfigurere. Som det andet kan vi lave en direkte forbindelse, hvilket er mere stabilt, men dyrere og tidskrævende.
Anmol Nagpal
- Hvad er de vigtige forskelle mellem aktivstyring og konfigurationsstyring?
Forventet svar: Konfigurationsstyring henviser til håndtering af aktiver som enheder i softwareudviklingens pipeline. Dette involverer gennemgang af nøjagtigheden og pålideligheden af forskellige konfigurationselementer samt de relationer, de har med hinanden.
For at sikre at alle ansøgere er kvalificeret, kan du stille spørgsmål om, hvordan de ville håndtere situationer, hvor de skal kommunikere med personer fra forskellige afdelinger. Du kan også spørge dem, hvad de har foretrukket at arbejde med som DevOps-ingeniør indtil videre, eller hvilke udfordringer de ofte står over for i deres nuværende rolle. Spørgsmål som dette giver indsigt i, hvordan ansøgerne arbejder i et teammiljø, hvilket er en vigtig færdighed for alle DevOps-ingeniører.
Ifølge Anmol er der, bortset fra at tjekke for tekniske og bløde færdigheder, et par spørgsmål, han ville stille andre udviklere, som han sandsynligvis vil ansætte i sit team.
“Jeg ville spørge dem, hvad der er det bedste eller værste ved at være DevOps. Om de kan lide at arbejde til sent om aftenen og skulle være til rådighed i weekenden. Jeg ville også gerne vide, hvad de laver i deres fritid. Om de læser tech-blogs eller laver nogle POC'er i deres fritid."
Anmol Nagpal
Andre spørgsmål, han foreslår, du kan stille:
-
Hvad er din bedste bedrift i dit seneste foretagende?
-
Hvad var den største fejltagelse i din karriere som DevOps?
-
Hvor ivrig er du efter at lære nye værktøjer og teknologier?
Mulige udfordringer ved at ansætte en DevOps-ingeniør
Ansættelse af en DevOps-ingeniør, der skal være en del af din organisation, er en stor beslutning. På den ene side kan du ikke ignorere styrken ved DevOps-processen: Det er bevist at være en god måde at administrere softwareudvikling og -implementering på. Men på den anden side vil nogle udfordringer gøre denne form for ansættelse mere kompleks end at ansætte en softwareudvikler eller en systemadministrator.
Hvordan ved du, om dit team er klar til denne stilling? Hvad kan du gøre for at hjælpe med at sikre, at du finder den rette person til jobbet? Her er nogle ting, du skal overveje, når du ansætter en DevOps-ingeniør, med tips til at sikre, at dit team er forberedt og klar til at arbejde med dem.
-
Den første udfordring er den mængde af tid, det tager at finde og evaluere kandidater. Det at finde en person, der har de rette færdigheder, den rette erfaring og personlighed, du leder efter, kan tage flere uger, hvis ikke måneder, med andre kanaler.
-
En anden udfordring er at håndtere forventninger fra både din virksomhed og kandidaten. Du vil gerne sikre dig, at din virksomheds behov bliver opfyldt, men du vil også gerne sikre dig, at du ikke spilder værdifuld tid på kandidater, der ikke vil fungere i dit team.
-
Du skal finde den rette person. Mange virksomheder har ikke de nødvendige ressourcer til at udføre omfattende søgninger eller tilbyde en attraktiv løn til DevOps-ingeniører (især hvis de er unge). Det betyder, at det kan tage længere tid end forventet at finde den rette person til jobbet – eller endnu værre, du ender med at skulle nøjes med en, der ikke opfylder dine behov overhovedet.
-
Du skal også sikre dig, at du ansætter en person, der kan trives med dem, der allerede arbejder i teamet. En nyansat skal kunne integreres i teamet uden problemer, og det skal ikke være en, der skaber problemer for andre eller skaber drama på kontoret.
-
Det kan være svært at beslutte sig for løn. Hvis du anvender rekrutteringsfirmaer eller headhuntere, har de ofte deres egne ideer om, hvad en DevOps-ingeniør skal koste, og de vil evt. prøve at overbevise dig om, at de er meget mere værd, end de egentlig er.
-
Hvis du ansætter en DevOps-ingeniør fra en anden virksomhed, er det vigtigt at sikre sig, at den pågældende persons færdigheder svarer til det, du har brug for. Nogle virksomheder kan have udviklet deres egne værktøjer, som de bruger til en række forskellige formål.
-
Den endelige udfordring kommer, når du har ansat en og fået vedkommende i gang: bibeholdelse af deres motivation og produktivitet i hele deres ansættelsestid i din virksomhed. Dette kan være svært, fordi det involverer administration af flere afdelinger i en organisation samt at arbejde med flere personer fra forskellige baggrunde med mange forskellige niveauer af færdigheder.
Ansættelsesprocessen for en DevOps-ingeniør kan være kompliceret, men det er vigtigt at huske, at det også er nødvendigt, hvis du vil have en vellykket virksomhed i nutidens branche. Den rette person kan hjælpe din virksomhed med at skabe vækst og øge fortjenesten, samtidig med at der spares penge på lang sigt ved at sikre, at alt kører som det skal uden problemer.
Afsluttende bemærkninger
DevOps-ingeniører er fantastiske medarbejdere, der har kendskab til forskellige områder inden for programmering, udvikling og infrastruktur. Deres opgaver varierer, afhængigt af hvad deres team kræver, men ikke desto mindre har de styr på alt under DevOps-paraplyen. Det kan bevirke, at de er svære at finde og ansætte, men det er det hele værd – deres ekspertise lægger fundamentet for, at en ny teknologi, der udvikles af virksomheden, får succes.
Jobmarkedet for DevOps-ingeniører bliver utvivlsomt mere konkurrencedygtigt for hver dag. Med et teknologisk landskab, der konstant svinger, er det svært at forudsige, hvilke færdigheder der er brug for fremover. Hvis du gerne vil have et forspring i konkurrencen, er det bedst at starte tidligt og ansætte en til dit team.
Ansæt en DevOps-magiker i dag, og se dine foretagender forvandle sig fra gode til fantastiske.