Alt Text!

Certificeren als Terraform Engineer? Tips hoe je dit kan bereiken…

In mijn vak als Azure Cloud Solutions Engineer kom je veel toffe tools tegen. Een groot deel van de ‘gangbare’ tooling is open-source, wat hun ontwikkeling alleen maar ten goede komt. Er zijn enkele grote bedrijven (zoals Google, Microsoft en RedHat) die hun eigen software volledig open op o.a. GitHub plaatsen. Een ander grote partij hierin is HashiCorp. Zij zijn de makers van meerdere populaire tools voor (cloud) engineers, zoals o.a. Consul, Vault, Packer en Terraform. Met die laatste twee tools ben ik aan de slag gegaan bij mijn nieuwe opdrachtgever.

Waarom Terraform?

Zo’n twee jaar geleden kwam ik voor het eerst voor een uitdaging te staan waar ik kennis maakte met Terraform. Ik kon mezelf toen nog niet echt een cloud engineer noemen: ik was hooguit een beetje aan het spelen met het handmatig aanmaken en configureren van VM’s in Azure. Destijds vond ik het concept vrij lastig te behappen, met name omdat ik echte functionaliteit miste voor het importeren van bestaande infrastructuur. Waarom zou ik al die moeite doen om al mijn bestaande infrastructuur te herschrijven naar code, en het risico te lopen dat Terraform alles in de soep werkt?

Hoe meer en meer ik mezelf verloor in de wereld DevOps en automation, hoe meer ik erachter kwam dat applicaties en infrastructuur niet los van elkaar staan. Als klanten bijvoorbeeld idempotente deployments willen hebben van hun applicatie(s), moeten zij zorgen dat de infrastructuur waarop zij hun applicaties uitrollen altijd hetzelfde is. Als ze vaak en snel willen deployen, moeten zij het proces van het aanmaken en configureren van hun infrastructuur en applicaties zo veel mogelijk automatiseren. Maar ook toen ik in de wereld van containers en Kubernetes terecht kwam wilde ik meer en meer automatiseren, en steeds vaker kwam ik uit bij Terraform. Met het grote aanbod aan zogenaamde provisioners (wat in essentie een wrapper om de API van de fabrikant is, met een vertaling naar Terraform code) voor iedere vorm van infrastructuur/applicatie-platform dan ook leken, de mogelijkheden eindeloos.

Een voorbeeld hiervan is hoe je Terraform kan gebruiken om, door middel van één druk op de knop, binnen enkele minuten een volledig Azure Kubernetes cluster te creëren, te configureren en een applicatie te deployen met automatische SSL-certificaten via LetsEncrypt. Vervolgens is het net zo makkelijk om het cluster met een ander Terraform commando weer af te breken. Hier heb ik ook een webinar over gegeven: https://www.youtube.com/watch?v=zTje8b1stGo

Waarom Terraform Associate?

Bij mijn huidige opdrachtgever ben ik bezig met het ontwikkelen van een platform voor het uitrollen van virtuele machines in Azure. Hier ben ik direct bij het starten aan de slag gegaan met het implementeren van Terraform. Ik had al ervaring met Terraform, maar zaken zoals modules, counts, backends en dynamic blocks waren me nog vreemd in het begin. Het is me wel gelukt om mezelf dingen eigen te maken, maar ik ben van mening dat het ook belangrijk is om te weten hoe de maker van het product ‘het bedoeld heeft’. Misschien heb ik bepaalde features gemist of implementeer ik ze niet op de juiste manier. Daarom kwam de certificering in beeld.

Terraform Associate is het enige en meest fundamentele examen wat Hashicorp op dit moment aanbiedt, naast die voor Consul- en Vault. Er is een grote hoeveelheid templates en modules beschikbaar om snel aan de slag te gaan in het officiële Terraform Registry: https://registry.terraform.io/. Maar zaken zoals modules, counts, backends en dynamic blocks waren me nog vreemd in het begin. Het is me wel gelukt om mezelf dingen eigen te maken, maar ik ben van mening dat het ook belangrijk is om te weten hoe de maker van het product ‘het bedoeld heeft’. Misschien heb ik bepaalde features gemist of implementeer ik ze niet op de juiste manier.

Wat dat betreft ben ik zeker blij dat ik voor dit examen ben gegaan. Ik heb nieuwe features ontdekt, zoals terraform taint (waarmee je Terraform dwingt om resources opnieuw aan te maken conform je code) en terraform fmt (waarmee je je code kan laten formatteren conform de best coding practices van Hashicorp, een must als je met meerdere mensen aan code werkt of je code in productie gebruikt!). Hiermee heb ik exact datgene geleerd wat ik wilde leren van het examen. Daarnaast kan ik dit meenemen in mijn werk voor mijn opdrachtgever. Win-win dus!

Wat moet je weten?

Terraform Associate is dus echt een fundamenteel examen, waarbij je kennis wordt getest over de volgende onderwerpen. Zoals je ziet gaat het ook over algemene IaC concepten en wat de plaats is van Terraform in die wereld:

  1. Understand Infrastructure as Code (IaC) concepts
  2. Understand Terraform's purpose (vs other IaC)
  3. Understand Terraform basics
  4. Use the Terraform CLI (outside of core workflow)
  5. Interact with Terraform modules
  6. Navigate Terraform workflow
  7. Implement and maintain state
  8. Read, generate, and modify configuration
  9. Understand Terraform Cloud and Enterprise capabilities

Zelf werkte ik voor dit examen al zo’n 6 maanden veel met Terraform. Met deze kennis onder de riem heb ik het met zo’n drie dagen studeren goed kunnen halen. Als je nog weinig ervaring hebt met Terraform raad ik je vooral aan om veel te oefenen, en er toch zeker wel een paar weken voor uit te trekken om dit te doen.

