Hoe screen je de belangrijkste DevOps-vaardigheden

Gepubliceerd: Laatst bijgewerkt:
DevOps vaardigheden screening

Er zijn weinig dingen in programmeren zo onnauwkeurig als DevOps. De naam zelf is zelfs in geschil met SysOps en SRE- ook populaire manieren om het veld te beschrijven. Niet alleen dat, er is geen standaard pakket van DevOps vaardigheden.

De rol ligt ergens tussen die van een softwareontwikkelaar en een operations engineer, dus de screening is zeer specifiek voor de exacte vaardigheden die de werkgever zoekt. Dus hoe screen je DevOps vaardigheden? Om een beter idee te krijgen, is het belangrijk om bij het begin te beginnen.

Wat is DevOps?

De cyclus van DevOps Vaardigheden

Bron: Irma Kornilova

Gemaakt om agile software ontwikkeling te ondersteunen, zit een DevOps ingenieur ergens tussen een traditionele software ontwikkelaar en een operations ingenieur in. Als Ernest Mueller definieert het,


Ernset Mueller praat over DevOps vaardigheden

DevOps is de praktijk waarbij operationele en ontwikkelingsingenieurs samen deelnemen aan de volledige levenscyclus van de dienst, van ontwerp via het ontwikkelingsproces tot productieondersteuning.

Bron: de agile admin

Beeldbron: de agile admin


Vroeger bouwden ontwikkelaars een product en gaven het aan operations om het uit te rollen. Als er iets mis ging, maakte operations een support ticket aan en stuurde het terug naar de ontwikkelaars die een fix maakten en het vervolgens terugstuurden naar operations. Dit was een zeer silo-aanpak die even traag als rigide was.

DevOps daagt deze aanpak uit door het dev team en operations team samen te brengen om continu applicaties te creëren, implementeren, onderhouden en verbeteren. En het levert grote beloningen op. De 2019 rapport over de staat van DevOps gepubliceerd door DevOps Research and Assessment bleek dat de hoog presterende (die DevOps hebben ingesteld)

  • 208 veel vaker code implementaties
  • 106 keer snellere doorlooptijd van commit tot deploy
  • 2604 keer snellere gemiddelde tijd om te herstellen van downtime
  • 7 keer lager percentage mislukte veranderingen (veranderingen hebben 1/7 keer minder kans om te mislukken)

Dit is allemaal vergeleken met organisaties die geen DevOps gebruiken.

Op welke DevOps-vaardigheden moet een recruiter screenen?

In tegenstelling tot andere software engineering posities die een gedefinieerde vaardigheden set en focus hebben, is DevOps een beetje moeilijker vast te pinnen. Zoals Mike Dilworth opmerkt:


Mike Dilworth spreekt over DevOps Vaardigheden

DevOps is een cultuur, niet een rol! Het hele bedrijf moet DevOps doen om het te laten werken.

Bron: Irma Kornilova

Beeldbron: AngelList


Met andere woorden, u moet zowel domeinspecifieke technische expertise in dienst nemen als het vermogen om de agile cultuur waarin DevOps opereert te ondersteunen en er goed in te gedijen. Als gevolg hiervan moet een DevOps ingenieur een combinatie van deze vaardigheden hebben.

Samenwerking/soft skills

Een DevOps ingenieur is eerst en vooral een lid van een team. Het is geen rol die aanmoedigt om zich als een individu te onderscheiden. Het ondersteunt juist het samenwerken om een product te blijven herhalen en verbeteren. Zoals Alan Zucker, directeur van Project Management Essentials het zegt,


Alan Zucker praat over DevOps vaardigheden

Goede DevOps ingenieurs beginnen met het begrijpen van de mensen, de cultuur, en hoe de organisatie draait (...) Zij bouwen dan een strategie die zich richt op het vereenvoudigen van de totale operationele omgeving om het doel van continue levering te bereiken.

Bron: TechRepublic

Beeldbron: LinkedIn


Kennis van instrumenten en technologieën

Er zijn heel wat tools en technologieën die door een DevOps ingenieur kunnen worden gebruikt. En ze zijn vaak essentieel voor het onderhouden van de kernconcepten van DevOps. Het is belangrijk om te zien of uw kandidaat de technologieën kent die u gebruikt en in staat is om nieuwe technologieën te leren als dat nodig is.

Configuratiebeheer

