Cursus
De eerste keer dat ik Terraform gebruikte, was ik sceptisch. Het voelde heel vreemd om infrastructuur bij te werken in mijn code-editor in plaats van door de cloudconsole te klikken, en ik begreep de voordelen toen niet. Maar omdat het bedrijfsbeleid was, deed ik mee. Op een dag werd me gevraagd om een compleet nieuwe ontwikkelomgeving op te zetten. Ik weet nog dat ik naar de senior developer in mijn team ging en vroeg wat ik over het hoofd had gezien, want het kostte me maar 10 minuten. Hij controleerde mijn werk, lachte en bevestigde dat het inderdaad zo simpel was.
Het is geen wonder dat Terraform zo breed is omarmd in de industrie. Nu cloud computing zich razendsnel ontwikkelt, stappen teams wereldwijd over op Infrastructure as Code (IaC) om steeds complexere infrastructuren te beheren. Terraform’s vermogen om een consistente, herhaalbare en schaalbare aanpak voor infrastructuurbeheer te bieden, maakt het een topkeuze voor bedrijven in verschillende sectoren.
In een Terraform-sollicitatiegesprek gaat het niet alleen om hoeveel commando’s je kent, maar vooral om je vermogen om Terraform effectief in te zetten binnen moderne DevOps-workflows en om echte problemen op te lossen.
Communicatie is hier de sleutel. Zoals besproken in een recente DataFramed-podcast over technische rollen, is echte beheersing aanpassingsvermogen:
Je moet elk type inzicht kunnen overbrengen op een manier die een zesjarige zou begrijpen én op een manier die mij of iemand nog technischer tevredenstelt. Als je je vak echt beheerst, kun je het heel simpel uitleggen, maar je kunt het ook zo ingewikkeld maken dat eerlijk gezegd alleen de mensen met echt, echt veel technische expertise het snappen.
Mo Chen, Data & Analytics Manager at NatWest Group
Deze mindset is cruciaal tijdens je voorbereiding. In dit artikel neem ik je mee langs een aantal van de meest voorkomende Terraform-sollicitatievragen. Ik heb ze gegroepeerd in categorieën – Basis, Gemiddeld en Gevorderd – zodat er, waar je ook staat in je carrière, iets voor je bij zit!
En voordat je begint: als je helemaal nieuw bent met cloud computing, raad ik je aan om eerst onze cursus Introduction to Cloud Computing te volgen. Deze cursus breekt de cloudbasis op, legt sleuteltermen als schaalbaarheid en latentie uit en behandelt de voordelen van cloudtools van aanbieders zoals AWS. Terraform draait volledig om cloudinfrastructuur, dus zorg dat je deze concepten eerst kent, zowel in theorie als in de praktijk!
Basis Terraform-sollicitatievragen
Deze vragen gaan over wat Terraform is en hoe het werkt. Je komt deze vragen waarschijnlijk tegen als je nog nooit met Terraform hebt gewerkt, of als de interviewer niet zeker is van je niveau en bij de basis wil beginnen.
1. Wat is Terraform en wat is het primaire doel?
Terraform is een open-source Infrastructure as Code (IaC)-tool, ontwikkeld door HashiCorp. Je kunt er cloud- en on-premises infrastructuur mee definiëren en beheren met een declaratieve configuratietaal genaamd HCL (HashiCorp Configuration Language). Terraform automatiseert het provisionen, updaten en versiebeheer van infrastructuur, om consistentie te waarborgen en handmatig werk te verminderen.
2. Hoe verschilt Terraform van andere IaC-tools zoals CloudFormation of Ansible?
Terraform versus CloudFormation: Terraform is cloud-agnostisch, wat betekent dat het infrastructuur kan beheren over meerdere providers (AWS, Azure, GCP, enz.), terwijl AWS CloudFormation specifiek is voor AWS. Terraform heeft ook flexibelere syntaxis en staatbeheer.
Terraform versus Ansible: Ansible is primair een tool voor configuratiebeheer (beheer van software, pakketten en OS-configuraties), terwijl Terraform zich richt op het declaratief provisionen en beheren van infrastructuurresources.
3. Wat zijn de belangrijkste Terraform-commando’s en wat doen ze?
-
terraform init– Initialiseert een Terraform-project en downloadt de benodigde provider-plugins. -
terraform plan– Maakt een uitvoeringsplan dat aangeeft welke wijzigingen Terraform zal toepassen. -
terraform apply– Past de geplande wijzigingen toe en voorziet resources. -
terraform destroy– Verwijdert alle beheerde resources. -
terraform validate– Controleert op syntaxisfouten in de Terraform-configuratiebestanden.
4. Wat is een Terraform-statebestand?
Terraform onderhoudt een statebestand (terraform.tfstate) om de echte infrastructuur die het beheert bij te houden. Het statebestand helpt Terraform de huidige status van resources te begrijpen, drift te detecteren en efficiënt wijzigingen toe te passen. Het is cruciaal voor samenwerking, maar omdat het gevoelige gegevens bevat, moet het veilig worden opgeslagen.
5. Wat zijn Terraform-providers en waarom zijn ze belangrijk?
Providers in Terraform zijn plugins die Terraform laten communiceren met cloudplatformen, SaaS-diensten en andere API’s. Elke provider (bijv. AWS, Azure, Kubernetes) definieert de resources die Terraform kan beheren. Zonder providers zou Terraform niet weten hoe het infrastructuurresources moet aanmaken of configureren.
Wil je meer weten over Terraform en hoe het werkt, bekijk dan deze gids voor beginners. In dat artikel ga ik dieper in op de belangrijkste componenten van Terraform en bespreek ik de voor- en nadelen van de tool. Er is zelfs een mini-tutorial om je op weg te helpen met het provisionen van infrastructuur op AWS.
Gemiddelde Terraform-sollicitatievragen
Deze sectie gaat dieper in op Terraform-workflows, configuratiepraktijken en strategieën voor het beheren van state en resources in projecten uit de praktijk. Je hebt de nodige praktische ervaring met Terraform nodig om deze vragen te beantwoorden, zeker als je wordt gevraagd om specifieke voorbeelden te geven.
6. Wat zijn Terraform-modules?
Terraform-modules zijn herbruikbare componenten die helpen infrastructuurcode te organiseren door gerelateerde resources te groeperen. Ze verbeteren het onderhoud, maken hergebruik van code over projecten mogelijk en vereenvoudigen deployments.
Een module kan zo eenvoudig zijn als een map met .tf-bestanden en een optioneel variables.tf-bestand!
7. Hoe beheert Terraform remote state?
Standaard slaat Terraform de state lokaal op, maar voor samenwerking ondersteunt het remote backends (S3 met DynamoDB voor AWS, GCS voor Google Cloud of Terraform Cloud). Remote state maakt mogelijk:
- Gedeelde toegang voor meerdere teamleden.
- State locking om conflicten te voorkomen.
- Betere beveiliging met versleuteling en gecontroleerde toegang.
8. Wat zijn Terraform-workspaces en wanneer gebruik je ze?
Terraform-workspaces laten je aparte statebestanden onderhouden binnen dezelfde configuratie. Ze zijn handig bij het beheren van meerdere omgevingen (zoals dev, staging, prod) zonder code te dupliceren.
Workspaces zijn ideaal voor eenvoudige scheiding van omgevingen, maar kunnen te lastig te onderhouden zijn voor complexe multi-accountopstellingen.

