Privacy Settings

We use cookies to improve your experience and analyze traffic. You can accept all cookies or customize your preferences. Learn more in our Privacy Policy .

OnCloud

Begreb

Infrastructure as Code

•
2 min
•
Grundlæggende

Infrastructure as Code (IaC) definerer og ændrer infrastruktur gennem maskinlæsbare filer frem for manuelle klik. Filerne kan beskrive netværk, virtuelle maskiner, databaser, identiteter og cloudtjenester.

Hvorfor er begrebet vigtigt?

IaC gør miljøer gentagelige og sporbare. Definitioner kan versionsstyres, gennemgås og testes som applikationskode, så hensigten er synlig før udførelse.

Metoden reducerer håndbyggede særtilfælde og kan gøre oprettelse, skalering og gendannelse hurtigere. Resultatet afhænger stadig af værktøj, adgangsrettigheder, state og de anvendte API'er.

Typisk misforståelse

IaC er ikke blot et script med manuelle trin. Deklarative værktøjer beskriver den ønskede tilstand og beregner handlingerne. Imperative programmer kan også indgå, men skal selv styre rækkefølge og gentagelser.

Kodefilerne svarer heller ikke automatisk til virkeligheden. Manuelle ændringer, ikke-administrerede ressourcer og forældet state kan skabe drift.

Eksempel

Et platformteam beskriver netværk, subnet, sikkerhedsregler og virtuelle maskiner i et repository. En pull request ændrer en regel. Pipelinens validering viser derefter en plan over ressourcer, som oprettes, ændres eller slettes.

Efter godkendelse anvender en tjenesteidentitet planen. Ændres reglen senere direkte i cloudportalen, viser næste plan afvigelsen, så teamet kan gendanne tilstanden eller opdatere koden.

Best practice

  • Opbevar definitioner og genbrugelige moduler i versionsstyring med obligatorisk review.

  • Adskil miljøer, adgangsrettigheder og state, så en fejl får begrænset påvirkning.

  • Beskyt state og pipeline-hemmeligheder med kryptering, låsning og mindst mulige rettigheder.

  • Fastlås og opdater kontrolleret versioner af værktøjer, providers og moduler.

  • Kør formatering, validering, test og sikkerhedskontrol før en ændringsplan godkendes.

  • Undgå manuelle ændringer; importér eksisterende ressourcer, og overvåg for drift.

  • Test også sletning, gendannelse og ændringer, som kræver erstatning af ressourcer.

Frequently asked questions

Nej. Deklarative værktøjer beskriver sluttilstanden, mens imperative værktøjer beskriver trin. Begge kan bruges, men stiller forskellige krav til idempotency og fejlhåndtering.

Ikke helt. IaC håndterer ofte ressourcers livscyklus, mens konfigurationsstyring typisk ændrer operativsystem og software på eksisterende maskiner. Områderne kan overlappe.

Nej. Den tidligere definition skal planlægges og anvendes igen. Nogle ændringer kræver erstatning eller har irreversible dataeffekter, så den nye plan skal gennemgås.

Nogle værktøjer gemmer metadata, der forbinder definitioner med faktiske objekter. State kan være følsom og skal beskyttes, deles kontrolleret og låses mod samtidige ændringer.


Andre begreber