Grunnleggende systemdesign for backendutviklere · leksjon

Infrastruktur som kode

Lær hvordan Infrastructure as Code lar Dem definere skyressurser deklarativt for repeterbar, versjonskontrollert og automatisert klargjøring.

Leksjon 4 av 413 trinn

Infrastruktur som kode er en gratis leksjon i Grunnleggende systemdesign for backendutviklere på CoddyKit. Dette er leksjon 4 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Grunnleggende systemdesign for backendutviklere, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Grunnleggende systemdesign for backendutviklere inneholder totalt 4 leksjoner.

Fra klikking til kode

Det er tregt, feilutsatt og umulig å reprodusere å klikke seg manuelt gjennom en sky-konsoll for å opprette servere og nettverk. Infrastructure as Code (IaC) definerer infrastrukturen i filer som kan versjoneres, gjennomgås og kjøres på nytt.

Hvorfor IaC er viktig

IaC bringer disiplin fra programvareutvikling inn i infrastrukturen:

  • Versjonskontroll og kodegjennomgang av endringer
  • Reproduserbare miljøer (utvikling, staging og produksjon er identiske)
  • Automatisk, rask klargjøring og nedrigging
  • Infrastruktur som dokumenterer seg selv

Deklarativt kontra imperativt

IaC-verktøy er vanligvis deklarative: De beskriver den ønskede slutt-tilstanden, og verktøyet finner ut hvordan den skal oppnås. Imperative skript lister i stedet opp de nøyaktige trinnene. Deklarativ kode er enklere å forstå og få til å konvergere mot ønsket tilstand.

En deklarativ ressurs

Her er en deklarativ definisjon av en virtuell maskin. De angir hva som skal finnes; verktøyet oppretter eller oppdaterer den slik at den samsvarer.

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

Idempotens

En sentral egenskap ved IaC er idempotens: Hvis den samme definisjonen brukes gjentatte ganger, blir resultatet det samme. Hvis ressursen allerede samsvarer, endres ingenting. Dette gjør det trygt å kjøre på nytt.

Tilstand og avvik

Mange verktøy sporer en tilstand for det de administrerer. Når virkeligheten avviker – fordi noen endrer en ressurs manuelt – kalles dette avvik. Verktøyet oppdager avviket og kan bringe infrastrukturen tilbake i samsvar med den deklarerte definisjonen.

Planlegg før bruk

Gode IaC-arbeidsflyter forhåndsviser endringer før de tas i bruk. Et plan-trinn viser nøyaktig hva som skal opprettes, endres eller slettes, slik at De oppdager en destruktiv endring i gjennomgangen i stedet for i produksjon.

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

Klargjøring kontra konfigurasjon

To beslektede, men ulike oppgaver:

  • Klargjøring oppretter infrastruktur (Terraform, CloudFormation, Pulumi)
  • Konfigurasjonsstyring setter opp programvare på eksisterende maskiner (Ansible, Chef, Puppet)

Containere og uforanderlige avbildninger gjør skillet mindre tydelig.

Moduler og gjenbruk

Unngå kopiering og innliming ved å pakke infrastrukturen i gjenbrukbare moduler med inndatavariabler. Én godt testet modul kan opprette identiske, parameteriserte miljøer for mange team.

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

IaC og skybasert CI/CD

IaC passer naturlig inn i pipelines: En commit utløser en plan, en gjennomgang godkjenner den, og pipelinen tar den i bruk. Kombinert med containere og Kubernetes-manifester blir hele stakken – nettverk, klynge og apper – reproduserbar fra kode.

Beste praksis

Hold IaC sunn: Lagre tilstanden eksternt og låst, hardkod aldri hemmeligheter, gjennomgå hver plan, hold modulene små, og behandle infrastrukturkode på nøyaktig samme måte som applikasjonskode – med testing og gjennomgang.

Kort kontroll

Test forståelsen Deres av Infrastructure as Code.

Oppsummering

De har lært grunnlaget for Infrastructure as Code:

  • Deklarative definisjoner beskriver ønsket tilstand på en idempotent måte
  • Tilstandssporing oppdager og korrigerer avvik
  • Planlegg før endringer tas i bruk, slik at de kan forhåndsvises trygt
  • Moduler muliggjør gjenbruk; IaC integreres i CI/CD-pipelines
Gratis å komme i gang

Lær deg Grunnleggende systemdesign for backendutviklere med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
12
Leksjoner
48

Ofte stilte spørsmål

Er leksjonen «Infrastruktur som kode» gratis?

Ja – hele teksten i «Infrastruktur som kode» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Grunnleggende systemdesign for backendutviklere-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Grunnleggende systemdesign for backendutviklere inneholder totalt 4 leksjoner.

Hva lærer jeg i «Infrastruktur som kode»?

Lær hvordan Infrastructure as Code lar Dem definere skyressurser deklarativt for repeterbar, versjonskontrollert og automatisert klargjøring. Du øver på Grunnleggende systemdesign for backendutviklere med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med Grunnleggende systemdesign for backendutviklere?

Ingen tidligere erfaring er nødvendig. Grunnleggende systemdesign for backendutviklere på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 4 av 4.

Hvor lang tid tar leksjonen «Infrastruktur som kode»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne Grunnleggende systemdesign for backendutviklere-leksjonen?

Ja. Alle Grunnleggende systemdesign for backendutviklere-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. Serverløse arkitekturer
  2. Containerisering med Docker og K8s
  3. Observerbarhet og distribuert sporing
  4. Infrastruktur som kode
← Tilbake til Grunnleggende systemdesign for backendutviklere