Close

Wat is een DevOps engineer?

Een DevOps engineer moet beschikken over vaardigheden op het gebied van ontwikkeling en operations, maar ook interpersoonlijke vaardigheden om de verschillen tussen geïsoleerde teams te helpen verkleinen.

Headshot of Tom Hall
Tom Hall

DevOps-vertegenwoordiger en -professional


Wanneer een organisatie geworteld is in een geïsoleerde structuur waarin development en operations afzonderlijk werken, betekent de implementatie van DevOps vaak een organisatorische verandering. Het vereist de juiste mensen, cultuur en tools om DevOps succesvol te implementeren. Toch is een van de meest voorkomende valkuilen bij het implementeren van DevOps een gebrek aan vaardigheden bij medewerkers, volgens de DevOps Trends Survey van Atlassian 2020.

Een van de belangrijkste rollen voor het implementeren van een DevOps-herstructurering is een DevOps engineer. Deze persoon moet beschikken over verschillende vaardigheden op het gebied van ontwikkeling en operations, maar ook over de interpersoonlijke vaardigheden om de verschillen tussen geïsoleerde teams te helpen verkleinen.

Wat is een DevOps engineer?


Een DevOps engineer is een IT-generalist die uitgebreide kennis moet hebben van ontwikkeling en operations, waaronder codering, infrastructuurbeheer, systeembeheer en DevOps toolchains. DevOps engineers moeten ook over interpersoonlijke vaardigheden beschikken, omdat ze met vaste bedrijfsstructuren werken om een beter samenwerkende omgeving te creëren.

DevOps engineers moeten een goed begrip hebben van gemeenschappelijke systeemarchitectuur, provisioning en administratie, maar moeten ook ervaring hebben met de traditionele toolset voor ontwikkelaars en het gebruik van broncontrole, het geven en ontvangen van code-reviews, het schrijven van apparaattests en moeten bekend zijn met agile-principes.

Rollen en verantwoordelijkheden


De rol van een DevOps engineer verschilt van organisatie tot organisatie, maar brengt steevast een combinatie met zich mee van release engineering, infrastructuur provisioning en management, systeembeheer, beveiliging en het belang van DevOps.

Team organization logo
oplossing bekijken

DevOps-tools voor het hele team

Book logo
Training

Atlassian DevOps essentials leren

Release engineering bestaat uit het werk dat nodig is om applicatiecode te bouwen en te implementeren. De exacte tools en processen variëren sterk afhankelijk van veel variabelen, zoals in welke taal de code is geschreven, hoeveel van de pipeline is geautomatiseerd en of de productie-infrastructuur on-premise of in de cloud is. Release engineering kan bestaan uit het selecteren, inrichten en onderhouden van CI/CD-tooling of het schrijven en onderhouden van op maat gemaakte build/implementatiescripts.

Infrastructuur provisioning en systeembeheer bestaan uit het implementeren en onderhouden van de servers, opslag en netwerkresources die vereist zijn om toepassingen te hosten. Voor organisaties met on-premise resources kan dit bestaan uit het beheer van fysieke servers, opslagapparaten, switches en virtualisatiesoftware in een datacenter. Voor een hybride of volledig cloudgebaseerde organisatie omvat dit meestal het inrichten en beheren van virtuele instanties van dezelfde componenten.

Het belang van DevOps wordt vaak ondergewaardeerd of volledig over het hoofd gezien, maar is misschien wel de belangrijkste rol van een DevOps engineer. De omschakeling naar een DevOps-cultuur kan verstorend en verwarrend zijn voor leden van het technische team. Als DevOps-expert is het de taak van de DevOps engineer om de DevOps-manier binnen de hele organisatie onder de aandacht te brengen en aan te leren.

DevOps engineer skills


The technical skills required of a DevOps engineer will vary depending on the team structure, technologies, and toolsets in use. Yet strong communication and collaboration skills are essential. It’s also important for a DevOps engineer to have a solid understanding of all the components of a delivery pipeline, and to know the pros and cons of available tools and services.

Communicatie en samenwerking

Het is belangrijk dat een DevOps engineer effectief communiceert en samenwerkt met teams, managers en klanten. Deze zogenaamde 'sociale vaardigheden' worden vaak over het hoofd gezien en ondergewaardeerd, maar het succes van DevOps is sterk afhankelijk van de kwaliteit en kwantiteit van feedback over de volledige waardestroom.