Hashicorp biedt zelf een uitstekende studiegids aan voor dit Terraform examen: https://learn.hashicorp.com/tutorials/terraform/associate-study?in=terraform/certification
En een Exam Review Guide: https://learn.hashicorp.com/tutorials/terraform/associate-review?in=terraform/certification

Zelf heb ik alle onderwerpen waar ik niet goed mee bekend was uitgebreid bestudeerd in de Exam Review Guide. Hier wordt heel puntsgewijs informatie gegeven voor alle onderwerpen waarop je getoetst wordt. Je kan hier dus eerst een stuk lezen over het onderwerp, en wordt waar nodig ook een Tutorial aangeboden voor dat onderwerp. Waar dit niet toereikend was bood YouTube uitkomst, of gewoon zelf experimenteren met Terraform op je laptop.

Mocht je nog weinig kennis hebben van Terraform, is het volgen van een cursus wellicht een goed idee. Hashicorp biedt zelf een goed startpunt met allerlei tutorials op het Hashicorp Learn platform: https://learn.hashicorp.com/terraform. Dit is een goed beginpunt om aan de slag te gaan met specifieke onderwerpen uit de Study Guide.

Mocht je liever een cursus van begin tot eind willen volgen, is een goed startpunt de cursus van CloudSkills.io (https://cloudskills.io/courses/terraform-azure) of deze op Udemy: https://www.udemy.com/course/terraform-beginner-to-advanced. Ik heb deze zelf niet gevolgd omdat dit niet nodig bleek te zijn, maar ze lijken uitermate nuttig te zijn om kennis te maken met Terraform. Mocht je liever een boek willen lezen is de volgende aan te raden: https://leanpub.com/terraform-certified/


Ben je er klaar voor?

Ik had zelf het gevoel er klaar voor te zijn toen ik alle onderwerpen in de Study Guide begreep en eens had toegepast. Daarnaast heb ik wat oefenvragen opgezocht om mijn kennis te testen. Deze zijn gratis te vinden (minder recent en lagere kwaliteit, dus misschien minder goed als je minder zeker van je zaak bent): https://medium.com/bb-tutorials-and-thoughts/250-practice-questions-for-terraform-associate-certification-7a3ccebe6a1a

Een alternatief zijn de oefenvragen van Bryan Krausen op Udemy, tegen een kleine vergoeding. Deze vragen worden vaak geüpdatet (zoals laatst voor Terraform 0.14) en zijn van een betere kwaliteit: https://www.udemy.com/course/terraform-associate-practice-exam/

Zelf had ik vanuit mijn eigen werk met Terraform vrijwel geen ervaring met Terraform Cloud en Terraform Sentinel. Gelukkig biedt Hashicorp Terraform Cloud tegenwoordig gratis aan om eens mee te gaan experimenteren. Sentinel is een betaalde feature, maar ik kwam niet in de problemen met de beperkte kennis die ik er over had opgedaan met behulp van YouTube en de documentatie.

Bij de study en exam guide van Hashicorp staan ook enkele sample questions: https://learn.hashicorp.com/tutorials/terraform/associate-questions?in=terraform/certification. Dit zijn niet zo zeer oefenvragen, maar geven je een beeld van het soort vragen dat je kan verwachten. Zo moet je bijvoorbeeld goed opletten bij de vragen met code snippets goed opletten wat de juiste notatie is. Verder zijn de meeste vragen multiple choice en moet je vooral goed lezen wat er gevraagd wordt.

Hoe wordt het examen afgenomen?

Het examen doe je online via een zogenaamd ‘proctored’ examen, waarbij je het examen thuis of op kantoor kan doen terwijl je in de gaten wordt gehouden via je webcam en microfoon door een menselijke toezichthouder. Je moet bij de meeste aanbieders van dit soort examens bepaalde software installeren die controleert of je ‘verboden’ software (zoals Docker, Teamviewer of Whatsapp) actief hebt. In deze software moet je ook de ruimte waar je zit scannen met je webcam om te kijken of je niets op je bureau hebt liggen of binnen handbereik hebt. Via deze software kan de toezichthouder jou tijdens het hele examen in de gaten houden met je webcam en microfoon.

Het examen bestaat uit ongeveer 57 vragen, voornamelijk multiple choice, waarvoor je 1 uur de tijd hebt. Je kan vragen eventueel overslaan of markeren om er later op terug te komen. De study guide is een goede indicatie van alle onderwerpen die voorbijkomen in het examen. Uiteindelijk heb ik zelf het examen gehaald met nog zo’n 20 minuten op de klok, en had ik een score van 91% die direct na het examen gegeven werd. Mocht je het examen niet halen is er geen gratis herexamen. Het certificaat is 2 jaar geldig. De befaamde Acclaim badge was vrijwel direct na het examen beschikbaar om mee te pronken!

Uiteindelijk is het Terraform Associate certificaat een mooie pluim op je pluim op je werk als je er regelmatig mee werkt. Daarnaast leer je er nieuwe toepassingen die je bij opdrachtgevers kunt gebruiken. Maar ook als dat niet het geval is en je je eens wil verdiepen in (stateful) Infrastructure as Code, is dit examen een mooi startpunt. Het is natuurlijk erg Terraform-georiënteerd, maar begint wel bij de basics. Daarnaast zijn er veel tutorials beschikbaar om ermee aan de slag te gaan. Succes!

Gerelateerde onderwerpen:

Ben jij een IT-professional die zich breder wil ontwikkelen?
Neem dan contact met ons op!
Telefoon: 088-81 81 100
E-mail:alex.verstappen@brightcubes.nl

Deel dit bericht