Dit betekent dat veel systemen met behulp van automatiseringstools moeten kunnen worden geconfigureerd.

Een DevOps ingenieur moet in staat zijn om tools en scripts te gebruiken om de app te kunnen implementeren en onderhouden terwijl ze eventuele problemen oplossen die onderweg opduiken. Afhankelijk van de specifieke kenmerken van de functie, kunnen vaardigheden in het testen van beveiligingsbeheer ook belangrijk zijn om naar te zoeken.

Hoewel configuratiemanagementtools slechts een deel zijn van de gereedschapskist waaruit een DevOps-ingenieur put, is dit een gebied dat gemakkelijk kan worden getest, waardoor gaandeweg veel over de kandidaat wordt onthuld.

DevOps-vaardigheden screeningmethoden

Omdat DevOps vaardigheden zo verschillen zal de combinatie van een paar verschillende screeningsmethoden u de beste resultaten opleveren.

Controleer de CV's van uw kandidaten op DevOps-vaardigheden

Een cv-onderzoek is waarschijnlijk het eerste wat de meeste recruiters zullen doen om het aantal kandidaten te beperken. Wij hebben een kleine woordenlijst opgesteld om recruiters te helpen begrijpen waarnaar zij op zoek zijn.

DevOps vaardigheden woordenlijst voor tech recruiters:

Methodologieën Agile, DevOps, Continue levering, Continue integratie, Microservices, Testgestuurde ontwikkeling (TDD), Infrastructuur als code
Scripting Talen Bash, Python, Ruby, Perl, PHP
Infrastructuur Automatisering Puppet, Chef, Ansible, Terraform
Beheer van broncode Git, Mercurial, Subversion
Clouddiensten AWS, Azure, Google Cloud, OpenStack
Orkestratie Kubernetes, Nomad
Containers Docker
Projectbeheer Jira, Trello, Asana
Continue integratie en continue levering Jenkins, Jenkins-X, Tekton, Travis CI, CircleCI, Azure, DevOps
Test TestComplete, TestingWhiz, Serverspec, Testinfra, InSpec, Consumer Driven Contracts
Toezicht Prometheus, Nagios, Icinga, Zabbix, Splunk, ELK Stack, CloudWatch, Open Telemetry

Zodra het CV-scherm is voltooid, zijn er twee hoofdvaardigheden die kunnen worden getest met behulp van een geautomatiseerd testplatform.

Of je nu een ingenieur bent die code implementeert of een operator die de server draaiende houdt, je server kunnen configureren is een essentiële vaardigheid. Maar deze vaardigheid kan worden opgesplitst in twee delen. Het eerste is configuratiebeheer, het tweede is de configuratie van een machine. En zoals je zult zien, vereisen deze beide vaardigheden verschillende gereedschappen om ze effectief te testen.

Configuratiebeheer DevOps-vaardigheden vereisen coderingstests

Een van de grootste pijnpunten van een DevOps ingenieur is het handmatig beheren van verschillende serverconfiguraties. Dit kan een grote pijn zijn, omdat het de ingenieur verandert in iets meer van een operatie brandweerman in plaats van iemand die applicaties bouwt en uitrolt. Daarom is een belangrijke vaardigheid van een goede DevOps ingenieur het vermogen om hun effectiviteit te vermenigvuldigen door configuratie management code te schrijven.

Op een andere manier verwoord door Adam Kadzban, hoofd DevOps ingenieur bij kCura,


Adam Kadzban praat over DevOps vaardigheden

De dagen van handmatig geconfigureerde infrastructuursystemen zijn voorbij (...) Infrastructuur moet worden geleverd en geconfigureerd met code, of je zult verzuipen in ondersteuning.

Bron: TechRepublic

Beeldbron: LinkedIn


De oorzaak van deze houding is het feit dat veel handmatige taken kunnen worden geautomatiseerd met speciale tools zoals Puppet en Chef of zelfs met scripttalen zoals Python, Ruby en Bash. De vraag wordt dus wat de beste manier is om deze vaardigheden te testen.

Een voorbeeldtest is de beste manier om scriptvaardigheden te controleren

Een Puppet code is niet zomaar een algoritme. In plaats daarvan is het een applicatie die het systeem regelt. Daarom is een werkvoorbeeldtest waarschijnlijk de beste manier om de juiste vaardigheden te testen. We hebben de doeltreffendheid onderzocht van werkproeven elders op deze blog en hoe ze te gebruiken voor gewone coderingsproblemen, maar hoe kunnen ze worden toegepast op het schrijven van Puppet-code voor configuratiebeheer?

