<EbeneX/>
DevOps Web · Updated 19. Februar 2026

Feature Flags

Definition

Konfigurationsschalter, die es ermöglichen, Features im laufenden Betrieb ein- und auszuschalten – ohne neues Deployment. Ermöglichen Canary Releases, A/B-Tests und sofortige Rollbacks.

Fortgeschritten 2 Min. Lesezeit EN: Feature Flags (Feature Toggles)

Einfach erklärt

Traditionelles Deployment: Code schreiben → mergen → deployen → Feature ist live. Wenn etwas schiefläuft, braucht man einen Hotfix und ein neues Deployment – das dauert.

Feature Flags trennen Deployment von Release: Der Code wird deployt, aber das Feature ist zunächst deaktiviert. Wenn alles bereit ist, wird der Flag umgelegt – in Sekunden, ohne Deployment. Bei Problemen: Flag zurückschalten, sofort.

Deployment vs. Release:

Ohne Feature Flags:
  Code fertig → Deploy → Feature live (alles auf einmal)

Mit Feature Flags:
  Code fertig → Deploy (Flag = off) → Testen → Flag = on für 5% → Flag = on für 100%

Flag-Typen:

TypLebensdauerBeispiel
Release FlagKurzfristigNeues Dashboard ausrollen
Experiment FlagKurzfristigA/B-Test Prompt-Varianten
Ops FlagMittelfristigCache aktivieren/deaktivieren
Kill SwitchLangfristigNotfall-Deaktivierung
Permission FlagLangfristigBeta-Nutzer-Zugang

Technischer Deep Dive

Einfache Implementierung

// flags.ts
const flags = await fetchFlags(userId);

if (flags.isEnabled('new-llm-model')) {
  return await callGPT4o(prompt);
} else {
  return await callGPT4oMini(prompt);
}

LaunchDarkly – Targeting

import * as LaunchDarkly from '@launchdarkly/node-server-sdk';

const client = LaunchDarkly.init(process.env.LD_SDK_KEY);
await client.waitForInitialization();

const user = {
  key: userId,
  email: userEmail,
  custom: { plan: 'pro', region: 'eu' },
};

// Flag mit Targeting: nur Pro-Nutzer in EU
const useNewModel = await client.variation('new-llm-model', user, false);

if (useNewModel) {
  return await callNewModel(prompt);
}

Unleash (Open Source, selbst gehostet)

from UnleashClient import UnleashClient

client = UnleashClient(
    url="https://unleash.example.com/api",
    app_name="ki-assistent",
    custom_headers={"Authorization": "Bearer <token>"},
)
client.initialize_client()

if client.is_enabled("new-rag-pipeline", {"userId": user_id}):
    result = new_rag_pipeline(query)
else:
    result = legacy_rag_pipeline(query)

Gradual Rollout

// 10% der Nutzer bekommen das neue Feature
const rolloutConfig = {
  flagKey: 'new-chat-ui',
  percentage: 10,          // Woche 1
  // percentage: 50,       // Woche 2
  // percentage: 100,      // Woche 3 – vollständiger Rollout
};

Feature Flags sind wie Lichtschalter in einem Haus: Das Kabel (Code) ist bereits verlegt, aber das Licht (Feature) geht erst an, wenn du den Schalter umlegt. Du kannst einzelne Zimmer beleuchten, ohne das ganze Haus neu zu verdrahten.

Features können im laufenden Betrieb aktiviert/deaktiviert werden – kein Deployment nötig

Ermöglichen Trunk-Based Development: Code wird gemergt, aber noch nicht aktiviert

Basis für Canary Releases, A/B-Tests und sofortige Rollbacks

Canary Release

Neues KI-Modell zunächst nur für 5% der Nutzer aktivieren – bei Problemen sofort zurückschalten

A/B-Testing

Zwei Prompt-Varianten für verschiedene Nutzergruppen testen ohne Deployment

Notfall-Rollback

Fehlerhaftes Feature in Sekunden deaktivieren – ohne Hotfix und Deployment

Beta-Programme

Neue Features nur für ausgewählte Nutzer oder Teams freischalten

Was ist der Unterschied zwischen Feature Flags und Environment Variables?

Environment Variables werden beim Start der Anwendung gesetzt und erfordern einen Neustart zum Ändern. Feature Flags können zur Laufzeit geändert werden – ohne Deployment oder Neustart. Außerdem unterstützen Feature Flags Targeting (nur für bestimmte Nutzer aktivieren), was Environment Variables nicht können.

Wie verhindere ich, dass Feature Flags zur technischen Schuld werden?

Feature Flags sollten temporär sein. Jedes Flag bekommt ein Ablaufdatum. Nach dem vollständigen Rollout wird der Flag-Code entfernt. Ein Flag-Inventar mit Eigentümer und geplantem Entfernungsdatum hilft. Langlebige Flags (Kill Switches, Ops Flags) sind Ausnahmen und sollten explizit als solche markiert sein.

Was sind die verschiedenen Typen von Feature Flags?

Release Flags: Neues Feature schrittweise ausrollen. Experiment Flags: A/B-Tests. Ops Flags: System-Verhalten steuern (z. B. Cache aktivieren). Permission Flags: Features für bestimmte Nutzergruppen. Kill Switch: Feature bei Problemen sofort deaktivieren.

Dein persönliches Share-Bild für Instagram – 1080×1080px, bereit zum Posten.