Er is veel vraag naar DevOps-specialisten en daar zijn goede redenen voor. Ze zijn verantwoordelijk voor de continue integratie en het leveren van code, maar ook voor het monitoren en beheren van servers, netwerken en andere infrastructuur op het bedrijfsnetwerk.
Bij DevOps gaat het erom ervoor te zorgen dat de software van je bedrijf vlot en efficiënt werkt. Dit betekent dat als je van plan bent om een DevOps engineer aan te nemen, je op zoek moet naar iemand die ervoor kan zorgen dat je software vlot werkt, en die misschien zelfs de werking ervan kan verbeteren.
DevOps, wat staat voor Development Operations, is een functie die de laatste jaren een steeds grotere rol speelt. Het bestaat dan al wel sinds de jaren 70, toen computers werden geïntroduceerd bij grote bedrijven, maar als functieomschrijving wordt het eigenlijk pas gebruikt sinds de start van het nieuwe millennium. Bedrijven recruiten DevOps-specialisten om hun processen in verband met de ontwikkeling en uitrol van software te beheren.
Gezien de grote aandacht die er de afgelopen jaren ontstond voor DevOps is het niet verwonderlijk dat iedereen nu op zoek is naar specialisten in dit domein. In een wereld waarin software een kritieke rol speelt, beseffen bedrijven dat ze een sterke DevOps-cultuur nodig hebben om succesvol te zijn. De combinatie van technologische kennis en zakelijk bewustzijn, iets waar een DevOps engineer binnen je team voor kan zorgen, maakt je bedrijf flexibeler dan de concurrentie. Een DevOps engineer inhuren zou eigenlijk je eerste prioriteit moeten zijn als je in het huidige bedrijfsklimaat competitief wilt blijven.
Een belangrijke reden waarom DevOps zo populair is geworden, is omdat het zo'n belangrijke rol speelt in het concurrentievermogen van bedrijven. Stel dat een bedrijf sneller specifieke applicaties wil implementeren vanwege de hoge vraag. In dat geval lopen ze het risico om klanten te verliezen, of in elk geval achterstand op te lopen tegenover de concurrenten die de zaken wel sneller kunnen gedaan krijgen. Een DevOps engineer helpt je om dit soort uitdagingen te overwinnen, door ervoor te zorgen dat er op de behoeften van de klanten wordt ingespeeld en software snel bij te werken.
Nu er steeds meer applicaties en systemen worden ontwikkeld, proberen bedrijven DevOps-technieken toe te passen om deze snelle wijzigingen te kunnen bijhouden. Maar wat betekent het om een DevOps engineer te zijn? Is de vraag naar DevOps engineers echt zo sterk gestegen? Of is het meer een hype? Aan welke kwaliteiten moet een DevOps-specialist voldoen? Over welke skills moeten ze beschikken? In dit artikel gaan we dieper in op deze en andere vragen.
We zullen je ook uitleggen hoe je een goed sollicitatieproces kunt doorlopen om de best mogelijke kandidaat voor je team aan te nemen. Maar voordat we daar verder op ingaan, moeten we iets meer vertellen over wat deze rol juist inhoudt.
Wat is DevOps eigenlijk?
De term 'DevOps' wordt al jarenlang gebruikt, maar toch vinden velen het nog steeds een verwarrend begrip. Veel mensen denken bij DevOps aan een bepaalde functie, zoals een DevOps engineer. In feite is DevOps een benadering op het gebied van IT-management, waarbij het gaat om de samenwerking tussen het bedrijf en de IT-professionals die de technologie helpen beheren waarop het bedrijf is gebouwd.
We zien steeds meer vacatures verschijnen voor DevOps engineers. Maar wat houdt die functie juist in? Een DevOps engineer, of een developer die engineer is geworden, is iemand die zowel inzicht heeft in softwareontwikkeling als in de IT-processen. Met andere woorden, het is iemand die niet alleen code kan schrijven en implementeren, maar ook unit tests schrijven en productiesystemen onderhouden. Figuurlijk kun je zeggen dat het iemand is die zowel met vuur kan spelen als brandjes kan blussen.
Heb je een ontwikkelaar nodig of een DevOps engineer? Wat is het verschil?
Eigenlijk heb je ze waarschijnlijk allebei nodig.
Softwareontwikkelaars bouwen applicaties die op servers draaien, terwijl de DevOps engineers die servers beheren. Dat zijn twee rollen die van elkaar afhankelijk zijn, maar tegelijk ook erg verschillend. De ontwikkelaar werkt met code en creëert software, de DevOps engineer werkt met servers, configuratietools en andere infrastructuur.
Voor je recruitmentproces is het belangrijk om precies te begrijpen wat je van een DevOps engineer mag verwachten, hoe die verschilt van een klassieke ontwikkelaar, en waarom het zo belangrijk is om een DevOps-specialist aan te nemen.
Zoals we hieronder uitleggen, bestaan er verschillende functies op het gebied van DevOps. Als je de verschillen tussen deze rollen begrijpt, krijg je een beter inzicht in het type kandidaat waar je bedrijf naar op zoek moet.
De arbeidsmarkt voor DevOps engineers
Er is veel vraag naar DevOps engineers omdat hun expertise bedrijven kan helpen om zich te transformeren. De rol van de DevOps engineer is cruciaal geworden in de IT-sector, en het belang ervan blijft toenemen. Volgens gminsights was de markt voor DevOps meer dan 7 miljard dollar waard in 2021, en dit zou nog met meer dan 20% stijgen tegen 2028. Het aantal aan DevOps gerelateerde banen zou naar verwachting jaarlijks met 20% stijgen tussen 2020 en 2026.
Veel bedrijven beginnen snel te beseffen hoe groot de impact kan zijn van DevOps. Of ze nu met ontwikkelaars of operationele teams werken, bedrijven hebben iemand nodig die een brug kan slaan tussen twee werelden en die ervoor kan zorgen dat alles vlot draait.
De arbeidsmarkt voor DevOps is vandaag al competitief en dat zal in de toekomst alleen maar toenemen. De grootste investering voor je bedrijf is je team van medewerkers. Als je met een beperkt budget werkt, kan het verleidelijk zijn om een goedkopere DevOps engineer aan te nemen. Maar onder aan de streep zou het aannemen van de verkeerde persoon je bedrijf veel geld kunnen kosten. Nieuwe mensen opleiden kost tijd, en zelfs nog meer tijd als je een niet-technische medewerker probeert om te scholen tot DevOps engineer. Daarom is het belangrijk dat je van in het begin de juiste persoon aanneemt voor de functie.
Er zijn veel soorten bedrijven die DevOps engineers recruiten, waaronder
- Softwarebedrijven
- SaaS-providers
- Consultancybedrijven
- Aanbieders van cloudopslag
Bedrijven die gebruikmaken van DevOps
Veel bedrijven in de techsector maken tegenwoordig gebruik van DevOps. Dit zijn een aantal voorbeelden:
- Amazon
- HP
- Netflix
- Walmart
- Etsy
- Target
- Meta
- Adobe
- Sony Pictures Entertainment
Het antwoord is simpel: omdat die de zaken vereenvoudigen.
Gewoonlijk zorgen DevOps ervoor dat processen die momenteel handmatig worden uitgevoerd, kunnen worden geautomatiseerd. Ze bedenken manieren om repetitieve taken te automatiseren en af te werken in de backend, zodat werknemers er niet langer tijd in moeten steken. Hierdoor krijgen ontwikkelaars meer tijd om op hun primaire taak te focussen – nieuwe functies ontwerpen en bestaande functies verbeteren – in plaats van tijd te verspillen aan repetitieve taken zoals het configureren van servers en het controleren van backups.
Credit: OnGraph.com: Waarom investeren in DevOps loont
Als je een DevOps engineer wilt inhuren, dan heeft je bedrijf waarschijnlijk al een actieve webservice of webapplicatie. Je wilt sneller nieuwe functies uitrollen en er tegelijk voor zorgen dat dit geen bijkomende downtime veroorzaakt. Je wilt dat ontwikkelaars gemakkelijker code kunnen implementeren en dat systeembeheerders snel een rollback kunnen uitvoeren als er iets misloopt met een update. Daarvoor heb je DevOps engineers nodig: zij zorgen voor de communicatie tussen de afdelingen en voor een cultuur van vertrouwen tussen teamleden. Ze coördineren de inspanningen zodat er geen tijd en geld wordt verspild. Eventuele problemen worden op voorhand ingecalculeerd en moeten niet achteraf worden verholpen.
We vroegen Anmol Nagpal, een expert op het gebied van DevOps, waarom het zo belangrijk is om DevOps engineers aan te nemen in je bedrijf.
"DevOps spelen een belangrijke rol. Ze nemen de cloud en infrastructuur voor hun rekening. Geen enkel bedrijf kan groeien zonder stabiele en schaalbare infrastructuur, anders zouden applicaties niet stabiel kunnen draaien. Zelfs al heb je de beste code, architectuur alleen is niet voldoende. Een onstabiele applicatie leidt tot uitval en tot verlies van geld en klanten."
Anmol Nagpal
Je kunt verschillende kandidaten hebben die over kennis van DevOps beschikken, maar als personeelsmanager moet je het onderscheid kunnen maken tussen een goede en een geweldige kandidaat. Volgens Anmol moet een geschikte kandidaat over een bepaald profiel beschikken. De kandidaat moet:
-
Over een hands-on mentaliteit beschikken en een perfectionist zijn
-
De recentste tools voor DevOps consistent bijwerken naar de nieuwste versie
-
De beste praktijken volgen inzake beveiliging bij alles wat ze bouwen of ontwerpen
-
Een teamspeler zijn. Ze werken op projectbasis samen met verschillende teamleden en moeten hen ondersteunen
-
Klaar zijn voor nieuwe uitdagingen
-
Zelfstandig kunnen werken zonder supervisie
Functies die vaak worden ingevuld door DevOps
Een typische rol op het gebied van DevOps is die van de systems engineer, die softwaresystemen moet ontwerpen en bouwen (databanken bijvoorbeeld). System engineers werken nauw samen met ontwikkelaars en andere technische medewerkers om ervoor te zorgen dat die over alles beschikken wat ze nodig hebben om hun projecten vlot en efficiënt te kunnen uitvoeren.
Een andere functie die vaak met DevOps wordt geassocieerd is die van infrastructure engineer. Deze professionals ontwerpen en beheren netwerken en opslagsystemen voor bedrijven, zodat ze grote hoeveelheden data tegelijk kunnen verwerken. Specifiek zorgen ze ervoor dat IT-infrastructuur wordt gebouwd, onderhouden en geïmplementeerd op basis van de nieuwste technologieën.
Andere typische functies in het domein van DevOps zijn:
- Site Reliability engineer (SRE)
Zij dragen de primaire verantwoordelijkheid voor de evaluatie van producten tijdens de productiefase. Er wordt van hen ook verwacht dat ze data analyseren en de risico's met betrekking tot de betrouwbaarheid van activa onder controle houden en beperken.
Configuratiemanagers zijn verantwoordelijk voor de coördinatie en aansturing rond de configuratie van allerlei producten. Meestal houden ze toezicht op de levenscyclus van de productie van software of hardware, zoals de ontwikkeling van een nieuwe applicatie of server.
Een DevOps engineer is iemand met een algemene kennis van IT en een uitgebreide kennis op het gebied van ontwikkeling en operationele activiteiten, zoals programmering, infrastructuurbeheer, systeembeheer en de toolchains voor DevOps.
- Cloud engineer (Azure/AWS/GCP)
Een cloud engineer is een IT-professional die cloudinfrastructuuur bouwt en onderhoudt. Vaak zijn ze verantwoordelijk voor alle technische taken met betrekking tot de cloud, zoals ontwerp, planning, beheer, onderhoud en ondersteuning.
Een oplossingsarchitect ontwerpt de overkoepelende technische visie van een specifieke oplossing voor een bedrijfsbehoefte. Het komt erop neer dat ze een brugfunctie vervullen tussen de bedrijfsbehoefte en de technologische oplossing, waarbij ze alle fases en vereisten uitstippelen om die oplossing te implementeren.
Een release engineer houdt zich bezig met het ontwikkelen en afhandelen van softwareproducten. Een release engineering-manager houdt toezicht op de softwarebuilds en -releases en is voornamelijk verantwoordelijk voor de planning van de softwareontwikkeling en het leveringsproces, evenals de controle daarop.
DevSecOps zorgt voor een naadloze integratie van applicatie- en infrastructuurbeveiliging met Agile- en DevOps-processen en -tools.
Wat is het takenpakket van een DevOps engineer?
Om het eenvoudig te houden, focussen we op één rol – die van de DevOps engineer.
DevOps engineers werken samen met andere IT-professionals zoals ontwikkelaars, testers en QA-engineers. Ze ondersteunen het team door functies te implementeren die het team nodig heeft, en dat doen ze met verschillende tools zoals Puppet, Chef of Ansible om taken te automatiseren die regelmatig moeten worden uitgevoerd.
Hun belangrijkste rollen en verantwoordelijkheden zijn:
-
Tools voor ontwikkeling, testen en automatisering implementeren, evenals IT-infrastructuur;
-
Nieuwe functies toevoegen aan applicaties;
-
De ontwikkelingsfase uitstippelen en de processen inzake DevOps testen, releasen, updaten en ondersteunen;
-
Bugs oplossen en herstellen;
-
De processen monitoren gedurende de volledige levenscyclus om naleving te verzekeren en nieuwe strategieën ontwikkelen of bestaande strategieën bijwerken met het oog op betere resultaten en minder verspilling;
-
Overal waar mogelijk geautomatiseerde processen ontwerpen
-
Cyberbeveiligingsmaatregelen identificeren en toepassen
-
Incidenten beheren en oorzakenanalyses uitvoeren
-
Regelmatig communiceren met teamleden en klanten
-
De gepaste CI/CD-tools selecteren en uitrollen
-
Het beheer van periodieke rapportages
Werving en selectie van de juiste DevOps-specialist
Veel bedrijven willen momenteel hun DevOps-teams versterken, dus het is belangrijk om te weten hoe je de juiste kandidaten vindt.
Eén belangrijk criterium is aantoonbare ervaring in het bouwen en leveren van producten van start tot finish, dus niet gewoon iemand die goed is in infrastructuurbeheer.
Iemand met de juiste ervaring en persoonlijkheid vinden voor je team is niet eenvoudig. Maar als je goed voorbereid aan je zoektocht begint, kun je jezelf onderscheiden van andere recruiters, de interesse winnen van kandidaten en je team uitbreiden met gedegen experts.
Let bij de werving op de volgende aspecten:
- Wat heeft je bedrijf nodig?
Is dat iemand voor het beheren van de servers of de softwareontwikkeling? Ben je op zoek naar specifieke vaardigheden?
- Over welke achtergrond moeten kandidaten beschikken?
Zoek je ervaren kandidaten? Welke opleiding moeten ze gevolgd hebben? Welke successen hebben ze al bereikt bij vorige werkgevers? Blijkt uit hun CV dat ze teamspelers zijn? Dit soort vragen kunnen je helpen beoordelen of iemand een goede aanwinst zou zijn voor je bedrijf.
- Hoe is iemand in de omgang met anderen?
Sommige mensen zijn van nature extravert en ze maken gemakkelijk vrienden, terwijl anderen eerder introvert zijn. Deze karaktereigenschap kan bepalen of iemand goed zal integreren in een team of niet.
- Ga niet alleen op het CV af.
Hebben kandidaten een goed inzicht in DevOps? Het is belangrijk dat ze begrijpen wat DevOps juist betekent en hoe het van toepassing is op jouw bedrijf. Kandidaten die de concepten niet goed begrijpen of die er geen ervaring mee hebben, zijn wellicht niet geschikt voor deze of andere functies in je bedrijf.
- Kunnen ze goed problemen oplossen?
Om problemen te kunnen oplossen moeten ze goed communiceren met anderen en de juiste vragen stellen over concepten, processen, tools enz. die ze mogelijk in hun werk zullen gebruiken.
- Kunnen ze goed communiceren?
Daarnaast moeten geschikte kandidaten ook zelf goed kunnen uitleggen waar ze aan werken, zodat anderen het kunnen begrijpen. Dat wil zeggen dat ze presentaties moeten kunnen geven of documentatie schrijven over wat ze hebben geleerd tijdens hun werk aan de verschillende projecten. Mogelijk moeten ze ook vragen van klanten kunnen beantwoorden die meer informatie willen over hoe iets werkt of waarom het niet werkt.
Over welke opleiding en ervaring moet een DevOps engineer beschikken?
DevOps engineers moeten een voortgezette studie hebben gevolgd in computerwetenschappen of een vergelijkbare richting, en ze moeten over praktijkervaring beschikken. Om in DevOps te werken moeten de kandidaten een bachelor computerwetenschappen of een vergelijkbaar diploma op zak hebben, met een specialisatie in softwareontwikkeling.
De beste DevOps engineers hebben ervaring met verschillende talen en frameworks. Een brede kennisbasis is essentieel. Maar ook iemand die bijzonder veel ervaring heeft met één specifieke programmeertaal kan nog altijd een goede aanwinst zijn voor je bedrijf, als het tenminste een echte expert is in die taal. De stijgende vraag naar DevOps (de combinatie van ontwikkeling en IT-operaties) heeft geleid tot vele nieuwe vacatures voor tal van functies, maar de precieze rol van de DevOps engineer zal grotendeels worden bepaald door wat je zelf wilt bereiken.
Het draait allemaal om de behoeften van jouw organisatie op dat moment. Als startend bedrijf moet je wellicht op zoek naar iemand die zowel codeer- als operationele ervaring heeft. Veel organisaties willen iemand aanwerven of inhuren die functionele taken kan uitvoeren, zoals de monitoring of automatisering van tools, voordat ze echt een voltijdse software engineer aannemen. Zo kun je je team uitbreiden zonder onmiddellijk kosten te maken voor het aannemen van ontwikkelaars.
Ervaring met talen en frameworks
Zoals je hierboven kon lezen zijn DevOps engineers een hybride type van software engineers, met zowel een grondige kennis van de principes van software engineering als van de operationele infrastructuur van webapplicaties. Daarom moeten over de volgende ervaring beschikken:
Een DevOps engineer moet aantoonbare ervaring hebben met Java en liefst ook met Apache Tomcat. De volgende belangrijke elementen zijn SQL en MySQL, maar ook kennis van DevOps-tools zoals Puppet, Chef en Ansible is belangrijk.
Anmol vermeldt enkele andere skills waar een DevOps-expert over moet beschikken om zijn of haar werk goed te kunnen doen:
- Kennis van debugging en analytics – dit zorgt voor een beter inzicht in problemen.
- Documentatie – Niet iedereen is hier goed in, maar het is wel bijzonder belangrijk om over de juiste documentatie te beschikken als je niet wilt dat kennis verloren gaat.
- Prioriteiten kunnen stellen – Als je in DevOps werkt, dan krijg je voortdurend nieuwe verzoeken van collega's en managers, dus het is belangrijk om zelf prioriteiten te kunnen stellen.
- Proactief werken – In DevOps is het essentieel om actief de infrastructuur en applicatie(s) te bewaken en beste praktijken na te leven. Als er een probleem wordt vastgesteld moet het een prioriteit toegekend krijgen.
- Het bedrijf/product begrijpen – Alleen zo kan de DevOps-specialist het juiste ontwerp en de passende infrastructuur voorstellen.
Nu er steeds meer belangstelling is voor DevOps, groeien ook de carrièremogelijkheden. Een goede DevOps engineer is van alle markten thuis en kan elk onderdeel van de softwareontwikkelingscyclus begeleiden. DevOps engineers moeten niet alleen snel problemen kunnen oplossen, ze moeten ook de oplossingen kunnen communiceren naar hun team en over een uitgebreide technische kennis kennis beschikken.
Efficiënte sollicitatiegesprekken met DevOps engineers
Of je nu iemand gaat aanwerven of inhuren, een sollicitatiegesprek of interview is een essentiële stap om een kandidaat te kunnen beoordelen. Maar het is niet eenvoudig om iemand die over heel diverse vaardigheden moet beschikken de juiste vragen te stellen. Om een goed sollicitatiegesprek te kunnen voeren, is het belangrijk om te weten over welke 'zachte vaardigheden' een goede DevOps engineer moet beschikken.
Vereiste zachte vaardigheden
Om een succesvolle DevOps engineer te worden zijn zachte vaardigheden net zo belangrijk als technische vaardigheden. Onder zachte vaardigheden verstaan we meestal communicatieve, probleemoplossende en relationele vaardigheden. Dit soort skills kunnen je team helpen om efficiënt te coördineren en samen te werken, een goede band op te bouwen met betrokken partijen en problemen effectief op te lossen. Hieronder zetten we op een rij over welke zachte vaardigheden DevOps engineers moeten beschikken:
-
Je hebt iemand nodig die goed communiceert. Om efficiënt te communiceren moet een DevOps engineer goed kunnen luisteren, iets op een heldere en beknopte manier kunnen uitleggen en duidelijke ideeën kunnen formuleren. DevOps engineers dragen vaak veel verantwoordelijkheden, dus ze moeten de redenen voor hun beslissingen op een heldere wijze kunnen uitleggen. Om te weten of iemand hier sterk in is, kun je hem of haar best gewoon vragen stellen en zorgvuldig luisteren naar de antwoorden. Een geschikte kandidaat zou ook anderen op fouten moeten kunnen wijzen zonder onbeleefd of neerbuigend over te komen.
-
DevOps engineers moeten veel aandacht voor detail hebben en aantonen dat ze in hun werk altijd een extra inspanning willen leveren.
-
De juiste kandidaat is ook iemand die alert is en nooit uit het oog verliest wat er allemaal moet gebeuren en wanneer. Omdat een DevOps-expert de processen zal creëren die de communicatie tussen je teams vergemakkelijken, moet hij of zij ook het onderscheid kunnen maken tussen noodzakelijke informatie en zaken die tot morgen kunnen wachten.
-
Probleemoplossing is een belangrijk aspect van de functie. Als er een probleem is met de IT-infrastructuur dan kan dit gevolgen hebben voor de hele organisatie. DevOps engineers zijn voortdurend op zoek naar manieren om eventuele toekomstige problemen te voorkomen.
-
Een vriendelijke, respectvolle houding tegenover anderen draagt ertoe bij dat projecten vlot verlopen en dat teams goed kunnen samenwerken.
Vereiste technische vaardigdheden
Om goed te functioneren in een DevOps-omgeving moet je over andere skills beschikken dan klassieke IT-medewerkers. DevOps-teams bestaan vaak uit mensen met verschillende achtergronden en vaardigheden, dus het is belangrijk dat de teamleden goed kunnen samenwerken en over diverse van de hieronder genoemde vaardigden beschikken:
-
Ervaring met verschillende besturingssystemen, waarbij vooral kennis van Linux erg nuttig is.
-
Scripttalen zoals bash, PERL, Python, en Ruby (gebruik van 'gem' en andere package managers)
-
Ervaring met programmeertalen zoals Ruby, Python of Java
-
Kennis van controlesystemen zoals Git
-
Een goed inzicht in systeembeheer onder Linux is essentieel om nieuwe applicaties correct te kunnen uitrollen
-
Moderne frameworks voor webapplicaties en ontwerppatronen
-
Basiskennis van netwerken
Volgens Anmol zijn de volgende technische vaardigheden onmisbaar in DevOps:
“Cloud, of het nu Azure, AWS of GCP is, het is beter om over kennis van meer dan één cloudaanbieder te beschikken maar een grondige kennis van één systeem volstaat ook."
Anmol Nagpal
-
IAC (Terraform/Cloudformation/Pulumi/CDK)
-
Docker
-
Kubernetes
-
CI/CD (Jenkins/GitHub Actions/GitLab/Azure DevOps)
-
Kennis over beveiliging is essentieel om veilige producten te kunnen ontwikkelen
Vragen en verwachte antwoorden voor interviews met kandidaten
Hieronder vind je een lijst met vragen en antwoordsuggesties die een CTO kan gebruiken om een interview af te nemen met een DevOps engineer, of waarmee een DevOps engineer zich op een interview kan voorbereiden.
Voor beginners:
- Wat zijn de verschillen tussen DevOps en Agile?
Verwacht antwoord: De belangrijkste verschillen zijn:
- DevOps vormt de brug tussen alle teams die betrokken zijn bij de ontwikkeling en het onderhoud van software. Agile focust in principe op de specifieke taken van verschillende teams.
- Bij DevOps is consistentie, stabiliteit en automatisering erg belangrijk. Bij Agile ligt de nadruk meer op aanpassingsvermogen en iteratieve ontwikkeling.
- DevOps kijkt naar de volledige workflow van software, vanaf het concept tot de output en het onderhoud. Bij Agile is het voltooien van de code meestal het eindpunt.
- Waarvoor wordt continu testen gebruikt?
Verwacht antwoord: Continu testen wilt zeggen dat software vaak op bugs wordt getest in alle stadia van de ontwikkelingscyclus. Tijdens dit proces is er voortdurend feedback van betrokken partijen, en de ontwikkelaars kunnen de softwarekwaliteit evolueren gedurende het proces.
- Waarvoor dienen automatiseringstesten?
Verwacht antwoord: Automatiseringstesten zijn automatische beoordelingen en validaties van scripts om de verificatie van het gebruikte programma te verzekeren. Doordat er geen menselijke tussenkomst nodig is, levert automatiseringstesten een aanzienlijke tijdsbesparing op.
- Wat wordt er bedoeld met branching?
Verwacht antwoord: Branching is een techniek die ontwikkelaars gebruiken bij systemen voor versiemanagement, waarbij een kopie van de broncode wordt gemaakt om twee aparte versies te ontwikkelen. Deze branches kunnen vervolgens afzonderlijk worden ontwikkeld zonder gevolgen voor de codebase, iets wat samenwerking bevordert.
- Wat weet je over Jenkins?
Verwacht antwoord: Jenkins is momenteel de populairste tool op de markt voor continue integratie en levering (CI/CD). Veel of misschien wel alle DevOps-teams maken gebruik van Jenkins om onderdelen van de softwareontwikkeling in verband met het bouwen, testen en uitrollen van applicaties te automatiseren.
- Wat zijn de voordelen van versiemanagement?
Verwacht antwoord: Versiemanagement zorgt voor meer efficiëntie bij het coderen. Dit wordt bereikt door:
- Traceerbaarheid: Wijzigingen in de code door alle ontwikkelaars worden bijgehouden, zodat er een duidelijke geschiedenis ontstaat en de functionaliteit van de software verbetert.
- Branching: Ontwikkelaars kunnen onafhankelijk aan code werken zonder dat dit gevolgen heeft voor de bijdragen van andere teamleden.
- Foutreductie: Het kan helpen om de hoofdoorzaken van softwarebugs en duplicaties te detecteren.
Experts
- Welke uitdagingen komen er kijken bij het creëren van DevOps pipelines?
Verwacht antwoord:
Functievlaggen zijn een veelvoorkomende manier om met productreleases om te gaan in CI-omgevingen.
Als een databasemigratie is mislukt maar werd uitgevoerd als een geplande taak, dan kan het systeem onstabiel worden.
- Hoe communiceren containers in Kubernetes?
Verwacht antwoord: Een Pod is een mapping tussen containers in Kubernetes en kan meestal verschillende containers bevatten. Pods hebben een vlakke netwerkhiërarchie binnen een overlay-netwerk en communiceren met elkaar op vlakke wijze, wat betekent dat in theorie elke Pod binnen het overlay-netwerk met elke andere Pod kan spreken.
- Hoe beperk je de communicatie tussen Kubernetes Pods?
Verwacht antwoord: Dat is afhankelijk van de CNI-netwerkplugin die je gebruikt, als deze de netwerkbeleid-API van Kubernetes ondersteunt, is het met Kubernetes mogelijk om een netwerkbeleid te specificeren dat de toegang tot het netwerk beperkt.
Het beleid kan de IP-adressen, poorten en/of selectoren beperken.
- Wat zijn de twee belangrijkste types van branching-strategieën?
Verwacht antwoord:
Release branching, waarbij een branch wordt gemaakt voor een mogelijke nieuwe release.
Functiebranching, waarbij een branch wordt gemaakt voor specifieke functies of taken.
- Hoe bouw je een hybride cloud?
Het antwoord van Anmol:
Bij het bouwen van een hybride cloud moeten we eerst verifiëren wat voor soort gegevens we bewaren in het datacenter en hoe kritiek deze zijn. Laten we veronderstellen dat we dit willen verbinden met AWS. We hebben twee opties: ten eerste kunnen we kiezen voor een site2site VPN, die minder duur zal zijn en gemakkelijk kan worden opgezet. Ten tweede is er de directe verbinding: stabieler, maar duurder en tijdrovend.
Anmol Nagpal
- Wat zijn de cruciale verschillen tussen activabeheer en configuratiebeheer?
Verwacht antwoord: Configuratiebeheer verwijst naar het beheren van activa als entiteiten binnen de pipeline softwareontwikkeling. Dit houdt in dat de nauwkeurigheid en betrouwbaarheid van verschillende configuratie-items en de relaties die ze met elkaar hebben, moeten worden beoordeeld.
Om te controleren of kandidaten gekwalificeerd zijn kun je ze vragen stellen over hoe ze omgaan met situaties waarin ze moeten communiceren met mensen in verschillende afdelingen. Je kunt ze ook vragen wat hun favoriete aspect is van het werken als DevOps engineer, of welke uitdagingen ze regelmatig tegenkomen in hun huidige functie. Vragen als deze geven je inzicht in hoe de kandidaat werkt in een team, wat een essentiële vaardigheid is voor elke DevOps engineer.
Volgens Anmol zijn er, naast de vragen met betrekking tot technische en zachte vaardigheden, een aantal andere vragen die hij aan kandidaat-ontwikkelaars zou stellen.
"Ik zou ze vragen waar ze het meeste en het minste van houden in DevOps. Of ze het leuk vinden om 's avonds laat te werken en in het weekend beschikbaar te zijn. Ik zou ook graag willen weten wat ze in hun vrije tijd doen. Of ze nu techblogs lezen of in hun vrije tijd POC's doen."
Anmol Nagpal
Andere mogelijke vragen zijn volgens hem:
-
Wat is je beste prestatie in je meest recente project?
-
Welke grote fout heb je al gemaakt in je carrière als DevOps?
-
Hoe enthousiast ben je om nieuwe tools en technologieën te leren?
Mogelijke uitdagingen bij het aannemen van een DevOps engineer
Een DevOps engineer aannemen of inhuren is een grote stap voor je bedrijf. Aan de ene kant kun je het belang van DevOps niet onderschatten: het is een bewezen manier om de ontwikkeling en uitrol van software te beheren. Maar aan de andere kant zijn er veel uitdagingen die de recruitment van een DevOps engineer complexer maken dan deze van een softwareontwikkelaar of een systeembeheerder.
Hoe weet je of een DevOps-expert een goede aanvulling is voor je team? Wat kun je doen om ervoor te zorgen dat je de juiste persoon voor de baan vindt? Dit zijn een aantal dingen waar je rekening mee moet houden als je een DevOps engineer aanneemt, evenals tips om je team voor te bereiden op een goede samenwerking.
-
De eerste uitdaging is de hoeveelheid tijd die het kost om kandidaten te vinden en te evalueren. Iemand vinden die de vaardigheden, ervaring en persoonlijkheid heeft die je zoekt kan weken, zo niet maanden, duren, afhankelijk van de recruitmentstrategie die je gebruikt.
-
Een andere uitdaging is het managen van de verwachtingen, zowel van je bedrijf als van de kandidaat. Je moet ervoor zorgen dat je iemand vindt die een antwoord biedt op de behoeften van je bedrijf, zonder veel tijd te verspillen aan kandidaten die niets opleveren.
-
Je moet de juiste persoon vinden. Veel bedrijven hebben niet de nodige middelen voor een uitgebreide recruitmentprocedure of om de salarissen te kunnen bieden die aantrekkelijk zijn voor DevOps engineers. Dit betekent dat het langer kan duren dan verwacht om de juiste persoon voor de baan te vinden – of erger nog, dat je uiteindelijk genoegen moet nemen met iemand die niet helemaal aan je wensen voldoet.
-
Je moet er ook voor zorgen dat je iemand aanneemt die goed kan samenwerken met het bestaande team. Een nieuwe medewerker moet naadloos in het team kunnen integreren, en niet iemand zijn die problemen creëert voor anderen of die de sfeer verpest op kantoor.
-
Het is niet eenvoudig om het juiste salaris te bepalen. Als je recruiters of headhunters inzet, hebben die vaak hun eigen idee over wat een DevOps engineer mag kosten, en ze kunnen proberen je ervan te overtuigen dat ze veel meer waard zijn dan ze in werkelijkheid zijn.
-
Als je een DevOps engineer van een ander bedrijf inhuurt, is het belangrijk om zeker te weten dat die persoon over de vaardigheden beschikt die jouw bedrijf nodig heeft. Sommige bedrijven hebben hun eigen tools ontwikkeld die ze voor verschillende doeleinden gebruiken.
-
De laatste uitdaging komt na de recruitment en onboarding: hoe zorg je ervoor dat je nieuwe medewerker gemotiveerd en productief blijft? Dit kan een uitdaging zijn omdat je in DevOps meerdere afdelingen binnen een organisatie moet managen en moet samenwerken met mensen met verschillende achtergronden en vaardigheden.
De recruitment van een DevOps engineer is een pad vol hindernissen, maar het is een belangrijk en noodzakelijk proces als je een succesvol bedrijf wilt zijn op de huidige markt. De juiste persoon kan je bedrijf helpen groeien en de winst verhogen, terwijl je op de lange termijn geld bespaart doordat problemen worden voorkomen.
Conclusie
DevOps engineers zijn echte multi-talenten met kennis in verschillende domeinen op het gebied van programmering, ontwikkeling en infrastructuur. Hun taken variëren afhankelijk van wat hun team nodig heeft, maar onder de paraplu van DevOps houden ze een overzicht op het geheel. Hierdoor kan het moeilijk zijn om de juiste kandidaten te vinden en aan te nemen, maar het is de moeite waard – hun expertise legt de basis voor nieuwe technologie en zakelijke successen.
Het lijdt geen twijfel dat de arbeidsmarkt voor DevOps engineers bijzonder competitief is en dat dit alleen maar zal toenemen. Bovendien verandert het technologielandschap voortdurend, waardoor het moeilijk is om te voorspellen welke vaardigheden morgen het meest gevraagd zullen zijn. Als je de concurrentie een stap voor wilt zijn, dan kun je maar beter snel in actie komen en je team versterken met DevOps.
Huur vandaag nog een DevOps-magiër in om je projecten van goed naar geweldig te tranformeren!