Zum Inhalt springen
use-cases / per-customer-sandboxes-fleet-scale / hero
CONTAINERS · MULTI-TENANT SAAS · FLOTTEN-MASSSTAB

Sandbox pro Kunde im Flotten-Maßstab

Achthundert isolierte Container auf drei Bare-Metal-Servern. Jeder Kunde bekommt sein eigenes Dateisystem, seine eigene URL, seinen eigenen Kernel-Namespace — eine Pauschalserver-Rechnung, kein Meter pro Mandant. Die ehrliche Architektur ist nicht mehr die teure.

Flotten-Docs lesen
use-cases / per-customer-sandboxes-fleet-scale / mechanism

Wie aus einem Signup eine von 812 Sandboxes wird

Dein Billing-Webhook trifft ein Hoody-Exec-Skript. Das Skript kopiert einen Frischkunden-Container aus dem Template-Snapshot, der neue Tenant landet auf seiner eigenen URL, und das Flotten-Dashboard zählt um eins hoch. Drei HTTP-Calls, kein Orchestrator.

01 · WEBHOOK

Stripe ruft deinen Exec-Endpoint auf

POST /api/v1/exec/scripts/1/webhooks/signup

Ein Serverless V8 Isolate. Die Webhook-URL ist einfach eine TypeScript-Datei in scripts/1/. Kein Express, keine Server-Config, kein eigener Container.

02 · COPY

Skript klont das Kunden-Template

POST /api/v1/containers/$TEMPLATE/copy

BTRFS Copy-on-Write — nur das Pro-Tenant-Delta belastet die Disk. Firewall- und Netzwerkregeln klonen mit dem Snapshot mit. Landet auf dem Flotten-Server, der gerade Spielraum hat.

03 · ROUTE

Neue URL geht zurück an den Nutzer

https://$PROJECT-$CID-...containers.hoody.com

Der signierte Authorize-Endpoint stellt einen container_claim für eine Stunde aus. Deine App leitet den Kunden in seine eigene Sandbox um. Gesamte Signup-Zeit: unter sechzig Sekunden.

Die ganze Pipeline sind drei HTTP-Calls. Kein Kubernetes-Operator, kein Namespace-YAML, kein Cluster-Admin. Die Flotte fügt Tenants genauso hinzu, wie eine Hashtable Einträge hinzufügt — nur dass jeder Eintrag ein echter Linux-Container ist.

use-cases / per-customer-sandboxes-fleet-scale / economics

Die Mathematik, die Isolation im Flotten-Maßstab günstig macht

Ihr Abrechnungsmodell berechnet pro Mandant. Hoody rechnet pro Server ab. Sobald die Abrechnungseinheit von Mandant zu Box wechselt, schrumpft die Pro-Mandant-Zahl, wenn du die Dichte hinzufügst — und die Kurve wird flacher, je mehr du wächst.

FLOTTEN-LEDGER · 812 TENANTS
# drei Bare-Metal-Knoten, Marketplace-Preise3 flat-rate servers · one monthly bill# gemischt über eu-1, us-1, ap-1812 tenants (287 + 304 + 221)# die Kosten pro Tenant kollabierenbill ÷ 812 = cost shrinks as density grows

Die nächsten hundert Mandanten ändern die Rechnung nicht — sie ändern den Divisor. KSM dedupliziert identische Memory-Pages über Container hinweg; BTRFS Copy-on-Write hält Base-Image-Bytes auf dem Server geteilt. Jeder neue Container verbraucht nur das Delta vom Template; die Abrechnung bleibt beim Pauschalserver.

PRO TENANT · ANDERE STACKS
  • AWS FARGATE PRO TENANTvCPU + Memory pro Task abgerechnet, auch idle
    $8–25
  • K8S NAMESPACE PRO TENANTCluster-Overhead über Namespaces amortisiert
    $3–10
  • DEDIZIERTER TENANT-PODReservierter RAM + CPU, bezahlt heiß oder kalt
    $5–15
  • HOODY · CONTAINER PRO TENANTein Server-Preis ÷ Mandanten-Dichte — durch die Box begrenzt, nicht die Anzahl
    Pauschalpreis

