Grunderna i systemdesign för backendutvecklare · Lektion

Infrastructure as Code

Lär dig hur Infrastructure as Code låter dig definiera molnresurser deklarativt för repeterbar, versionshanterad och automatiserad provisionering.

Lektion 4 av 413 steg

Infrastructure as Code är en gratis lektion i Grunderna i systemdesign för backendutvecklare på CoddyKit. Detta är lektion 4 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för Grunderna i systemdesign för backendutvecklare, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Grunderna i systemdesign för backendutvecklare innehåller totalt 4 lektioner.

Från klick till kod

Att manuellt klicka sig igenom en molnkonsol för att skapa servrar och nätverk är långsamt, felbenäget och omöjligt att reproducera. Infrastructure as Code (IaC) definierar infrastrukturen i filer som ni kan versionshantera, granska och köra om.

Varför IaC är viktigt

IaC tillför programvaruutvecklingens disciplin till infrastrukturen:

  • Versionshantering och kodgranskning av ändringar
  • Reproducerbara miljöer (utveckling, test och produktion är identiska)
  • Automatisk, snabb provisionering och nedmontering
  • Själdokumenterande infrastruktur

Deklarativt kontra imperativt

IaC-verktyg är vanligtvis deklarativa: ni beskriver det önskade sluttillståndet och verktyget räknar ut hur det ska uppnås. Imperativa skript listar i stället de exakta stegen. Deklarativa definitioner är enklare att resonera kring och att få att konvergera till rätt tillstånd.

En deklarativ resurs

Här är en deklarativ definition av en virtuell maskin. Ni anger vad som ska finnas; verktyget skapar eller uppdaterar den så att den motsvarar definitionen.

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

Idempotens

En central egenskap hos IaC är idempotens: om samma definition tillämpas upprepade gånger blir resultatet detsamma. Om resursen redan överensstämmer sker ingen ändring. Det gör det säkert att köra om definitionen.

Tillstånd och avvikelser

Många verktyg håller reda på ett tillstånd för det de hanterar. När verkligheten avviker — någon ändrar en resurs manuellt — kallas det en avvikelse. Verktyget upptäcker avvikelsen och kan återställa infrastrukturen så att den motsvarar den deklarerade definitionen.

Planera före tillämpning

Goda IaC-arbetsflöden förhandsvisar ändringar innan de tillämpas. Steget plan visar exakt vad som kommer att skapas, ändras eller förstöras, så att ni upptäcker en destruktiv ändring vid granskningen i stället för i produktionen.

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

Provisionering kontra konfiguration

Två närliggande men åtskilda uppgifter:

  • Provisionering skapar infrastruktur (Terraform, CloudFormation, Pulumi)
  • Konfigurationshantering installerar och konfigurerar programvara på befintliga maskiner (Ansible, Chef, Puppet)

Containrar och oföränderliga avbildningar gör gränsen mindre tydlig.

Moduler och återanvändning

Undvik att kopiera och klistra in genom att paketera infrastrukturen i återanvändbara moduler med indatavariabler. En vältestad modul kan skapa identiska, parameteriserade miljöer för många team.

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

IaC och molnbaserad CI/CD

IaC passar naturligt i pipelines: en incheckning utlöser en plan, en granskning godkänner den och pipelinen tillämpar den. Tillsammans med containrar och Kubernetes-manifest blir hela stacken — nätverk, kluster och appar — reproducerbar från kod.

Bästa praxis

Håll IaC välskött: lagra tillstånd på distans och lås det, hårdkoda aldrig hemligheter, granska varje plan, håll moduler små och behandla infrastrukturkod precis som applikationskod — den ska testas och granskas.

Snabb kontroll

Testa dina kunskaper om Infrastructure as Code.

Sammanfattning

Du har lärt dig grunderna i Infrastructure as Code:

  • Deklarativa definitioner beskriver det önskade tillståndet på ett idempotent sätt
  • Tillståndsspårning upptäcker och åtgärdar avvikelser
  • Planera före tillämpning för att förhandsvisa ändringar på ett säkert sätt
  • Moduler möjliggör återanvändning; IaC integreras i CI/CD-pipelines
Gratis att börja

Lär dig Grunderna i systemdesign för backendutvecklare med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
12
Lektioner
48

Vanliga frågor

Är lektionen ”Infrastructure as Code” gratis?

Ja – hela texten till ”Infrastructure as Code” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i Grunderna i systemdesign för backendutvecklare, kan Ni uppgradera till CoddyKit PRO. Kursen i Grunderna i systemdesign för backendutvecklare innehåller totalt 4 lektioner.

Vad lär jag mig i ”Infrastructure as Code”?

Lär dig hur Infrastructure as Code låter dig definiera molnresurser deklarativt för repeterbar, versionshanterad och automatiserad provisionering. Ni övar på Grunderna i systemdesign för backendutvecklare med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig Grunderna i systemdesign för backendutvecklare?

Du behöver inga förkunskaper. Utbildningen i Grunderna i systemdesign för backendutvecklare på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 4 av 4.

Hur lång tid tar lektionen ”Infrastructure as Code”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här Grunderna i systemdesign för backendutvecklare-lektionen?

Ja. Varje Grunderna i systemdesign för backendutvecklare-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Serverlösa arkitekturer
  2. Containerisering med Docker och K8s
  3. Observerbarhet och distribuerad spårning
  4. Infrastructure as Code
← Tillbaka till Grunderna i systemdesign för backendutvecklare