Feature flags og gradvise udrulninger
Adskil deployment fra release med feature flags, eksponér derefter ny funktionalitet gradvist, og slå den straks fra, hvis noget går galt.
Feature flags og gradvise udrulninger er en gratis CI/CD med GitHub Actions og DevOps-arbejdsgange-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 CI/CD med GitHub Actions og DevOps-arbejdsgange, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. CI/CD med GitHub Actions og DevOps-arbejdsgange-kurset indeholder 4 lektioner i alt.
Udrulning kontra udgivelse
En vigtig idé inden for avanceret levering er, at udrulning af kode og udgivelse af en funktion ikke er det samme.
Funktionsflag lader dig levere kode til produktion, men holde en funktion slået fra, indtil du beslutter at aktivere den for nogle eller alle brugere.
Hvad er et funktionsflag
Et funktionsflag (eller en til/fra-kontakt) er en betingelse i din kode, der kontrollerer en konfigurationsværdi for at afgøre, om en kodesti skal køre.
if (flags.isEnabled('new-checkout')) {
renderNewCheckout();
} else {
renderOldCheckout();
}Hvorfor flag slår forgreninger
Langlivede funktionsgrene fører til besværlige fletninger. Flag lader dig løbende flette små ændringer ind i main, mens funktionen forbliver skjult.
- Mindre og sikrere fletteanmodninger
- Stammebaseret udvikling
- Øjeblikkelig aktivering og deaktivering uden en ny udrulning
Flagtyper
Flag tjener forskellige formål:
- Udgivelsesflag — skjuler ufærdigt arbejde
- Driftsflag — nødafbrydere til risikable systemer
- Eksperimentflag — A/B-test
- Adgangsflag — giver brugere med premiumadgang rettigheder
Når du kender typen, er det lettere at beslutte flagets levetid.
Målretningsregler
Flagplatforme lader dig målrette, hvem der ser en funktion: efter bruger-id, gruppe, region eller procentdel.
Det muliggør en gradvis udrulning styret af konfiguration i stedet for udrulning af ny infrastruktur.
Procentvise udrulninger
Et almindeligt mønster er først at aktivere et flag for en lille procentdel af brugerne og derefter øge andelen: 1 %, så 10 %, så 50 % og til sidst 100 %.
I modsætning til en canary-udrulning, der opdeler trafikken på infrastrukturniveau, er dette en logisk udrulning, der styres i kodekonfigurationen.
// Pseudo targeting config
flag: new-checkout
rollout:
percentage: 10
attribute: userIdNødafbrydere
Den største driftsmæssige fordel er, at hvis en flagstyret funktion opfører sig forkert, kan du straks slå den fra uden at udrulle en tilbagerulning.
Det forkorter den gennemsnitlige gendannelsestid markant sammenlignet med at tilbageføre kode og udrulle den igen.
Flag i leveringsforløbet
Du kan integrere ændringer af flag i CI/CD. Et trin i en arbejdsgang kan f.eks. aktivere et flag efter en vellykket udrulning eller planlægge en gradvis optrapning.
- name: Enable feature
run: |
curl -X PATCH https://flags.example.com/api/flags/new-checkout \
-H "Authorization: Bearer ${{ secrets.FLAG_TOKEN }}" \
-d '{"enabled": true}'Deaktiveret som standard og fejlsikkert
Udform altid flag, så de fejler sikkert: Hvis flagtjenesten ikke kan nås, skal koden falde tilbage til den kendte, velfungerende standardværdi, som normalt er deaktiveret.
Et funktionsflag må aldrig blive et enkelt fejlpunkt.
const enabled = flags.isEnabled('new-checkout', { default: false });Oprydning i flag
Flag opretter forgrenede kodestier. Forældede flag bliver til teknisk gæld og gør det sværere for læserne at forstå koden.
Når et udgivelsesflag er rullet helt ud og er stabilt, skal du fjerne det og slette den gamle kodesti. Følg bevidst flagets levetid.
Flag plus udrulningsmønstre
Funktionsflag supplerer blue/green- og canary-udrulninger. Infrastrukturelle mønstre flytter trafik; flag flytter funktionalitet.
Ved at bruge begge dele får du den sikrest mulige udgivelse: Udrul ubemærket, vis derefter funktionen gradvist, og slå den straks fra, hvis det er nødvendigt.
Hurtig kontrol
Test din forståelse af funktionsflag.
Opsummering
Du har lært at adskille udrulning fra udgivelse med funktionsflag.
- Flag skjuler kode bag en konfigurationsstyret betingelse
- Målretning muliggør gradvise procentvise udrulninger
- Nødafbrydere giver øjeblikkelig gendannelse uden ny udrulning
- Udform flag, så de fejler sikkert, og ryd op i dem for at undgå gæld
Sammen med blue/green- og canary-udrulninger udgør flag den komplette værktøjskasse til avanceret levering.
Lær CI/CD med GitHub Actions og DevOps-arbejdsgange 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 “Feature flags og gradvise udrulninger” gratis?
Ja — hele teksten til “Feature flags og gradvise udrulninger” 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 CI/CD med GitHub Actions og DevOps-arbejdsgange-kurset, skal du opgradere til CoddyKit PRO. CI/CD med GitHub Actions og DevOps-arbejdsgange-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “Feature flags og gradvise udrulninger”?
Adskil deployment fra release med feature flags, eksponér derefter ny funktionalitet gradvist, og slå den straks fra, hvis noget går galt. Du øver dig i CI/CD med GitHub Actions og DevOps-arbejdsgange 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å CI/CD med GitHub Actions og DevOps-arbejdsgange?
Der kræves ingen tidligere erfaring. CI/CD med GitHub Actions og DevOps-arbejdsgange 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 “Feature flags og gradvise udrulninger”?
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 CI/CD med GitHub Actions og DevOps-arbejdsgange-lektion?
Ja. Alle CI/CD med GitHub Actions og DevOps-arbejdsgange-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
- Blue/Green-deployments
- Canary-releases med Actions
- Rollbacks og disaster recovery
- Feature flags og gradvise udrulninger