Bron: DevOps Mojo
9. Hoe gaat Terraform om met het importeren van bestaande infrastructuur en wat zijn de beperkingen?
Terraform kan bestaande resources importeren in zijn state met het commando terraform import. Het genereert echter niet automatisch configuratiebestanden (de .tf bestanden) voor die resources, dus die moet je handmatig schrijven.
Er zijn enkele beperkingen aan deze importfunctionaliteit:
- Complexe opstellingen vereisen handmatige afstemming van configuraties.
- Sommige resourcetypen worden niet ondersteund voor import.
- Er is driftrisico als de geïmporteerde resourceconfiguratie niet overeenkomt met de daadwerkelijke infrastructuur.
10. Wat zijn Terraform-provisioners en wanneer gebruik je ze?
Provisioners voeren scripts of commando’s uit op een resource nadat deze is aangemaakt. Ze worden vaak gebruikt voor taken zoals het configureren van VM’s of het installeren van software.
Er zijn twee soorten provisioners:
- Lokale provisioners, die draaien op de machine waarop Terraform wordt uitgevoerd).
- Remote provisioners, die draaien op de doelresource via SSH of WinRM.
Omdat provisioners afhankelijkheden introduceren en de declaratieve aard van Terraform verminderen, moet je ze spaarzaam gebruiken. Een alternatief is het gebruik van configuratiebeheertools zoals Ansible of cloud-init.

