Skip to content

Gedanken

Technische Artikel und Einblicke zu Engineering, KI und Softwarearchitektur.

Ich zahle $200 im Monat für Claude. So viel würde es zu API-Preisen kosten.
Künstliche Intelligenz

Ich zahle $200 im Monat für Claude. So viel würde es zu API-Preisen kosten.

Anthropic hat am 1. Juni vertraulich einen S-1-Antrag eingereicht. Presseberichte deuten auf einen Börsengang im Oktober hin, was das Unternehmen nicht bestä...

Infrastructure as Code heißt nicht Terraform. CDK, Pulumi und die Frage, die wirklich entscheidet
Cloud-Infrastruktur

Infrastructure as Code heißt nicht Terraform. CDK, Pulumi und die Frage, die wirklich entscheidet

Irgendwann um 2019 wurde „Infrastructure as Code“ in den meisten Gesprächen zum Synonym für Terraform, so wie „Suche“ Google bedeutet. Das ist ein vernünftig...

Was Claude Code von unserer Infrastruktur geschrieben hat, und was wir nicht gemergt haben
Künstliche Intelligenz

Was Claude Code von unserer Infrastruktur geschrieben hat, und was wir nicht gemergt haben

Wir nutzen Claude Code täglich für Infrastrukturarbeit, auf einer Plattform, die wir für einen US-Kunden betreiben: CDK-Stacks, Deploy-Skripte, IAM-Richtlini...

Queues ohne Kafka: SQS, EventBridge und die eine Stelle, an der wir wirklich einen Stream brauchten
Cloud-Infrastruktur

Queues ohne Kafka: SQS, EventBridge und die eine Stelle, an der wir wirklich einen Stream brauchten

Jede Plattform erreicht den Moment, in dem eine Anfrage zu viel tut. Der Checkout-Handler verschickt eine E-Mail, aktualisiert den Suchindex, benachrichtigt ...

DynamoDB Single-Table oder Postgres? Wie wir pro Workload entschieden haben, und wo wir falsch lagen
Entwicklung

DynamoDB Single-Table oder Postgres? Wie wir pro Workload entschieden haben, und wo wir falsch lagen

Die Debatte DynamoDB gegen Postgres wird meist wie eine Religion geführt. Die eine Seite sagt, relationale Daten gehören in eine relationale Datenbank, und S...

Docker-Images für Node im Jahr 2026: Multi-Stage, Distroless und das 1,1-GB-Image, das zu 140 MB wurde
Entwicklung

Docker-Images für Node im Jahr 2026: Multi-Stage, Distroless und das 1,1-GB-Image, das zu 140 MB wurde

Das erste Dockerfile in den meisten Node-Projekten ist elf Zeilen lang, beginnt mit node:20, kopiert das Repository, führt npm install und npm run build aus ...

Ein Monorepo mit drei Apps: wie wir nur bauen, was sich geändert hat, und die Pipeline von acht Minuten auf drei gebracht haben
Entwicklung

Ein Monorepo mit drei Apps: wie wir nur bauen, was sich geändert hat, und die Pipeline von acht Minuten auf drei gebracht haben

Drei Next.js-Anwendungen, vier geteilte Pakete, ein Repository. Das ist die Form der Plattform, die wir für einen US-Kunden betreiben, und es ist die richtig...

Rate Limiting: am Rand, im Gateway oder in der App? Drei Schichten, drei Aufgaben
Cloud-Infrastruktur

Rate Limiting: am Rand, im Gateway oder in der App? Drei Schichten, drei Aufgaben

„Rate Limiting hinzufügen“ ist ein Einzeiler-Ticket, das drei verschiedene Probleme verbirgt. Jemand hämmert von einer IP auf die Login-Route: Das ist Missbr...

Health Checks, die lügen: sechs Arten, wie Ihr Dienst „bereit“ sagt, wenn er es nicht ist
Cloud-Infrastruktur

Health Checks, die lügen: sechs Arten, wie Ihr Dienst „bereit“ sagt, wenn er es nicht ist

Ein Health Check ist ein Vertrag zwischen Ihrer Anwendung und dem, was ihr Traffic zuweist. Der Router fragt „kannst du einen Request annehmen?“, und die Anw...

Backups, die Sie nie wiederhergestellt haben, sind keine Backups. Eine Restore-Übung, gestoppt.
Cloud-Infrastruktur

Backups, die Sie nie wiederhergestellt haben, sind keine Backups. Eine Restore-Übung, gestoppt.