Een goede plaats om te beginnen is door te kijken naar het proces dat je moet doorlopen om een automatiseringscode te schrijven. Het is eigenlijk vrij eenvoudig,

  1. Beschrijf de configuratie in code
  2. Voer er tests tegen uit

Het eerste wat je kandidaat moet doen is de configuratie in code beschrijven. Dus stel dat je wilt dat ze een Puppet module maken voor een bestandsserver. Dit is een vrij eenvoudige DevOps taak die vrij eenvoudig kan worden omgezet in een werkproef test, zoals in deze taak:

Puppet bestandsserver taak om DevOps vaardigheden te testenHet is OK om een voorgemaakt module skelet te hebben om je kandidaat in de juiste richting te wijzen en dan te definiëren hoe je wilt dat de bestandsserver geconfigureerd wordt. Wanneer dit gebeurt met een platform zoals DevSkiller, kunnen er unit tests tegen de geproduceerde automatiseringscode worden uitgevoerd, zodat u de robuustheid van de code kunt verifiëren en eventuele gebreken kunt opsporen.

En het is niet alleen Puppet dat op deze manier kan worden getest. Met DevSkiller's test builder, kan uw tech lead scripting taken bouwen in meerdere technologieën inclusief Chef, Bash, Python, Ruby, en Go. Deze test zal u een sterke indicatie geven hoe goed een DevOps Engineer zijn efficiëntie kan maximaliseren.

Als een DevOps ingenieur effectief taken kan automatiseren, dan zal hij in staat zijn om door te gaan naar taken van een hoger niveau, zoals het implementeren van nieuwe functies. Niet alleen dat, maar als je eenmaal begint met het testen van codeervaardigheden, kun je verder gaan met andere DevOps-functies, zoals het testen van git-besturingselementen en het schrijven van code als infrastructuur.

Maar het schrijven van automatiseringscode is slechts een deel van de puzzel. Vroeg of laat zal een DevOps ingenieur daadwerkelijk een machine moeten configureren. Dit is een probleem omdat de meeste bedrijven zich niet op hun gemak voelen als een kandidaat de controle krijgt over een van hun servers. Denk immers aan de ravage die ze kunnen aanrichten op je systeem. Maar wat nog erger zou zijn, is dat u iemand aanneemt zonder te weten of hij een server kan configureren zonder dat het ergste gebeurt.

DevOps-vaardigheden voor systeemconfiguratie testen met een virtuele machine

Een coderingsuitdaging kan testen hoe een script loopt, maar je hebt een echte machine nodig om te zien of een DevOps Engineer een systeem kan configureren. Dit komt omdat servers niet zijn zoals een programma.

Dus hoe kun je testen of een DevOps ingenieur een server kan configureren zonder er een van jezelf te gebruiken? Gebruik een virtuele machine. Dit zijn op zichzelf staande systemen, volledig gescheiden van uw kritieke systemen, waarmee u zo ongeveer alles kunt doen wat u wilt. En het zijn perfecte omgevingen om te zien of uw DevOps ingenieur alle verschillende inputs, wijzigingen en problemen kan beheren waarmee hij te maken krijgt bij het configureren van een systeem.

Rootskiller geeft u een venster op de DevOps-vaardigheden van uw kandidaats

Rootskiller kan worden gebruikt om DevOps-vaardigheden te testenIn zijn kern is Rootskiller een virtuele machine. Zoals elke computer kun je hem commando's geven, programma's configureren en hem zelfs de grond in boren als je dat wilt. Tegelijkertijd reageert het als ieder ander systeem, verwerkt het uw configuraties en reageert het op slecht uitgevoerde commando's en gegevens van buitenaf. Dus hoe helpt dit u bij het testen van DevOps?

Neem een taak als deze:

Docker taak voor het testen van DevOps vaardighedenAlle betrokken technologieën zijn gangbare technologieën die een DevOps ingenieur zal gebruiken voor continue implementatie. GNU/Linux is een van de meest gebruikte server-side besturingssystemen en Docker is een veelgebruikte tool voor containerizaties. Deze zijn een essentieel onderdeel van een continue inzet, een van de belangrijkste pijlers van DevOps.