Bron: Opcito
11. Wat is driftdetectie in Terraform en hoe pak je dat aan?
Driftdetectie verwijst naar de situatie waarin de feitelijke infrastructuurstatus afwijkt van de status die is gedefinieerd in de Terraform-configuratie. Dit kan gebeuren wanneer er handmatige wijzigingen zijn aangebracht buiten Terraform om, zoals updates in de console van de cloudprovider of andere automatiseringstools.
Terraform kan drift detecteren door terraform plan uit te voeren, wat de huidige state uit het statebestand vergelijkt met de echte infrastructuur.
Als drift wordt gedetecteerd, moet je de handmatige wijzigingen terugdraaien zodat ze overeenkomen met de Terraform-configuratie, de configuratie bijwerken om de nieuwe gewenste status te weerspiegelen en terraform apply uitvoeren om de infrastructuur weer in lijn te brengen met de configuratie.
12. Hoe zou je een rolling update implementeren met Terraform voor een applicatie die op meerdere instanties draait?
Een rolling update laat je infrastructuur stapsgewijs updaten om downtime te verminderen en ervoor te zorgen dat een deel van je applicatie-instanties beschikbaar blijft tijdens de update. In een rolling-update-scenario maakt Terraform een nieuwe instantie van de resource aan, wacht tot deze gezond is (met health checks) en vervangt dan geleidelijk de oude instanties.
In de praktijk kun je een rolling update implementeren door onveranderlijke infrastructuur in Terraform te definiëren en count of for_each te gebruiken binnen je resourcedefinities (bijv. EC2-instanties, load balancers).
13. Hoe ga je om met resourceafhankelijkheden in Terraform en wat is de rol van impliciete en expliciete afhankelijkheden?
In Terraform worden resourceafhankelijkheden automatisch afgehandeld via het grafenbouwmechanisme. Impliciete afhankelijkheden ontstaan wanneer de ene resource in zijn configuratie naar een andere verwijst (bijvoorbeeld het verwijzen naar een aws_security_group in een aws_instance) en Terraform leidt de volgorde automatisch af.
Expliciete afhankelijkheden zijn nuttig voor randgevallen waarin Terraform de volgorde niet automatisch kan afleiden. Ze worden gemaakt met het argument depends_on, dat Terraform dwingt een specifieke uitvoeringsvolgorde te hanteren, zelfs wanneer resources niet direct naar elkaar verwijzen.

