Mr.PlanB Logo

    Newsletter

    Newsletter abonnieren

    Neue Infrastruktur-Guides, Vergleichsberichte und Migrationshinweise direkt ins Postfach.

    Infrastruktur-Notizen, Guides und neue Tools. Jederzeit abbestellbar.

    Zurück zum Blog
    YAML
    CUE
    Kubernetes
    DevOps
    Configuration

    CUE, Kyaml und der Kampf, YAML zu reparieren: Entwickler haben genug davon

    15. März 2025
    5 Min. Lesezeit

    YAML mag in der Kubernetes-Welt noch der Standard sein, aber unter den Engineers an der Front zeichnet sich ein klarer Stimmungswandel ab: Die Liebesbeziehung ist vorbei. Klar, YAML-Dateien sind überall, sie definieren Deployments, verwalten Secrets und orchestrieren CI/CD-Pipelines. Hinter dieser ruhigen, einrückungsempfindlichen Oberfläche wächst aber der Frust. YAML ist zerbrechlich, unberechenbar und in komplexen Systemen geradezu riskant.

    Die gute Nachricht ist, dass es eine Welle von Tools gibt, die versuchen, YAML zu reparieren, ohne es komplett über Bord zu werfen. Willkommen CUE, Kyaml, Jsonnet und eine wachsende Zahl von Alternativen, die Entwicklern dringend benötigten Freiraum verschaffen wollen.

    Schauen wir uns an, warum YAMLs Herrschaft infrage gestellt wird und wie diese neue Generation von Tools die Spielregeln auf den Kopf stellt.

    YAML, das notwendige Übel

    Fragen Sie einen beliebigen DevOps-Engineer, und er wird Ihnen sagen: YAML betreibt nicht die Infrastruktur, aber es konfiguriert mit Sicherheit den Großteil davon. Von Kubernetes-Manifesten bis zu GitHub Actions ist YAML zum universellen Klebeband der deklarativen Konfiguration geworden. Dafür war es nie gebaut.

    Es ist empfindlich gegenüber Leerzeichen, und eine falsche Einrückung steckt Sie mitten in den Debugging-Ärger. Es fehlt an nativer Validierung oder Typprüfung, weshalb Sie den Tippfehler in Ihrer Config erst merken, wenn etwas kaputtgeht. Es ist nicht DRY, Wiederholung ist allgegenwärtig, und Config wiederzuverwenden gelingt nur mit viel Glück. Und es ist nicht modular: Logik über Services oder Umgebungen hinweg aufzuteilen, ist ein Flickwerk aus Skripten, Templates und Wunschdenken.

    Das sind keine kleinen Ärgernisse, das sind systemische Kopfschmerzen für Teams, die Dutzende Microservices über mehrere Umgebungen hinweg verwalten.

    Die CUE-Revolution: strukturiert, validiert und tatsächlich nutzbar

    CUE (kurz für Configure, Unify, Execute) versucht nicht, YAML 2.0 zu sein, es ist ein völlig neues Paradigma. Man kann es sich als Superset deklarativer Konfiguration vorstellen, das YAML wie einen Bürger zweiter Klasse behandelt, und das ist positiv gemeint.

    Ein Entwickler im Thread brachte es unverblümt auf den Punkt: „Nur eine Datei ändern zu können, um die Config für eine ganze Menge Services zu aktualisieren, mit minimalen Nebeneffekten, alles getestet, das hat mein Leben komplett verändert."

    Das bringt CUE auf den Tisch. Validierung ist eingebaut, Sie definieren Schemas und Werte gemeinsam, ohne separaten Linter oder Pipeline-Schritt. Die Config ist modular, Sie kombinieren sie über Dateien und Verzeichnisse hinweg ohne Hacks. Die Transformationen sind typsicher, YAML oder JSON entstehen zuverlässig statt als kaputter Output. Und Testing ist integriert, Sie können Ihre Configs kompilieren und validieren, bevor sie überhaupt einen Cluster erreichen.

    Dazu ist CUE wirklich schnell. Teams, die es in Produktion einsetzen, berichten, dass sie Config-Bugs massiv reduziert und ihren Verstand zurückgewonnen haben.

    Kyaml: YAML, nur irgendwie sauberer

    Wenn CUE die mutige neue Welt ist, dann ist Kyaml der Minimalist, der versucht, YAML weniger nervig zu machen. Es umhüllt YAML mit einer Struktur, die tatsächlich wartbar ist, und ergänzt strukturierte Kommentare, programmatische Änderungen und schema-bewusste Validierung.

    Kyaml behält die YAML-Syntax bei, ergänzt aber Tooling, damit es sich nicht anfühlt, als würde man Code in einem Minenfeld schreiben. Für Entwickler, die nah am nativen Kubernetes-Ökosystem bleiben wollen, spielt es gut mit Kustomize und anderen CNCF-Tools zusammen.

    Manche Engineers bleiben allerdings skeptisch. „Nur JSON in YAML-Syntax", wie es ein Nutzer formulierte. Die Stimmung dahinter: Wenn man YAML sowieso neu erfindet, warum es dann nicht gleich ersetzen?

    Jsonnet, Dhall, KDL und die No-YAML-Bewegung

    Manche Entwickler interessieren sich nicht für Reparaturen, sie wollen raus, und zwar ganz. Sie wenden sich Tools zu wie diesen:

    Jsonnet kann man sich als JSON mit Funktionen, Bedingungen und Vererbung vorstellen. Viele Teams nutzen es, um YAML-Templates sauber zu generieren.

    Dhall ist ein komplettes Umdenken bei Konfiguration: getypt, programmierbar und streng validiert.

    KDL (KDL.dev) ist ein neues strukturiertes Markup, das sich eher wie Markdown liest und weniger wie XML oder YAML. Es ist sauber, lesbar und modern.

    NoYAML ist, ja, eine echte Website, und der Name sagt eigentlich schon alles.

    Diese Tools bieten vor allem Struktur. YAML wurde für Menschenlesbarkeit gebaut, aber in großem Maßstab wird aus menschenlesbar schnell menschenfehleranfällig.

    GitHub Actions, CloudFormation und die größten Übeltäter

    Entwickler scheuten sich nicht, konkrete Tools zu benennen, die YAML an seine Grenzen gebracht haben.

    „Die Leute, die GitHub Actions entworfen haben, scheinen tatsächlich zu glauben, YAML sei eine Programmiersprache."

    „Ich schau dich an, CloudFormation."

    Diese Tools nutzen YAML für alles von Bedingungen über Schleifen bis zu Variablensubstitution, also für Dinge, für die YAML nie gedacht war. Es wird zu einer Art Pseudo-Programmiersprache, ohne die Vorteile echter Programmiersprachen wie Linting, Typisierung oder Komponierbarkeit. Es überrascht nicht, dass Infrastruktur-Engineers dagegenhalten.

    KI und YAML, eine Hassliebe

    Eine unerwartete Wendung: KI-Modelle, einschließlich GPT-basierter Tools, sind überraschend gut darin, YAML zu generieren. Das liegt daran, dass die Struktur von YAML, einmal verstanden, extrem musterbasiert ist.

    Ein Entwickler merkte sogar an, dass die Einbindung von Kompilierungsschritten über CUE oder Ähnliches KI-generierte Configs in manchen Umgebungen zuverlässiger macht als handgeschriebene. Mit den richtigen Schemas und Validierungsebenen wird KI weniger zum Risiko und mehr zum Mitstreiter.

    YAML bekommt damit keinen Freifahrtschein, aber die nächste Phase des Config-Toolings bezieht KI wahrscheinlich mit ein, ob es uns gefällt oder nicht.

    Also, ist YAML tot?

    Noch nicht. Ob gut oder schlecht, YAML ist immer noch überall. Es steckt fest in CI/CD-Pipelines, Terraform-Wrappern, Kubernetes-CRDs, Helm-Charts und mehr, und es zu ersetzen wird nicht leicht.

    Die wachsende Unzufriedenheit ist aber real, und das Tooling, um dem zu entkommen oder es zumindest besser zu handhaben, ist da und wird jeden Monat leistungsfähiger. CUE, Kyaml, Jsonnet und Dhall sind längst keine Nischen-Tools mehr, sie sind Überlebenspakete für moderne Infrastruktur.

    YAML wird also nicht von heute auf morgen verschwinden. Wer komplexe Systeme baut oder pflegt, hat aber jetzt bessere Optionen, und zwar solche, die Ihre Config als Code behandeln, der es wert ist, gut engineert zu werden. Und wenn YAML im Spiel bleiben will, muss es noch ordentlich erwachsen werden.