Blog

$ cat GITLAB .md
· 6 Min. Lesezeit

Die Registry antwortete in 45 Millisekunden. Der Build brauchte zwei Minuten länger.

Nach einer Server-Migration wurden Builds gegen eine selbst gehostete Paket-Registry zwei Minuten langsamer, und alle Berichte zeigten auf den Umzug. Jede fehlschlagende Anfrage war ein 500 nach 45 Millisekunden; die gesamte Regression war npms Retry-Backoff. Die Ursache war eine Zeile von 63.000, die noch auf einen Objektspeicher zeigte, den es nicht mehr gab, und der genau dafür geschriebene Check iterierte eine handgeschriebene Tabellenliste und übersah sie.

gitlab debugging migration reliability observability
$ cat AI .md
· 9 Min. Lesezeit

Opus 5.5 schlägt Fable 5.1 für 40% des Preises. Lies die Benchmark-Tabelle zweimal.

Anthropic hat heute Opus 5.5 für $4/$20 pro Million Tokens ausgeliefert, und die eigene Tabelle sieht es beim agentischen Coding vor Fable 5.1 und GPT-6 Astra. Die unabhängigen Zahlen fallen kleiner aus, die Code-Qualitäts-Zahlen sind gemischt, und Thinking lässt sich nicht mehr abschalten. Sonnet 5.5 ist noch nicht draußen.

ai llm anthropic claude opus benchmarks
$ cat GIT .md
· 7 Min. Lesezeit

84 Repositories verschwanden. Der Fix war mkdir.

S3 kennt keine leeren Verzeichnisse, und in einem vollständig gepackten git-Repository sind die refs-Verzeichnisse genau das: leer. Eine Datei-für-Datei-Sync hat jedes Objekt intakt übertragen und die zwei Verzeichnisse fallen gelassen, die git braucht, um etwas ein Repository zu nennen, also kamen 84 von 517 unlesbar zurück, während die Datenbank weiterhin Commits für sie verzeichnete. Die Health Checks der Migration blieben die ganze Zeit grün, weil keiner von ihnen je ein Repository öffnet.

git aws s3 gitlab mechanism
$ cat KUBERNETES .md
· 7 Min. Lesezeit

Die Constraint war erfüllt. Die Zone war trotzdem leer.

Eine topologySpreadConstraint ist immer nur eine Aussage über die Population, die ihr Selector matcht, und ein vom Operator gesetztes Label kann verwandte Deployments unbemerkt in eine gemeinsame Zählung zusammenfassen. Drei Collector erfüllten jeder für sich ihre harte Zonen-Spread, während ihre Vereinigung eine Zone leer ließ, und die Standard-Reparatur konvergierte jedes Mal auf dieselbe falsche Antwort.

kubernetes scheduling opentelemetry finops mechanism
$ cat CLICKHOUSE .md
· 8 Min. Lesezeit

136 Millionen PUTs für 17 GiB Daten

Objektspeicher rechnet pro Operation ab, und ein ClickHouse-Part auf einer S3-Disk ist nicht ein Objekt, sondern eines pro Spalte. Die Kosten eines Cold Tier sind also eine Funktion davon, wie viele Parts existieren, nicht wie viele Bytes sie halten, und jede Einstellung, die Merges aushungert, wird zu einer Zeile auf der Rechnung. Zwei Chart-Defaults haben genau das getan, und der Fix, der es beendet hat, war nie committet worden.

clickhouse s3 finops observability mechanism
$ cat KAFKA .md
· 8 Min. Lesezeit

Der Fehler war 25 Stunden alt. Der Client war die ganze Zeit gesund.

Eine Kafka-Client-Bibliothek, die sich erholt, indem sie Fehler zählt und ab einer Schwelle panisch wird, ist Erholung proportional zum Traffic: Stream-Processoren erreichen die Schwelle in Sekunden, stille anfragegetriebene Producer nie, also verharren sie beim letzten Fehler und servieren ihn unbegrenzt, während jedes Gesundheitssignal grün bleibt. Der Hinweis steckt in den Ziffern des Fehlers selbst: Ein identischer Zeitwert über mehrere Vorkommen ist ein gepuffertes Ereignis, kein wiederkehrendes Versagen.

kafka resilience mechanism reliability observability
$ cat DATABASES .md
· 6 Min. Lesezeit

LakeBase hat Postgres nicht neu erfunden. Es hat nur den fsync verschoben.