Bron: HashiCorp
Geavanceerde Terraform-sollicitatievragen
Op gevorderd niveau willen interviewers je expertise zien in het beheren van grootschalige infrastructuur met Terraform. De vragen kunnen onderwerpen bevatten als multi-cloud-deployments, samenwerking in teams en automatiseringsuitdagingen. Dit is het moment om je ervaring en vaardigheden te laten zien, dus aarzel niet om over projecten te praten waar je aan hebt gewerkt en geef praktische voorbeelden!
14. Hoe beheer je complexe multi-cloud-deployments met Terraform?
Het beheren van multi-cloudomgevingen vereist het omgaan met meerdere providers in één configuratie. Terraform laat je resources van verschillende cloudproviders (bijv. AWS, Azure, Google Cloud) in hetzelfde main.tf-bestand configureren door verschillende providers te specificeren en provider-specifieke resources te gebruiken.
Je kunt provideraliassen gebruiken om meerdere instanties van dezelfde provider te beheren (bijv. AWS in verschillende regio’s) en modules inzetten om gemeenschappelijke configuraties te abstraheren en duplicatie te voorkomen. Let wel goed op het beheer van cross-cloudafhankelijkheden, want resources in verschillende clouds hebben mogelijk geen directe relaties.
15. Wat zijn de taint- en untaint-commando’s in Terraform? Hoe zou je die in de praktijk gebruiken?
terraform taint markeert een resource voor recreatie de volgende keer dat terraform apply wordt uitgevoerd, zelfs als er geen wijzigingen in de configuratie zijn. Dit is handig wanneer een resource problematisch is geworden of in een ongewenste staat verkeert.
Als een EC2-instantie bijvoorbeeld faalt en opnieuw moet worden aangemaakt, kun je deze tainten om bij de volgende apply de vernietiging en heraanmaak te triggeren.terraform untaint wordt gebruikt om het taint-commando ongedaan te maken en te voorkomen dat de resource opnieuw wordt aangemaakt.
16. Wat zijn Terraform Cloud en Terraform Enterprise, en wat zijn de belangrijkste verschillen?
Terraform Cloud is een SaaS-aanbod van HashiCorp dat samenwerkingsfuncties biedt, zoals remote statebeheer, workspacebeheer, integratie met versiebeheer en beleidsafdwinging. Het is ideaal voor kleine tot middelgrote teams.
Terraform Enterprise is een zelfgehoste versie die meer geavanceerde functies toevoegt, zoals private moduleregistries, fijnmaziger toegangsbeheer en geavanceerde beveiligingsfuncties, waaronder on-premise deployments.
Kortom: Terraform Cloud wordt gehost en beheerd door HashiCorp, terwijl Terraform Enterprise zelfgehost is en organisaties volledige controle over hun infrastructuur geeft.

