Press "Enter" to skip to content

Forklaring: infrastructure as code – IaC

Infrastructure as code er en måde at vedligehold/oprette sin infrastruktur ud fra et designdokument, skrevet i et sprog som er læsbart for mennesker og forståeligt for infrastrukturen. Jeg giver et eksempel på det længere nede, hvor man starter med en et ret skrivebord, og ender med et redundant setup med webserver, database-infrastruktur, firewall og logning.

Kort sagt klikker du ikke længere rundt for at oprette en firewall, server, eller kopiere en virtuel disk fra et filshare som du omdøber til det nye servernavn – i stedet afvikler du et script.

Disse scripts opretter og vedligeholder (hvis man vælger det) hele infrastrukturen med netværk, firewall, servere, services, overvågning og compliance via. sit designdokument, som man ofte vedligeholder i Visual Studio eller en anden code-editor, og efterfølgende gemmer det i et GIT-repo som deles med kunden. Forestil dig du skulle versions-styre en traditionel infrastruktur med 4-6 forskellige grafiske brugerflader hvor man klikker rundt for at udføre de daglige opgaver.

Applikationsudviklere arbejder meget med decoupling, for at sikre de enkelte services fungere uafhængigt af hinanden og kan skaleres uafhængigt af hinanden. På samme måde sker der en decoupling af serverdrift, hvor de der håndtere de fysiske server og netværk stiller et hypervisor-lag til rådighed for applikations-laget. Man arbejder selvfølgeligt sammen i den bedste DevOps stil, men det er stadig en form for decoupling for at sikre det kan udvikles uafhængigt af hinanden.

Det skal ikke forstås som en undskyldning, når jeg påstår det kræver en hvis form for ydmyghed og åbenhed at følge med udviklingen inden for drift og hosting anno 2019. Fundamentalt mener jeg altid det har været en fordel for mig at starte i branchen for +20 år siden med 20 Megabyte Bigfoot harddiske og Token ring netværk host det gamle Post Danmark og Unibank. Det har efter min mening gjort det nemmere at forstå når det fysiske blev virtuelt og det grafiske blev til code.

Hvis nogen siger “det var nemmere i gamle dage” omkring IT, så tror jeg ikke de har været med på hele udviklingen op til og med Infrastructure as code (IaC), hvor man definere en hel infrastruktur ud fra et designsokument i JSON en YAML (begge to er dokument-formatteringer hvis man ikke ved det).

Mål:
Redundant Magento Webserverfarm der skalere automatisk efter behov, og kan tåle en hel region bryder ned. Designet after Well-Architected Framework modellerne for at sikre oppetid og kosteffektivitet.

Design:
Redundant Magento Webserverfarm

Kode:
Git-repo: https://github.com/aws-quickstart/quickstart-magento