Systeembeheerder

Een DevOps engineer heeft ervaring met systeembeheer, zoals het inrichten en beheren van servers, het implementeren van databases, beveiligingsbewaking, systeempatching en het beheren van interne en externe netwerkverbindingen.

Ervaring met DevOps-tools

Omdat het gebruik van de juiste tools essentieel is voor DevOps-werkwijzen, moet de DevOps engineer verschillende tools begrijpen en kunnen gebruiken. Deze tools bestaan onder andere uit de DevOps-levenscyclus, van infrastructuur en gebouw tot het monitoren en bedienen van een product of service.

Configuratiebeheer

Van DevOps engineers wordt vaak verwacht dat ze ervaring hebben met één of meer tools voor configuratiebeheer, zoals Chef, Puppet of Ansible. Veel organisaties hebben deze of vergelijkbare tools gebruikt om systeembeheertaken te automatiseren, zoals het implementeren van nieuwe systemen of het toepassen van beveiligingspatches op systemen die al worden uitgevoerd.

Containers en containerorkestratie

Met 'containerisatie', een technologie die door Docker populair is gemaakt, worden de code voor de toepassing en de runtime-omgeving gecombineerd. Hierdoor zijn traditionele tools voor configuratiebeheer minder nodig. Tegelijkertijd brengt het beheren van containers zijn eigen uitdagingen met zich mee, en ervaring met het soort tools dat we 'containerorkestratie' noemen (zoals Docker Swarm of Kubernetes) wordt een noodzakelijke vaardigheid voor de DevOps engineer.

Continue integratie en continue implementatie

Continuous Integration and Continuous Delivery (CI/CD) zijn kernpraktijken van een DevOps-benadering voor softwareontwikkeling en worden mogelijk gemaakt door veel beschikbare tools. De meest fundamentele functie van elke CI/CD-tool of set tools is het automatiseren van het proces voor het bouwen, testen en implementeren van software.

DevOps engineers hebben meestal ervaring nodig met het configureren en implementeren van één of meer CI/CD-tools, en moeten meestal nauw samenwerken met de rest van de ontwikkelingsorganisatie om ervoor te zorgen dat deze tools effectief worden gebruikt.

Systeemarchitectuur en provisioning

Een DevOps engineer moet de mogelijkheid hebben om on-premise en in de cloud computerecosystemen te ontwerpen, aan te bieden en te beheren. Het is belangrijk om Infrastructure as Code (Iac) te begrijpen, een IT-beheerproces dat best practices van DevOps-softwareontwikkeling toepast op het beheer van bronnen voor cloudinfrastructuur. Een DevOps engineer moet begrijpen hoe je systeeminfrastructuur in de cloud vorm geeft met Amazon Web Services (AWS), AWS CloudFormation of Terraform.

Vertrouwd zijn met codering en scripting

Veel traditionele systeembeheerders hebben ervaring met het schrijven van shell-scripts om zich herhalende taken te automatiseren. Een DevOps engineer moet meer kunnen dan alleen maar automation-scripts schrijven en kennis hebben van geavanceerde processen voor softwareontwikkeling en hoe je agile ontwikkelingsprocessen zoals code-reviews implementeert en moet broncontrole gebruiken.

Vaardigheden op het gebied van gezamenlijk management

Samenwerking tussen teams is een fundamenteel onderdeel van een effectieve DevOps-strategie, ongeacht de specifieke organisatiestructuur. Of het engineeringteam nu een groep is die alleen in rollen is opgedeeld of dat er afzonderlijke teams zijn voor functieontwikkeling, kwaliteitsborging, DevOps, etc., de DevOps engineer moet binnen de volledige organisatie met veel verschillende mensen als coach en medewerker samenwerken.

Een van de meest waardevolle voordelen van een DevOps-investering is bijvoorbeeld de mogelijkheid om ontwikkelaars sneller feedback te geven. Een DevOps engineer moet vaak met QA samenwerken (of het nu gaat om handmatige testers of ontwikkelaars die test-automation schrijven) om de snelheid, werkzaamheid en uitvoer van testmethoden te verbeteren.

Tegelijkertijd kunnen ontwikkelaars support nodig hebben van DevOps engineers wanneer ze werken aan het verbeteren van het proces voor het bouwen en implementeren van toepassingscode.

