Kim Sterenborg
Een populaire Infrastructuur als Code (IaC)-tool is Terraform. Terraform is een open source declarative tool ontwikkeld door HashiCorp waarmee ontwikkelaars de gewenste infrastructuur omschrijven. Terraform creëert vervolgens een plan voor het provisioneren van deze infrastructuur en voert dit plan uit. Wat zijn de mogelijkheden en waarom is Terraform populair? En hoe verhoudt de tool zich tot Kubernetes?
Voor een goed begrip van de voordelen van Terraform is voldoende kennis van Infrastructuur als Code (IaC) van belang. IaC is een aanpak die ontwikkelaars in staat stelt tot het coderen van infrastructuur op een wijze die provisionering automatiseert, versnelt en herhaalbaar maakt. IaC speelt een cruciale rol bij bijvoorbeeld DevOps-werkwijzen zoals continuous integration & continuous deployment.
IaC vergroot onder meer de betrouwbaarheid van een infrastructuur. Zeker indien een infrastructuur omvangrijk is, vormen misconfiguraties van resources of het in de verkeerde volgorde provisioneren van services een risico. IaC automatiseert dit proces en zorgt altijd voor een juiste provisioneren en configuratie van resources.
Ook snelheid is een belangrijk voordeel van Infrastructuur als Code. Door het geautomatiseerd configureren van resources en provisioneren van services realiseert de aanpak onder meer tijdwinst. Automatiseren is immers altijd sneller dan het handmatig aanpassen van bijvoorbeeld configuraties via een interface.
IaC vereenvoudigt en versnelt daarnaast het provisioneren van nieuwe infrastructuur. Dit biedt belangrijke voordelen. Zo kan je eenvoudiger experimenten uitvoeren en bijvoorbeeld experimentele wijzigingen aan een configuratie uitbrengen. Zonder dat dit veel tijd of resources vraagt. Bevalt het eindresultaat? Dan kan je de wijzigingen eenvoudig uitrollen naar de productieomgeving.
Een populaire IaC-tool is Terraform, een open source tool ontwikkeld door HashiCorp. Met behulp van deze zogeheten declarative tool kunnen ontwikkelaars de gewenste infrastructuur omschrijven in een configuratietaal genaamd HashiCorp Configuration Language (HCL). Terraform hanteert hiervoor eenvoudige syntax en kan infrastructuur provisioneren verspreid over meerdere cloudomgevingen en on-premise datacenters. Vinden er wijzigingen plaats in de configuratie? Dan kan Terraform de infrastructuur efficiënt en veilig herprovisioneren.
De IaC-tool werkt onder meer met modules. Deze modules maken het groeperen van resources mogelijk. Deze groep resources wordt vervolgens beheerd als een enkelvoudige resource. Modules zijn herbruikbaar, kunnen met elkaar communiceren en kunnen meerdere malen worden opgeroepen. Een overzicht van beschikbare modules is hier beschikbaar.
Een aantal kenmerken maken Terraform voor Infrastructuur als Code een populaire keuze voor ontwikkelaars. Een greep uit de belangrijkste kenmerken:
Terraform vereenvoudigt ook het verbinden met applicaties met externe services. Hiervoor zijn zogeheten providers beschikbaar. Een provider omvat alle code die nodig is voor het authentiseren van gebruikers en verbinden met een externe service. Voor nagenoeg iedere grote cloudprovider en elke populair SaaS-product zijn providers verkrijgbaar. Een overzicht van de beschikbare providers is hier beschikbaar.
Terraform en Kubernetes kunnen een krachtige combinatie vormen en effectief met elkaar samenwerken. Kubernetes is een open source containerorkestratieplatform waarmee ontwikkelaars deployments op nodes in een computerclusters kunnen orkestreren en containerized workloads kunnen beheren. Developers kunnen Terraform inzetten voor het geautomatiseerd provisioneren van Kubernetes. En voor het geautomatiseerd uitrollen van applicaties in een cluster.