Jeder AWS-Datenspeicher hat Backups standardmäßig oder per Häkchen aktiviert. Aurora hält automatische Backups. DynamoDB hat Point-in-Time-Recovery. S3 hat V...

Ein Incident-Runbook für ein Team ohne Bereitschaftsdienst
Cloud-Infrastruktur

Ein Incident-Runbook für ein Team ohne Bereitschaftsdienst

Große Unternehmen haben On-Call-Rotationen, Incident Commander, Schweregradmatrizen und ein passendes Tooling-Budget. Ein Dreierteam hat einen Gruppenchat un...

Das Datenbankpasswort ohne Ausfall rotieren: das, was Sie schon lange aufschieben
Cloud-Infrastruktur

Das Datenbankpasswort ohne Ausfall rotieren: das, was Sie schon lange aufschieben

Alle sind sich einig, dass das Datenbankpasswort rotieren sollte. Bei fast niemandem tut es das, und der Grund ist nicht Faulheit. Es ist, dass beim ersten V...

WAF für eine Next.js-App: die Managed Rules, die legitimen Traffic blockieren, und was wir dagegen getan haben
Cloud-Infrastruktur

WAF für eine Next.js-App: die Managed Rules, die legitimen Traffic blockieren, und was wir dagegen getan haben

AWS WAF vor einer Webanwendung einzuschalten ist ein CDK-Construct und eine Handvoll Häkchen bei Managed Rule Groups. Es ist außerdem, nach unserer Erfahrung...

Secrets in CDK: Secrets Manager, Parameter Store, und niemals etwas im Template
Cloud-Infrastruktur

Secrets in CDK: Secrets Manager, Parameter Store, und niemals etwas im Template

Ein CloudFormation-Template ist eine Textdatei. Es wird von CloudFormation gespeichert, liegt in cdk.out auf der Festplatte jedes Entwicklers, steht in den C...

Reserved, Savings Plans oder nichts: wann sich ein Einjahres-Commitment im Kleinen tatsächlich lohnt
Cloud-Infrastruktur

Reserved, Savings Plans oder nichts: wann sich ein Einjahres-Commitment im Kleinen tatsächlich lohnt

AWS gibt Ihnen bis zu 72 % Rabatt auf Compute, wenn Sie versprechen, drei Jahre lang weiter dafür zu zahlen. Die Zahl ist echt und steht in jeder Kostenoptim...

Das NAT Gateway ist der teuerste Posten, den Sie nicht sehen
Cloud-Infrastruktur

Das NAT Gateway ist der teuerste Posten, den Sie nicht sehen

Er steht nicht auf der Rechnung. Jedenfalls nicht als „NAT Gateway“. Er steht unter EC2-Other, als Nutzungstyp NatGateway-Hours neben einem weiteren namens N...

Zero-Downtime-Deploys sind kein Plattform-Feature. Sie sind eine Disziplin bei Schemamigrationen.
Cloud-Infrastruktur

Zero-Downtime-Deploys sind kein Plattform-Feature. Sie sind eine Disziplin bei Schemamigrationen.

Jede Container-Plattform wird Ihnen sagen, dass sie Zero-Downtime-Deployments beherrscht. App Runner, Fargate, Cloud Run, Kubernetes: alle starten neue Insta...

Dev, Staging und Prod vom ersten Tag an: warum ein Dreierteam nicht warten sollte
Cloud-Infrastruktur

Dev, Staging und Prod vom ersten Tag an: warum ein Dreierteam nicht warten sollte

„Wir trennen die Umgebungen später, wenn wir Nutzer haben.“ Diesen Satz haben wir von jedem kleinen Team gehört, mit dem wir gearbeitet haben, und wir haben ...

Sie brauchen kein Kubernetes. Sie brauchen ein gutes Dockerfile und einen Ort, an dem es läuft.
Cloud-Infrastruktur

Sie brauchen kein Kubernetes. Sie brauchen ein gutes Dockerfile und einen Ort, an dem es läuft.

Alle paar Monate fragt uns ein Team von drei bis fünf Engineers, ob es auf Kubernetes umziehen sollte. Die Anwendung ist ein Web-Frontend, eine API, ein paar...

Was verwaltete Observability bei 100 GB am Tag wirklich kostet: Datadog, Grafana Cloud, selbst gehostet
Cloud-Infrastruktur

Was verwaltete Observability bei 100 GB am Tag wirklich kostet: Datadog, Grafana Cloud, selbst gehostet

Die Observability-Rechnung ist die, die zweimal überrascht. Das erste Mal, wenn sie eintrifft und ein Drittel der Compute-Rechnung ausmacht. Das zweite Mal e...