Het DevOps-team: andere rollen en verantwoordelijkheden


DevOps evangelist

Dit is een DevOps-expert die DevOps-werkwijzen binnen de hele organisatie promoot en ontwikkelt. De DevOps evangelist heeft doorgaans een goede technische achtergrond, maar de focus van de rol ligt op interpersoonlijke communicatie en procesverbetering.

Releasemanager/change advisory board

Organisaties die niet zijn overgestapt op DevOps of zich nog in de beginfase bevinden, kunnen een aparte groep hebben die de Change Advisory Board (CAB) wordt genoemd of de rol van releasemanager.

Het doel van dergelijke rollen is ervoor te zorgen dat nieuwe toepassingssoftware die in productie wordt genomen, voldoet aan kwaliteits- en beveiligingsnormen en de juiste goedkeuringen voor beheer heeft.

Deze rollen waren vooral belangrijk toen softwareleases risicovoller waren. Deze rollen zijn echter minder belangrijk (zo niet verouderd) nu er strategieën worden gebruikt zoals automatisch testen en niet-geteste implementaties.

Automation-expert

Van elke DevOps engineer wordt verwacht dat hij of zij expert is op het gebied van automation. Toch is het niet ongebruikelijk dat een organisatie een aparte automation-expert of automation-engineer heeft. Dit kan iemand zijn die zich richt op het beheren van de CI/CD-tools of het ontwikkelen en onderhouden van geautomatiseerde testreeksen.

softwareontwikkelaar

In de meeste gevallen wordt de titel softwareontwikkelaar gegeven aan personen die front-end of back-end toepassingscode schrijven, of beide. Dit zijn de mensen die we altijd 'computerprogrammeurs' hebben genoemd vóór de opkomst van agile denken.

Quality Assurance

Het Quality Assurance-team (QA) is verantwoordelijk voor het vinden van softwarefouten. QA engineers hebben zich altijd geconcentreerd op het handmatig testen van nieuwe toepassingscode om ervoor te zorgen dat deze niet onmiddellijk crasht ('smoke-tests'), bestaande functies ontregelt ('regressietests') of andere nieuwe functies verstoort ('integratietests').

Organisaties voegen steeds vaker handmatige testers toe of vervangen ze door de rol van software development engineer in test (SDET). De SDET richt zich op het testen van nieuwe toepassingscode voordat deze in productie wordt genomen. In plaats van software handmatig te testen, richt hij of zij zich echter op het schrijven van code voor test-automation.

Security engineer

Organisaties die het idee niet hebben omarmd om veiligheids- en nalevingsproblemen volledig te integreren in hun plannings- en ontwikkelingsprocessen, hebben vaak een persoon die of team dat verantwoordelijk is voor de beveiliging. Dit blijkt vaak een tegenstrijdig patroon te zijn, omdat het van beveiliging een bijzaak maakt, en het veel moeilijker is om software te beveiligen als deze al is ontworpen, gebouwd en geïmplementeerd dan te ontwerpen met beveiliging in gedachten.

Going beyond a single role


DevOps is a practice that requires a cultural change, new management principles, and the use of technology tools. A DevOps engineer lies at the heart of a DevOps transformation and must have a broad set of skills to facilitate this change. Yet most organizations will need more than just one DevOps engineer, but a mix of generalists and specialists to work closely with each other to implement DevOps and improve the software development lifecycle. A DevOps engineer helps to break down silos to facilitate collaboration among different experts and across toolchains to realize the full promise of DevOps.

Tom Hall
Tom Hall

Tom Hall is een DevOps-voorstander en -uitvoerder, leest alles wat los en vast zit en speelt piano.
Hij heeft in de afgelopen 20 jaar certificeringen behaald voor Novell, EMC, VMware en AWS. Hij was onderdeel van de organisatie van DevOpsDays in Atlanta in 2016 en daarna in Austin, TX.


Deel dit artikel
Volgend onderwerp

Aanbevolen artikelen

Bookmark deze resources voor meer informatie over soorten DevOps-teams of voor voortdurende updates over DevOps bij Atlassian.

Toelichting DevOps

DevOps-community

Toelichting DevOps

Simulatieworkshop

Afbeelding van kaart

Gratis aan de slag

Meld je aan voor onze DevOps-nieuwsbrief

Thank you for signing up