Dus na het opstarten van de virtuele machine zal de kandidaat de server configureren volgens de gepresenteerde instructies, maar dat is nog niet alles. Nadat de taak is volbracht, worden tests uitgevoerd op de configuratie die de kandidaat heeft gemaakt, waarbij wordt nagegaan of hij werkt, welke bugs er zijn, of hij de relevante randgevallen oplost, en hoe stabiel hij is.

Naast het analyseren van de eigenlijke oplossing, wordt de hele sessie opgenomen voor een screen capture video. Op die manier kan een technische interviewer de keuzes zien die de kandidaat maakt en zien hoe hij op nieuwe uitdagingen reageert.

Hoewel de vraag hier gaat over het configureren van Docker op een GNU/Linux machine, betekent de testbouwtool dat je dit kunt instellen voor vele server-side technologieën en deployment technieken zoals LAMP-stapel.

Terraform-tests voor het testen van Infrastructure as Code-vaardigheden

Terraform is de tool bij uitstek voor het beheer van clouddiensten op meerdere platformen. Het gebruikt zijn eigen domeinspecifieke taal, HCL genaamd, die sterk lijkt op JSON. Het wordt veel gebruikt om cloudinfrastructuur op verschillende cloudplatforms te beheren. Het heeft een enorm aantal ondersteunde providers en het is eigenlijk veel meer dan een eenvoudige cloud-only tool. Omdat het in de loop der jaren zo aan populariteit heeft gewonnen, is het nu een standaardtool voor het beheren van alles vanuit een declaratieve code. Het is gebruikt door veel organisaties en wordt beschouwd als een essentieel hulpmiddel in de DevOps-gemeenschap.

Met Terraform zijn we in staat taken aan te bieden die praktische kennis over verschillende cloud-providers testen. Wij geloven dat deze taken beter passen in het huidige DevOps-landschap waar het schrijven van Terraform-code zo alomtegenwoordig is en een dieper begrip van de cloud-API's vereist.

Hoe we Terraform code testen

We hebben de Terraform-taken zo ontworpen dat ontwikkelaars er gemakkelijk hun eigen kunnen aanmaken en dat de ervaring voor kandidaten zo vlot en snel mogelijk verloopt. We vereisen niet dat kandidaten een account hebben bij de cloud provider die door een taak wordt gebruikt. Eigenlijk is het niet eens nodig om Terraform te installeren - alles wat een kandidaat nodig heeft is kennis over hoe Terraform code te schrijven die voldoet aan de eisen die in een taak zijn gespecificeerd. TalentScore voert een dry-run uit (d.w.z. voer het commando "terraform plan" uit) en evalueert de resultaten die door het commando worden geretourneerd. De cloud resources gedefinieerd in de door de kandidaten ingediende code zullen niet worden gecreëerd, zodat de feedback onmiddellijk aan de kandidaat zal worden geretourneerd. Dit bespaart veel tijd en vermijdt mogelijke problemen die zouden kunnen ontstaan als het platform deze resources daadwerkelijk zou aanmaken.

Om een betere ervaring te krijgen van Terraform taken raden wij kandidaten aan Terraform te installeren op hun werkstations samen met wat syntax controle software. Wij raden VS Code met de officiële Terraform-extensie aan. Het ondersteunt taalserver die autocompletion en ingebouwde documentatie biedt. Met deze setup is het werken met Terraform-code snel en minder foutgevoelig.

Wat nu te doen?

Nadat u een cv hebt gescreend, de scriptvaardigheden van uw kandidaat hebt getest en hebt gezien hoe goed hij een systeem kan configureren, neemt u de beste kandidaten mee voor een gesprek. Dit kan een combinatie zijn van codekoppeling en gedragsvragen.

Maar voordat je dat doet, kijk eens naar DevSkiller om te zien hoe gemakkelijk het is om DevOps vaardigheden automatisch te screenen en voor Infrastructure as Code vaardigheden kijk ook eens naar wat Terraform testen er zo uit moet zien.

Post delen

Meer informatie over het inhuren van tech

Abonneer u op onze Learning Hub en ontvang nuttige inzichten rechtstreeks in uw inbox.

Verifieer en ontwikkel coderingsvaardigheden naadloos.

Zie DevSkiller producten in actie.

Beveiligingscertificeringen & naleving. Wij zorgen ervoor dat uw gegevens veilig en beveiligd zijn.

DevSkiller logo TalentBoost logo TalentScore logo