Hoody-Server-Preise sind marktplatzgetrieben und variieren je nach Region, Spec und Anbieter. Die Beispielflotte nutzt drei Knoten; Marketplace-Server starten bei $29/Monat und variieren je nach Region, Spec und Dauer; Konkurrenzschätzungen sind illustrative Spannen aus öffentlichen Preisen für vergleichbare Pro-Tenant-Compute. Dichte unterstellt typische SaaS-Workloads — Tenants, die den größten Teil des Tages idle sind. Schwere Datenbanken oder AI-Workloads brauchen mehr Spielraum pro Container.

use-cases / per-customer-sandboxes-fleet-scale / powers

Was Container-pro-Tenant zu diesem Preis freischaltet

Sobald Isolation günstig ist, hört die Architektur auf, Kompromisse zu machen. Die Features, die dein CFO zu vetoen pflegte, werden Defaults.

ONBOARDING

Jeder neue Kunde ist ein `cp` entfernt

Stripe-Webhook → Hoody Exec → POST /containers/$TEMPLATE/copy. Der neue Tenant bootet aus demselben Snapshot, aus dem jeder andere Tenant gebootet hat. Identische Baseline, isolierte Zukunft. Keine tenant_id-Spalten zum Durchfädeln, keine geteilte Zeile zum Vergessen.

OFFBOARDING

GDPR-Löschung ist ein HTTP-Call

DELETE /api/v1/containers/$CID. Das Dateisystem geht, die SQLite geht, die Cron-Jobs gehen, das Audit-Log geht — weil sie alle an einem Ort lebten. Kein „DELETE … WHERE tenant_id … plus 12 weitere Tabellen, die du vergessen hast.“

BLAST RADIUS

Der Bug eines Tenants bleibt in einem Tenant

Das Runaway-Skript eines Kunden trifft die CPU- und RAM-Quotas seines Containers. Die 811 anderen Container in der Flotte merken nichts. Keine Noisy-Neighbor-Audits, keine geteilte Lock-Tabelle, kein geteilter Connection Pool — Kernel-Namespaces machen die Isolations-Arbeit, die der Application-Layer früher vorgetäuscht hat.

use-cases / per-customer-sandboxes-fleet-scale / punchline

Pro-Tenant-Isolation kostete früher pro Tenant. Jetzt kostet sie pro Server.

FRÜHER$3–25 / TenantFargate, Namespace oder dedizierter Pod
JETZTeine Pauschalrechnung812 Sandboxes, 3 Bare-Metal-Boxen, kein Meter pro Mandant
use-cases / per-customer-sandboxes-fleet-scale / replaces

Was das ersetzt

Pro-Tenant-Isolation hieß historisch entweder eine clevere WHERE-Klausel oder eine Pro-Tenant-Rechnung. Container-pro-Kunde im Flotten-Maßstab verdrängt beides:

  • AWS Fargate pro TenantvCPU + RAM pro Task abgerechnet, heiß oder kalt
  • Kubernetes pro NamespaceCluster- + Control-Plane-Overhead pro Tenant
  • Geteilte Multi-Tenancy mit tenant_id-FilterungEin vergessenes WHERE leakt Kundendaten
  • Postgres Row-Level-Security-OverheadPolicy auf jeder Tabelle, Audit auf jeder Query
  • Dedizierte Tenant-PodsReservierte Compute, bezahlt egal ob genutzt oder nicht
use-cases / per-customer-sandboxes-fleet-scale / cta

Achthundert isolierte Tenants auf denselben Servern, die dein Laptop ersetzt. Die ehrliche Architektur ist endlich die bezahlbare.

Container-Guide lesen
use-cases / per-customer-sandboxes-fleet-scale / related

Lies die anderen