Databricks LakeBase Postgres ist echtes, drahtkompatibles Postgres: Standard-Treiber, pgvector, PostGIS, unveränderte Query-Engine. Die Marketing-Schlagzeile ist Database Branching, Git für Ihre Datenbank. Das ist der Nebeneffekt. Der Mechanismus ist, dass der Commit-Pfad die Maschine verlassen hat: Eine Transaktion wird bestätigt, wenn ein Quorum von Safekeepers den WAL-Datensatz akzeptiert, nicht wenn eine lokale SSD leert. Branching, Scale-to-Zero und Point-in-Time-Recovery folgen alle aus diesem einen Satz, und die Kosten genauso.

databases postgres architecture mechanism cloud
$ cat LINUX .md
· 7 Min. Lesezeit

Meinungsstarkes Linux ist kein Widerspruch mehr, wenn die Meinungen kohärent sind.

Omarchy wurde diesen Sommer veröffentlicht, und 37signals verlagert das gesamte Unternehmen innerhalb von drei Jahren darauf. Das Interessante ist nicht der Linux-Teil; es ist, dass diese Distribution die erste ist, bei der ich erlebe, dass die Persönlichkeit das Leitmerkmal ist. Die übertragbare Regel: dieselbe meinungsstarke Voreinstellung ist ein Merkmal, wenn ihre Begründung sichtbar ist, und ein Bug, wenn ihre Begründung verborgen ist.

linux design opinion product devops
$ cat AI .md
· 6 Min. Lesezeit

Spekulatives Decoding wurde ausgeliefert, weil es die Ausgabe nicht verändert.

Liquid AI hat am 20. August LFM2.5-DSpark ausgeliefert: drei Draft-Modelle unter der lfm1.0-Lizenz, mit einer mittleren 2,67×-Beschleunigung auf H100 und einer 57-prozentigen Reduktion der Funktionsaufruf-Latenz auf Apple Silicon. Die Schlagzeilenzahl ist das am wenigsten Interessante an der Veröffentlichung. Das Interessante ist, warum diese Art von Veröffentlichung überhaupt ausgeliefert werden kann. Spekulatives Decoding ist exakt unter Greedy Decoding, das heißt, es verändert die Ausgabe nicht. Diese Eigenschaft ist das ganze Spiel.

ai inference speculative-decoding mechanism performance
$ cat OBSERVABILITY .md
· 7 Min. Lesezeit

Die alte Pipeline verlor ~47k Spans. Tat sie nicht. Wir haben das Falsche gezählt.

Während einer Parallel-Run-Validierung zeigte ein nebeneinander gestellter Per-Service-Span-Count, dass die neue Pipeline ~0,2% der Spans pro Service über ein 60-Minuten-Fenster verlor. Als Regression der neuen Pipeline gelesen, hätte es einen Rollback ausgelöst. Richtig gelesen, fügte die alte Pipeline in einem wenige-Sekunden-Fenster Zehntausende doppelter Zeilen ein. Die Speicherschicht hat keine Eindeutigkeitsbeschränkung auf das Gezählte; die Einheit, die sie als 'count' ausgibt, ist nicht die Einheit, die der Operator annimmt.

observability clickhouse verification troubleshooting devops
$ cat DOCKER .md
· 5 Min. Lesezeit

Die Notiz behauptete, das Image sei falsch. Das Image war richtig. Drei Prüfungen bestätigten es.

Eine Notiz im Wissensspeicher des Projekts behauptete, das Produktions-Image sei amd64-only und laufe möglicherweise nicht auf Graviton-Knoten. Drei unabhängige Prüfungen stimmten zu. Das Image war nicht amd64-only, und ein nativer arm64-Build gelang ohne jede Quelltextänderung. Eine dreimal verifizierte Behauptung ist die gefährlichste Form einer falschen Behauptung.

docker arm64 verification knowledge-management devops
$ cat KAFKA .md
· 8 Min. Lesezeit

Ich habe drei Dinge über ein laufendes System abgeleitet. Zwei davon stimmten nicht.

Dreimal in einer Woche habe ich eine Aussage über eine laufende Migration aus einer Konfigurationsdatei, einem Namenspräfix oder einem Template gelesen, und zweimal war die Aussage falsch. Das Artefakt und das laufende System sind zwei Sichten auf dasselbe Ding, und sie können aus Gründen übereinstimmen, die das Artefakt nicht verraten kann. Nur eine der Sichten ist die Wahrheit.

kafka opentelemetry terraform troubleshooting devops
$ cat TERRAFORM .md
· 9 Min. Lesezeit

Der Plan war grün, weil zwei von drei Sichten übereinstimmten. Die dritte war die Wahrheit.