Bron: Google Cloud
17. Hoe beheer je state locking en gelijktijdigheidsproblemen in Terraform wanneer je met grote teams werkt?
State locking in Terraform is bedoeld om te voorkomen dat twee gebruikers tegelijkertijd dezelfde state wijzigen, omdat dat tot corrupte statebestanden kan leiden.
Terraform Cloud en Enterprise handelen state locking automatisch af via een backend.
Voor remote backends zoals S3 met DynamoDB gebruikt Terraform DynamoDB voor state locking en om gelijktijdigheidsproblemen te voorkomen.
18. Wat zijn zero-downtime-deployments en hoe kan Terraform die realiseren?
Zero-downtime-deployments vinden plaats wanneer je wijzigingen aanbrengt in infrastructuur zonder de beschikbaarheid van diensten te onderbreken. Terraform kan dit bereiken met strategieën zoals:
- Blue-Green-deployment: Twee identieke omgevingen (Blue en Green) gebruiken, waarbij je verkeer tussen beide schakelt om wijzigingen zonder downtime te deployen.
- Rolling updates: Wijzigingen geleidelijk toepassen op een klein deel van de instanties tegelijk, zodat de rest actief blijft tijdens updates.
Dit zijn gangbare strategieën in cloudarchitectuur en Terraform biedt functies die helpen bij de implementatie ervan. Voor een volledige zero-downtime-aanpak heb je echter vaak extra tools nodig, zoals load balancers.
19. Hoe ga je om met secretsbeheer in Terraform en wat zijn best practices?
Terraform beheert zelf geen secrets, maar kan integreren met externe secretsbeheertools. Je kunt bijvoorbeeld gebruiken:
- HashiCorp Vault: Terraform heeft ingebouwde ondersteuning voor Vault om secrets zoals API-sleutels of wachtwoorden op runtime op te halen, zodat ze niet hardcoded in configuratiebestanden staan.
- Omgevingsvariabelen: Voor gevoelige waarden kun je ze instellen als omgevingsvariabelen.
- Remote backends met versleuteling: Sla statebestanden op in remote backends met ingeschakelde versleuteling om ongeautoriseerde toegang tot gevoelige gegevens te voorkomen.
- Gebruik van het argument sensitive: Markeer outputs en variabelen als sensitive om te voorkomen dat ze verschijnen in Terraform plan/apply-logs.
20. Hoe implementeer je aangepaste Terraform-providers en wanneer heb je er een nodig?
Aangepaste Terraform-providers gebruik je wanneer je resources of diensten moet beheren die Terraform niet native ondersteunt. Ze worden geïmplementeerd in Go en omvatten het maken van aangepaste functies die communiceren met API’s of services die niet door bestaande providers worden gedekt, zoals een interne API, een nicheclouddienst of een propriëtaire technologie.
Terraform biedt de Terraform Plugin SDK om providers te bouwen, maar je moet zelf authenticatie, CRUD (Create, Read, Update, Delete)-operaties en eventuele speciale configuratie afhandelen die specifiek zijn voor de API waarmee je werkt.
Conclusie
Ik hoop dat dit artikel je de kennis en het vertrouwen heeft gegeven om je Terraform-sollicitatiegesprek te rocken!
Heb je meer oefening nodig, bekijk dan de HashiCorp Terraform-tutorials om te leren hoe je Terraform gebruikt voor veelvoorkomende taken en use-cases, of lees onze blog 14 essentiële tools voor data-engineers in 2024 om te begrijpen hoe Terraform past in de toolkit van een data-engineer.

Ik ben een productgerichte tech lead die gespecialiseerd is in het laten groeien van startups in een vroeg stadium, van het eerste prototype tot product‑market fit en verder. Ik ben eindeloos nieuwsgierig naar hoe mensen technologie gebruiken, en ik werk graag nauw samen met oprichters en multidisciplinaire teams om gedurfde ideeën tot leven te brengen. Als ik geen producten bouw, zoek ik inspiratie in nieuwe uithoeken van de wereld of ontspan ik me in de yogastudio.
Terraform FAQ’s
Hoe diep moet mijn Terraform-kennis zijn voor een sollicitatiegesprek?
Dat hangt af van de rol. Voor een juniorfunctie is begrip van basisconcepten zoals providers, statebeheer en resources voldoende. Middelzware rollen vereisen kennis van modules, workspaces en remote state. Seniorrollen verwachten expertise in state locking, CI/CD-integraties en het debuggen van complexe issues.
Moet ik Terraform-commando’s uit mijn hoofd leren voor het gesprek?
Hoewel het kennen van sleutelcommando’s zoals terraform init, plan en apply nuttig is, vinden interviewers het belangrijker hoe je Terraform-concepten toepast. Ze kunnen je vragen te beschrijven hoe je Terraform zou structureren voor een praktijkscenario in plaats van simpelweg commando’s op te sommen.
Hoe belangrijk is Terraform-certificering om een baan te krijgen?
Een Terraform-certificering (zoals HashiCorp Certified: Terraform Associate) kan helpen om je kennis te valideren, maar is niet verplicht voor de meeste rollen. Praktische ervaring met Terraform in projecten uit de echte wereld weegt zwaarder dan een certificaat alleen. Ben je echter nieuw met Terraform, dan kan certificering een goede manier zijn om te leren.