Alarme, die nicht wissen, in welcher Cloud sie laufen
Cloud-Infrastruktur

Alarme, die nicht wissen, in welcher Cloud sie laufen

Jede Cloud verkauft Ihnen Alarme. CloudWatch Alarms, Azure-Monitor-Alarmregeln, Cloud-Monitoring-Alerting-Policies: jeder ist vorkonfiguriert, jeder ist ein ...

Auch Ihre Traces sollten nicht wissen, in welcher Cloud sie laufen
Cloud-Infrastruktur

Auch Ihre Traces sollten nicht wissen, in welcher Cloud sie laufen

Wir haben dargelegt, dass Anwendungslogs nicht der Cloud gehören sollten: die App emittiert, ein Agent stempelt die Cloud darauf, ein neutrales Backend speic...

Gleiches Tag, kein Deploy: warum cdk deploy mit unverändertem Image nichts tut, und das 300-Zeilen-Skript, das wir darum herum geschrieben haben
Cloud-Infrastruktur

Gleiches Tag, kein Deploy: warum cdk deploy mit unverändertem Image nichts tut, und das 300-Zeilen-Skript, das wir darum herum geschrieben haben

Zwei Geschichten über dieselbe Deploy-Pipeline, gemeinsam erzählt, weil die zweite wegen der ersten existiert. Die erste ist ein Bug, der keiner ist: wir hab...

CloudWatch Data Protection Policies: PII maskieren, bevor sie in Ihren Logs landen
Cloud-Infrastruktur

CloudWatch Data Protection Policies: PII maskieren, bevor sie in Ihren Logs landen

Ein Support-Engineer bat um ein Debug-Log auf einer API-Route, „nur für eine Woche“, um einem Bug in der Adressvalidierung nachzujagen. Die Log-Zeile war der...

Aurora Serverless v2 nach sechs Monaten: die 0,5-ACU-Untergrenze und der Auto-Pause-Mythos
Cloud-Infrastruktur

Aurora Serverless v2 nach sechs Monaten: die 0,5-ACU-Untergrenze und der Auto-Pause-Mythos

Aurora Serverless v2 wird mit einem Satz verkauft: zahlen Sie für die Datenbankkapazität, die Sie nutzen, skaliert in Sekundenbruchteilen. Sechs Monate Betri...

Das 500-Ressourcen-Limit von CloudFormation, und wie wir einen Stack ohne Datenverlust aufgeteilt haben
Cloud-Infrastruktur

Das 500-Ressourcen-Limit von CloudFormation, und wie wir einen Stack ohne Datenverlust aufgeteilt haben

cdk deploy scheiterte mit einer Meldung, die wir noch nie gesehen hatten: Template format error: Number of resources, 503, is greater than maximum allowed, 5...

GitHub OIDC statt Access Keys: eine Deploy-Rolle pro AWS-Konto, null Secrets in CI
Cloud-Infrastruktur

GitHub OIDC statt Access Keys: eine Deploy-Rolle pro AWS-Konto, null Secrets in CI

In den Repository-Secrets Ihres GitHub-Projekts liegt ein langlebiger AWS Access Key. Angelegt hat ihn, wer die erste Pipeline aufgesetzt hat, er hat Adminis...

Build-Time- vs. Runtime-Konfiguration in Next.js auf Containern: der Bug, der zwei Deploys brauchte
Entwicklung

Build-Time- vs. Runtime-Konfiguration in Next.js auf Containern: der Bug, der zwei Deploys brauchte

Wir haben ein Feature-Flag umgelegt. Das Flag war eine Umgebungsvariable auf dem App-Runner-Service, NEXT_PUBLIC_NEW_CHECKOUT=true, per CDK geändert, sauber ...

Preview-Umgebungen pro Pull Request auf AWS, ohne Vercel
Cloud-Infrastruktur

Preview-Umgebungen pro Pull Request auf AWS, ohne Vercel

Code-Review hat eine Obergrenze. Ein Reviewer kann einen Diff lesen und darüber nachdenken, aber er kann nicht darauf klicken. Für ein Produkt mit UI ist der...

Die AWS-Rechnung eines Drei-Personen-Startups, Zeile für Zeile
Cloud-Infrastruktur

Die AWS-Rechnung eines Drei-Personen-Startups, Zeile für Zeile

Alle veröffentlichen Architekturdiagramme. Niemand veröffentlicht die Rechnung. Das ist schade, denn auf der Rechnung wird die Architektur ehrlich: der Diens...