CI/CD med GitHub Actions og DevOps-pipelines · leksjon

Blue/Green-distribusjoner

Sett opp Blue/Green-distribusjonsstrategier med GitHub Actions for å minimere nedetid og legge til rette for raske tilbakerullinger.

Leksjon 1 av 412 trinn

Blue/Green-distribusjoner er en gratis leksjon i CI/CD med GitHub Actions og DevOps-pipelines på CoddyKit. Dette er leksjon 1 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 CI/CD med GitHub Actions og DevOps-pipelines, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i CI/CD med GitHub Actions og DevOps-pipelines inneholder totalt 4 leksjoner.

Hva er blå/grønn-distribusjon?

Velkommen! I denne leksjonen skal vi se nærmere på blå/grønn-distribusjoner, en kraftig strategi for lansering av ny programvare.

Strategien er utviklet for å minimere nedetid og risiko under distribusjoner, slik at brukerne alltid får en god opplevelse.

Forstå blå og grønn

Se for Dem at De har to identiske produksjonsmiljøer: ett som kalles «blått», og et annet som kalles «grønt».

  • Blått: Dette er det aktive produksjonsmiljøet som betjener all brukertrafikk.
  • Grønt: Dette er et inaktivt, identisk miljø som brukes til å distribuere og teste nye versjoner.

Slik fungerer blå/grønn

Prosessen er enkel, men effektiv:

  1. Distribuer den nye applikasjonsversjonen til det grønne (inaktive) miljøet.
  2. Test den nye versjonen grundig i det grønne miljøet.
  3. Når De er trygg på resultatet, flytter De all brukertrafikk fra blått til grønt.
  4. Det gamle blå miljøet er nå inaktivt og kan beholdes for raske tilbakeføringer eller oppdateringer.

Hvorfor bruke blå/grønn?

Denne strategien gir betydelige fordeler:

  • Ingen nedetid: Brukerne bytter sømløst til den nye versjonen uten avbrudd.
  • Umiddelbar tilbakeføring: Hvis det oppstår problemer, kan De ganske enkelt flytte trafikken tilbake til det stabile blå miljøet.
  • Redusert risiko: Test nye versjoner i et produksjonslignende miljø før de gjøres tilgjengelige.

Dette trenger De

For å implementere blå/grønn trenger De vanligvis:

  • Lastbalanserer: For å dirigere trafikken til enten det blå eller det grønne miljøet.
  • To identiske miljøer: Ofte skybaserte, slik at konsistens sikres.
  • Automatiseringsverktøy: For eksempel GitHub Actions, til å administrere distribusjoner og bytte av trafikk.

Orkestrering med GitHub Actions

GitHub Actions kan automatisere hvert trinn i blå/grønn-distribusjonen.

De kan definere arbeidsflyter for å:

  • Bygge og distribuere til det inaktive miljøet.
  • Kjøre automatiserte tester mot den nye distribusjonen.
  • Utløse bytte av trafikk via API-et til lastbalansereren eller et skript.

Distribuere den nye versjonen

Her er et forenklet GitHub Actions-utdrag for distribusjon av den nye appversjonen til det «grønne» miljøet. Legg merke til bruken av et environment-navn.

name: Deploy to Green

on:
  push:
    branches:
      - main

jobs:
  deploy-green:
    runs-on: ubuntu-latest
    environment: Green # Target the Green environment
    steps:
      - name: Checkout code
        uses: actions/checkout@v4
      - name: Deploy app to Green
        run: |
          echo "Deploying application version ${{ github.sha }} to Green environment..."
          # Your actual deployment commands go here
          # e.g., deploy to a specific AWS EC2 instance or Kubernetes namespace

Bytte trafikken

Etter vellykket distribusjon og testing er det siste trinnet å bytte trafikken. Dette innebærer ofte å oppdatere en lastbalanserer eller en DNS-post.

Her er et konseptuelt GitHub Actions-trinn som kan utløse dette byttet:

name: Switch Traffic to Green

on:
  workflow_dispatch: # Manual trigger for traffic switch

jobs:
  switch-traffic:
    runs-on: ubuntu-latest
    steps:
      - name: Update Load Balancer to Green
        run: |
          echo "Switching load balancer traffic to Green environment..."
          # Call your load balancer's API or a script here
          # e.g., aws elbv2 modify-target-group-attributes ...
          # or kubectl apply -f green-ingress.yaml

Umiddelbare tilbakeføringer

Hva om De bytter trafikken til grønt, og det oppstår en kritisk feil?

Med blå/grønn er tilbakeføringen umiddelbar! De bytter ganske enkelt lastbalansererens trafikk tilbake til det opprinnelige, stabile blå miljøet.

Dette reduserer konsekvensene av hendelser og gjenopprettingstiden betydelig.

Viktige hensyn

Selv om blå/grønn er kraftig, finnes det noen hensyn å ta:

  • Duplisering av ressurser: De kjører to komplette miljøer, noe som kan doble infrastrukturkostnadene.
  • Databasemigreringer: Håndtering av databaseendringer kan være komplekst, siden både blått og grønt kan trenge tilgang til samme datalager.
  • Tilstandsfulle apper: Applikasjoner med vedvarende tilstand krever nøye planlegging.

Quiz om blå/grønn-distribusjon

La oss kontrollere forståelsen Deres av blå/grønn-distribusjoner.

Oppsummering av leksjonen

Godt jobbet! De har lært om blå/grønn-distribusjoner.

  • Det brukes to identiske miljøer (blått og grønt) til å distribuere nye versjoner.
  • Det gir ingen nedetid og umiddelbare tilbakeføringer.
  • GitHub Actions kan automatisere distribusjonen og byttet av trafikk.
  • Husk å planlegge for ressurskostnader og databaseendringer!
Gratis å komme i gang

Lær deg CI/CD med GitHub Actions og DevOps-pipelines 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 «Blue/Green-distribusjoner» gratis?

Ja – hele teksten i «Blue/Green-distribusjoner» 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 CI/CD med GitHub Actions og DevOps-pipelines-kurset, kan du oppgradere til CoddyKit PRO. Kurset i CI/CD med GitHub Actions og DevOps-pipelines inneholder totalt 4 leksjoner.

Hva lærer jeg i «Blue/Green-distribusjoner»?

Sett opp Blue/Green-distribusjonsstrategier med GitHub Actions for å minimere nedetid og legge til rette for raske tilbakerullinger. Du øver på CI/CD med GitHub Actions og DevOps-pipelines 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 CI/CD med GitHub Actions og DevOps-pipelines?

Ingen tidligere erfaring er nødvendig. CI/CD med GitHub Actions og DevOps-pipelines 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 1 av 4.

Hvor lang tid tar leksjonen «Blue/Green-distribusjoner»?

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 CI/CD med GitHub Actions og DevOps-pipelines-leksjonen?

Ja. Alle CI/CD med GitHub Actions og DevOps-pipelines-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. Blue/Green-distribusjoner
  2. Canary-utgivelser med Actions
  3. Tilbakerullinger og katastrofegjenoppretting
  4. Feature flags og progressive utrullinger
← Tilbake til CI/CD med GitHub Actions og DevOps-pipelines