Soixante conteneurs sur un seul serveur
Une seule machine bare-metal fait tourner des dizaines à des centaines de conteneurs Hoody. La déduplication KSM et BTRFS rend le coût marginal quasi nul.
Huit cents conteneurs isolés sur trois serveurs bare-metal. Chaque client reçoit son propre filesystem, sa propre URL, son propre namespace kernel — une facture serveur à tarif fixe, pas de compteur par tenant. L'architecture honnête n'est plus celle qui coûte cher.
tableau de bord ops flotte · 812 tenants sur 3 nœuds bare-metal · une facture à tarif fixe, pas de compteur par tenant
votre webhook de billing tape un script Hoody Exec. Le script copie un conteneur client frais depuis le snapshot template, le nouveau tenant atterrit sur sa propre URL, et le tableau de bord flotte s'incrémente d'un. Trois appels HTTP, pas d'orchestrateur.
Un isolate V8 serverless. L'URL du webhook est juste un fichier TypeScript dans scripts/1/. Pas d'Express, pas de config serveur, pas de conteneur à lui.
BTRFS copy-on-write — chaque nouveau conteneur ne consomme que le delta depuis le template sur le serveur loué. Les règles firewall et réseau clonent avec le snapshot. Atterrit sur le serveur de la flotte qui a de la marge.
L'endpoint authorize signé émet un conteneur_claim d'une heure. votre app redirige le client dans son propre sandbox. Temps total de signup : sous les soixante secondes.
Tout le pipeline tient en trois appels HTTP. Pas d'opérateur Kubernetes, pas de YAML namespace, pas d'admin cluster. La flotte ajoute des tenants comme une hash table ajoute des entrées — sauf que chaque entrée est un vrai conteneur Linux.
Leur modèle de facturation facture par tenant. Hoody facture par serveur. Une fois que l'unité de facturation passe de tenant à machine, le chiffre par tenant rétrécit à mesure que vous ajoutez de la densité — et la courbe s'aplatit à mesure que vous grandissez.
Ajouter les cent prochains tenants ne change pas la facture — ça change le diviseur. KSM dédoublonne les pages mémoire identiques entre conteneurs ; BTRFS copy-on-write garde les octets de l'image de base partagés sur le serveur. Chaque nouveau conteneur n'utilise que le delta depuis le template ; la facturation reste sur le serveur à tarif fixe.
Le pricing serveur Hoody est marketplace-driven et varie selon la région, la spec et le vendeur. La flotte d'exemple utilise trois nœuds ; les serveurs marketplace démarrent à $1/mo et varient selon la région, la spec et la durée ; les estimations concurrentes sont des fourchettes illustratives issues du pricing public pour du compute par-tenant comparable. La densité suppose des charges SaaS typiques — des tenants inactifs la majeure partie de la journée. Les bases lourdes ou les charges IA demandent plus de marge par container.
Une fois que l'isolation est peu chère, l'architecture cesse de faire des compromis. Les fonctionnalités que votre CFO bloquait deviennent des défauts.
Webhook Stripe → Hoody Exec → POST /containers/$TEMPLATE/copy. Le nouveau tenant boote depuis le même snapshot que les autres. Baseline identique, futur isolé. Pas de colonnes tenant_id à passer, pas de ligne partagée à oublier.
DELETE /api/v1/containers/$CID. Le filesystem part, la SQLite part, les jobs cron partent, le journal d'audit part — parce qu'ils vivaient tous au même endroit. Pas de "DELETE … WHERE tenant_id … plus 12 autres tables que vous avez oubliées."
Le script en boucle d'un client tape les quotas CPU et RAM de son container. Les 811 autres conteneurs de la flotte ne s'en aperçoivent pas. Pas d'audits ressources partagées, pas de table de lock partagée, pas de connection pool partagé — les namespaces kernel font le travail d'isolation que la couche applicative simulait.
L'isolation par tenant coûtait par tenant. Maintenant elle coûte par serveur.
L'isolation par tenant a historiquement signifié soit une clause WHERE astucieuse, soit une facture par tenant. Conteneur-par-client à l'échelle flotte déplace les deux :
Huit cents tenants isolés sur les serveurs que votre laptop remplace. L'architecture honnête est enfin l'abordable.