Ein terraform plan kam für einen verwalteten Observability-Stack sauber zurück, nachdem ein Incident-Fix von Hand angewendet worden war. Der Fix war live, der Fix war in der Datei, und nur der State war hinterher. Ein Plan ist ein Diff zwischen zwei Sichten, aber das System hat drei. Alle drei zu lesen, bevor du planst, ist das, was den grünen Diff von einer Vermutung in eine Entscheidung verwandelt.

terraform helm eks state troubleshooting devops
$ cat OPENTELEMETRY .md
· 6 Min. Lesezeit

Die Config war Byte-für-Byte identisch. Das bewies das Falsche.

Wir haben eine Collector-Config neu abgeleitet, sie Byte für Byte gegen die produktive verglichen, sie war identisch, und mit einem Stapel grüner Checks im Rücken ausgeliefert. Sie ist beim Start in eine Crash-Loop gelaufen. Byte-identisch ist eine echte Eigenschaft; sie beantwortet nur eine Frage, die niemand gestellt hat.

opentelemetry kafka terraform devops troubleshooting
$ cat AWS .md
· 6 Min. Lesezeit

Zwei DNS-Schichten, die identisch aussehen, wenn beide grün sind

Eine VPC in einem Account konnte Namen in einer privaten Zone eines anderen Accounts nicht auflösen. Das Peering war gesund, die Routen stimmten, das DNS-Resolution-Flag war gesetzt. Jedes Signal war grün, und die Antwort blieb NXDOMAIN, weil zwei verschiedene DNS-Schichten dasselbe grüne Licht trugen.

aws route53 dns vpc networking troubleshooting
$ cat CDKTF .md
· 6 Min. Lesezeit

Der Fehler, den ich dem Provider angelastet habe

Wochenlang zeigte ein terraform plan eine Drift, die ich nicht beheben konnte, an einem S3-Bucket, der bereits korrekt konfiguriert war. Ich hakte es unter 'AWS-Provider-Eigenheit' ab. Der Provider war unschuldig. Mein eigener Code log mich an, lange bevor Terraform ihn je zu sehen bekam.

cdktf terraform iac typescript devops troubleshooting
$ cat KUBERNETES .md
· 8 Min. Lesezeit

Der EKS-401, der nichts mit Credentials zu tun hatte

Unsere CI-Pipeline hat ein gültiges EKS-Token erzeugt, sauber präsentiert und wurde trotzdem abgewiesen. Das Problem waren nicht die AWS-Credentials. Es war die EKS-Zugriffssteuerung, und der Fehler versteckte sich offen im RBAC des Clusters.

kubernetes eks aws devops platform-engineering troubleshooting
$ cat AI .md
· 9 Min. Lesezeit

Opus 5 ist da, zum halben Preis von Fable 5. Die Benchmarks sind stark, aber die eigentliche Geschichte sind die API-Änderungen.

Opus 5 wurde am 24. Juli als Anthropics neues Standardmodell ausgeliefert. Die Benchmark-Tabelle liegt bei halben Kosten nur eine Rundungsstelle hinter Fable 5. Aber das, was deinen Alltag wirklich verändert, ist leiser: Thinking ist jetzt standardmäßig an, und das kippt ein paar Annahmen, die du seit 4.8 mit dir herumträgst.

ai llm anthropic claude opus
$ cat KUBERNETES .md
· 5 Min. Lesezeit

Die Agent-Kontrollebene: Omnigent auf Kubernetes

Databricks hat Omnigent als Open Source veröffentlicht: ein Meta-Harness, das beliebige Agent-Harnesses hinter einer einheitlichen API mit Policies, Sessions und persistentem State bündelt. Wer schon zustandsbehaftete Dienste auf Kubernetes betrieben hat, findet den Weg zum Self-Hosting kürzer als erwartet.

kubernetes devops platform-engineering ai-agents
$ cat KUBERNETES .md
· 9 Min. Lesezeit

StackGres und Strimzi: Day-Two-Lektionen aus einem echten Platform-Rebuild

Jeder Operator verspricht eine einfachere Einrichtung. Der echte Mehrwert zeigt sich später, wenn ein Replikat seine Control-Datei verliert oder ein Zertifikat in drei Wochen abläuft. Das ist es, was StackGres und Strimzi beim Betrieb von PostgreSQL und Kafka auf Kubernetes verändert haben.

kubernetes operators postgresql kafka devops platform-engineering
$ cat KUBERNETES .md
· 5 Min. Lesezeit

Helm-Deploy erfolgreich. Config nie angewendet.

Eine grüne CI-Pipeline, während das Live-Gateway 404s zurückgibt, ist kein Testfehler. Es ist eine stille Reload-Lücke. Hier ist das Cross-Release-Checksum-Pattern, das sie in helmfile schließt.

kubernetes helm helmfile devops platform-engineering