Terraform Infrastructure as Code HashiCorp

Jesper Wermuth: Terraform kan være forskellen mellem Orden og Kaos i dit produkt

Udgivet d. 12. april 2021 af Jesper Wermuth

Terraform kan hjælpe dit team med at levere produkter i høj kvalitet og kan være forskellen mellem Orden og Kaos i dit produkt. Terraform er et Infrastructure as Code (IaC) værktøj, der gør det muligt at beskrive den infrastruktur (virtuelle maskiner, netværk, sikkerhed, clustre, …) som dit produkt afvikles på, som kode. At have din infrastruktur beskrevet som kode giver mange fordele bl.a: 

  • det bliver muligt at anvende de softwareudviklingsmetoder og -værktøjer der igennem årtier er forfinet til at levere produkter af høj kvalitet på din infrastruktur. 
  • et vist omfang af dokumention bliver automatisk en del af udviklingsprocessen.
  • test kan nemmere automatiseres og udføres ensartet, hver gang.
  • du kan anvende CI og CD værkøjer på din infrastruktur ligesom du kan på resten af din kodebase.

Terraform er Open Source og har en god chance for at forblive det mest udbredte værktøj af sin slags i mange år, bl.a. fordi Terraform er anbefalet af de største Cloud leverandører, og blandt mange andre udvikler AWS, Azure, Google Cloud og Hashicorp aktivt på Terraform.

Hvorfor Terraform nu?

Fordi dit produkt er i en teknisk virkelighed af stigende kompleksitet, hvor gode værktøjer er  afgørende for succes!

Infrastructure as Code er et relativt nyt begreb (ca. 2006), hvis anvendelse stadig bliver mere relevant, da udviklere i dag står overfor langt flere og mere komplekse teknologier end de gjorde da API drevne Cloud teknologier begyndte at vinde indpas for 15 år siden. Den agile metode har i samme periode vundet langt større indpas og er i dag de facto standard for udvikling, hvilket har medført at kravene til udvikleres kompetencer er steget markant, idet det ofte forventes at en udvikler har “DevOps kompentencer”, et kompetencesæt der er langt mere sammensat end kompetencesættet var for en udvikler for 15 år siden. Argumentet der driver denne udvikling kommer fra den agile metode, hvor det centrale begreb “Cross functional teams”, medfører at man søger at have alle nødvendige kompetencer tilgængelige på et team. Samtidig er antagelsen at mindre teams på 4-8 personer er mest effektive.

Når man kombinerer disse trends står man i en situation hvor teamet bag et produkt håndterer et stigende antal bevægelige dele, hvis opsætning og konfiguration er mere kompleks og håndteres af færre personer, der forventes at have et større kompetencesæt end det var tilfældet for 15 år siden. Det er ikke håbløst bevare overblikket, men det kræver i stigende grad at man skal have streng kontrol over hvordan den nødvendige infrastruktur er sat sammen, og det er her Terraform i kombination med traditionelle udvikler kompetencer såsom modularisering, indkapsulering, versionkontrol og test virkelig kommer til sin ret.

illustrering af princippet bag Terraform

Hvordan kommer jeg i gang med Terraform?

Mener du Terraform kan hjælpe dit produkt til succes ? Vil du gerne lære at bruge Terraform i en fart?

Så har Lund & Bendsen et relevant 1-dags hands-on kursus for dig → Terraform – Infrastructure as Code – Foundation.

På kurset vil du blandt andet lære, hvordan Terraform og Infrastructure as Code som konkret værktøj vil højne kvaliteten af din infrastruktur.

Kurset er hands-on, og vi kommer blandt andet omkring:

✓ Terraform design

✓ Terraform syntaks

✓ Terraform CLI anvendelse

✓ Opsætning af infrastruktur på AWS med Terraform (herunder services, netværk og maskiner)

Forudsætninger og målgruppe 

For at deltage på kurset er det vigtigt at du forstår grundlæggende netværksbegreber. Så når vi snakker om blandt andet Ingress, port ranges og Public Networks skal du vide, hvad vi snakker om.

På kurset laver og retter i Terraform kode-filer skrevet i HCL. HCL er en JSON ligende notation. Du skal have programmeringserfaring (sproget er ikke så vigtigt) og derigennem være helt tryg ved at oprette og rette i kodefiler.

Kurset afholdes som Bring Your Own Device (BOYD). Som forberedelse til kurset skal du oprette dig som bruger på et par platforme (AWS, Github, Slack, …) og installere et antal programmer på din computer. Du skal være helt tryg ved at udføre disse ting selv.

Kursets målgruppe er udviklere, DevOps– og driftsfolk. Kurset er til dig, der ønsker et overblik over Terraform og gerne vil i gang med at bruge det i dit arbejde. Kurset er også til dig, der ønsker konkret erfaring med konstruktion og videreudvikling af infrastrukturer i Terraform.