Grundlæggende systemdesign for backendudviklere · Lektion

Infrastruktur som kode

Lær, hvordan Infrastructure as Code lader Dem definere cloud-ressourcer deklarativt, så provisionering bliver gentagelig, versionsstyret og automatiseret.

Lektion 4 af 413 trin

Infrastruktur som kode er en gratis Grundlæggende systemdesign for backendudviklere-lektion på CoddyKit. Dette er lektion 4 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i Grundlæggende systemdesign for backendudviklere, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Grundlæggende systemdesign for backendudviklere-kurset indeholder 4 lektioner i alt.

Fra klik til kode

Det er langsomt, fejlbehæftet og umuligt at reproducere manuelt at klikke sig gennem en cloudkonsol for at oprette servere og netværk. Infrastruktur som kode (IaC) definerer din infrastruktur i filer, som du kan versionsstyre, gennemgå og køre igen.

Hvorfor IaC er vigtigt

IaC bringer softwareudviklingens disciplin til infrastrukturen:

  • Versionsstyring og kodegennemgang af ændringer
  • Reproducerbare miljøer (udvikling, staging og produktion er identiske)
  • Automatisk, hurtig klargøring og nedtagning
  • Selvdokumenterende infrastruktur

Deklarativ versus imperativ

IaC-værktøjer er normalt deklarative: du beskriver den ønskede sluttilstand, og værktøjet finder ud af, hvordan den opnås. Imperative scripts angiver i stedet de præcise trin. Deklarativ kode er lettere at forstå og få til at konvergere.

En deklarativ ressource

Her er en deklarativ definition af en virtuel maskine. Du angiver, hvad der skal eksistere; værktøjet opretter eller opdaterer den, så den matcher.

resource "aws_instance" "web" {
  ami           = "ami-123456"
  instance_type = "t3.micro"
  tags = {
    Name = "web-server"
  }
}

Idempotens

En grundlæggende egenskab ved IaC er idempotens: Hvis du anvender den samme definition gentagne gange, får du det samme resultat. Hvis ressourcen allerede matcher, ændres intet. Det gør det sikkert at køre igen.

Tilstand og afvigelser

Mange værktøjer holder styr på en tilstand for det, de administrerer. Når virkeligheden afviger — nogen ændrer en ressource manuelt — er det en afvigelse. Værktøjet registrerer afvigelsen og kan bringe infrastrukturen tilbage til den deklarerede definition.

Planlæg før anvendelse

Gode IaC-arbejdsgange viser ændringerne, før de anvendes. Et plan-trin viser præcis, hvad der bliver oprettet, ændret eller ødelagt, så du opdager en destruktiv ændring i gennemgangen i stedet for i produktionen.

$ terraform plan
  + aws_instance.web will be created
  ~ aws_security_group.sg will be updated
  - aws_instance.old will be destroyed

Klargøring versus konfiguration

To beslægtede, men forskellige opgaver:

  • Klargøring opretter infrastruktur (Terraform, CloudFormation, Pulumi)
  • Konfigurationsstyring opsætter software på eksisterende maskiner (Ansible, Chef, Puppet)

Containere og uforanderlige images udvisker denne grænse.

Moduler og genbrug

Undgå copy-paste ved at samle infrastrukturen i genbrugelige moduler med inputvariabler. Ét gennemtestet modul kan oprette identiske, parameteriserede miljøer for mange teams.

module "web" {
  source        = "./modules/app"
  instance_type = "t3.small"
  env           = "production"
}

IaC og cloud-native CI/CD

IaC passer naturligt ind i pipelines: en commit udløser en plan, en gennemgang godkender den, og pipelinen anvender den. Kombineret med containere og Kubernetes-manifester bliver hele stakken — netværk, klynge og apps — reproducerbar fra kode.

Bedste praksis

Hold IaC sund: gem tilstanden eksternt og låst, hardcod aldrig hemmeligheder, gennemgå hver plan, hold moduler små, og behandl infrastrukturkode præcis som applikationskode — testet og gennemgået.

Hurtigt tjek

Test din forståelse af infrastruktur som kode.

Opsamling

Du har lært grundlaget for infrastruktur som kode:

  • Deklarative definitioner beskriver den ønskede tilstand idempotent
  • Tilstandssporing registrerer og afhjælper afvigelser
  • Planlæg før anvendelse for at se ændringer sikkert på forhånd
  • Moduler muliggør genbrug; IaC integreres i CI/CD-pipelines
Gratis at komme i gang

Lær Grundlæggende systemdesign for backendudviklere med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
12
Lektioner
48

Ofte stillede spørgsmål

Er lektionen “Infrastruktur som kode” gratis?

Ja — hele teksten til “Infrastruktur som kode” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af Grundlæggende systemdesign for backendudviklere-kurset, skal du opgradere til CoddyKit PRO. Grundlæggende systemdesign for backendudviklere-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Infrastruktur som kode”?

Lær, hvordan Infrastructure as Code lader Dem definere cloud-ressourcer deklarativt, så provisionering bliver gentagelig, versionsstyret og automatiseret. Du øver dig i Grundlæggende systemdesign for backendudviklere med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på Grundlæggende systemdesign for backendudviklere?

Der kræves ingen tidligere erfaring. Grundlæggende systemdesign for backendudviklere på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 4 af 4.

Hvor lang tid tager lektionen “Infrastruktur som kode”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne Grundlæggende systemdesign for backendudviklere-lektion?

Ja. Alle Grundlæggende systemdesign for backendudviklere-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Serverless-arkitekturer
  2. Containerisering med Docker og K8s
  3. Observability og distribueret tracing
  4. Infrastruktur som kode
← Tilbage til Grundlæggende systemdesign for backendudviklere