
Sechzig Container auf einem Server
Eine Bare-Metal-Box führt Dutzende bis Hunderte von Hoody-Containern aus. KSM und BTRFS-Dedup machen die Marginalkosten nahezu null.
Ein Teammitglied trifft auf einen Bug, den du nicht reproduzieren kannst. Spar dir die Datei. pg_dump auf deinem Laptop streamt direkt in dessen psql auf Staging — kein Upload, kein Link, kein Download. Die Pipe leitet die Bytes durch.
Die Hoody-Pipe-API hält eine unetablierte Pipe bis zu fünf Minuten, während sie auf die andere Seite wartet. Sobald beide verbunden sind, streamen die Bytes hindurch. Auf dem Server wird nie etwas auf Disk geschrieben.
# from your dev laptoppg_dump --format=custom dev \ | curl -T - \ https://pipe.containers.hoody.com/api/v1/pipe/dev-snapshot[INFO] Waiting for 1 receiver to connect…[INFO] Streaming to 1 receiver…[INFO] Transfer complete.
PUT (oder POST) mit einem streamenden Body. Der Server druckt Statusmeldungen zurück in dein Terminal, während die Pipe sich aufbaut — praktisch, damit du siehst, wann die andere Seite tatsächlich verbunden hat.
# on their staging shellcurl https://pipe.containers.hoody.com/api/v1/pipe/dev-snapshot \ | pg_restore -d staging# rows imported · staging now matches dev
GET auf demselben Pfad blockiert, bis der Sender verbindet. Die Bytes, die der Sender schreibt, erscheinen als Response-Body. Pipe das in pg_restore (oder psql) und der Dump landet direkt in der Datenbank — niemals als Datei.
Wenn du den Fortschritt beobachten willst, ohne einen Empfänger-Slot zu verbrauchen, richte einen dritten curl mit ?progress auf denselben Pfad und du bekommst ein Live-HTML-Dashboard mit übertragenen Bytes, Geschwindigkeit und ETA.
Die vier Bewegungen, die es braucht, um eine Dev-DB ins Staging deines Teammitglieds zu bekommen, ohne dass jemals etwas auf einem Server die Disk berührt.
„kannst du mir deine Dev-DB schicken?“Gestern hieß das pg_dump, S3-Bucket, presigned URL und ein Slack-Paste.
pg_dump dev | curl -T - …/pipe/dev-snapshotDein Terminal druckt „Waiting for 1 receiver to connect…“ und sitzt da. Es wird auch lokal keine Datei angelegt.
curl …/pipe/dev-snapshot | pg_restoreDie Pipe etabliert sich in dem Moment, in dem sie verbinden. Bytes fließen aus deinem pg_dump direkt in deren pg_restore.
Transfer complete · 0 Bytes auf dem ServerServer-seitiger Disk-Verbrauch bleibt bei null. Der Pipe-Pfad vergisst, dass der Transfer stattfand, sobald beide Seiten trennen.
Es ist dieselbe Anzahl Befehle, die du für einen S3-Round-Trip tippen würdest — minus Bucket, Credential, Upload, Download und Cleanup.
Hoody Pipe ist ein streamender Vermittler, kein Datei-Service. Der Dump existiert auf deiner Disk und auf ihrer; dazwischen sind es nur Bytes im Flug. Nichts aufzuräumen, nichts zu leaken.
Es gibt keine Upload-Fortschrittsanzeige zu babysitten, weil es keinen Upload gibt. Ein 40-GB-Dump bewegt sich mit dem Tempo, das dein Netzwerk und deren pg_restore halten können — die Pipe leitet einfach durch.
Öffne denselben Pfad mit ?progress in einer dritten URL und sieh übertragene Bytes, Geschwindigkeit und ETA in Echtzeit. Bis zu 50 Spectators pro Pipe, keiner verbraucht einen Empfänger-Slot.
Datenbank-Stand war früher ein Anhang. Jetzt ist er ein Pfad.
Dateien sind Zustand in Ruhe. Pfade sind Zustand in Bewegung. Hoody Pipe lässt einen Datenbank-Snapshot zum Zweiten werden — adressierbar, ephemer und nie auf einem Server liegend, den du später aufräumen musst.
Die meisten Tools, mit denen wir eine Dev-Datenbank geteilt haben, sind Überreste aus der Zeit, als wir keine Bytes zwischen zwei Terminals über HTTP streamen konnten. Die Pipe macht sie alle überflüssig.
Zwei curls. Ein Pfad. Ihr Staging matcht jetzt dein Dev.