Pour les constructeurs de plateforme
Exécuter de nombreux locataires sur un seul plan de contrôle
Si vous hébergez des applications pour d'autres personnes — en tant que fournisseur d'hébergement, MSP ou agence qui maintient les systèmes de ses clients en fonctionnement — vous avez besoin de ce que les espaces de noms Kubernetes sont documentés pour ne pas être : une frontière de locataire que vous pouvez inscrire dans un contrat. Cette page explique en quoi consiste cette frontière ici, et cite le code pour chaque affirmation, de la même manière que le reste de ce site.
L'arithmétique du « faire ou acheter », montrée plutôt qu'affirmée
Chaque entreprise de plateforme arrive à la même bifurcation : construire la couche d'orchestration, ou en intégrer une. Nous ne allons pas vous citer une étude industrielle que nous ne pouvons pas vous montrer. Voici le seul chiffre qui est le nôtre, et d'où il vient.
Notre propre analyse tarifaire situe un ingénieur DevOps axé sur Kubernetes à 150 000 $ par an — c'est le chiffre que nous utilisons en interne lorsque nous comparons nos niveaux à l'alternative, et c'est une estimation que nous avons faite, pas une enquête salariale que nous avons menée. L'arithmétique qui en découle reste à faire avec vos propres chiffres :
Nous ne publions aucun prix partenaire sur cette page, et c'est délibéré : nous préférons vous dire que nous n'en avons pas fixé plutôt que d'inventer un chiffre pour remplir l'espace. Ce que coûte un accord de revente dépend du nombre de nœuds que vous exécutez et de la manière dont vous souhaitez être facturé, et c'est une conversation.
Multilocation, primitive par primitive
Six choses que vous auriez dû construire autrement. Chacune est un lien vers son emplacement dans la source, pour que vous puissiez vérifier plutôt que de croire.
Une hiérarchie de locataires, avec des sous-organisations
Un locataire peut avoir un parent. C'est un champ — ParentTenantID — et toute la hiérarchie en découle : créer une sous-organisation sous un parent, lister les enfants d'un parent, remonter la chaîne jusqu'à la racine, et refuser une opération qui traverserait une branche qu'elle ne devrait pas. Si vous revendez à des entreprises qui ont elles-mêmes des départements, des filiales ou des comptes clients, la structure existe déjà.
Facturation consolidée ou distincte, par sous-organisation
Chaque sous-organisation est créée soit consolidée, où le parent est facturé pour elle, soit séparée, où elle est facturée en son propre nom. C'est un champ validé sur le locataire, pas une convention dans une feuille de calcul, et consolidée est la valeur par défaut lorsque l'appelant ne le précise pas. C'est la différence entre la revente sous votre propre facture et l'introduction de clients qui paient directement &mdash ; et vous pouvez faire les deux, dans le même domaine, en même temps.
Quotas appliqués, non affichés
Un locataire porte des limites sur le nombre de déploiements, le nombre de conteneurs et le nombre de réplicas par déploiement qu'il peut avoir. Elles sont validées à l'entrée : une limite négative est un rejet, et un plafond de conteneurs inférieur au plafond de déploiements est également un rejet, car il décrit un état qui ne peut pas exister. Un niveau gratuit que vous ne pouvez pas appliquer est un niveau gratuit qui vous coûte de l'argent.
Un réseau Docker par locataire
Les réseaux de locataires sont nommés d'après l'identifiant propre du locataire, et un locataire en obtient un par défaut qu'il le demande ou non. Deux clients sur le même nœud ne partagent pas un segment réseau par accident, car il n'existe aucun chemin de code dans lequel ils en partagent un.
Sécurité au niveau des lignes dans la base de données, échec en mode fermé
La séparation des locataires dans le magasin d'audit est appliquée par Postgres lui-même, et non par une clause WHERE que quelqu'un devrait se souvenir d'écrire. La politique est fermée par défaut — une connexion sans locataire défini ne voit rien plutôt que tout — et il existe une suite de tests dédiée qui existe pour tenter de lire à travers la frontière et échouer.
Un maillage WireGuard par locataire, en trois topologies
Les nœuds de chaque locataire sont reliés par leur propre maillage chiffré, configuré en maillage complet, partiel ou en étoile. Le maillage en étoile exige que vous nommiez le nœud central — un maillage en étoile sans nœud central est refusé plutôt que rétrogradé silencieusement en autre chose. Pour un fournisseur disposant d'un site central et de nombreux accès client, cette troisième topologie est celle qui compte.
Pourquoi c'est une frontière et pas un espace de noms
Kubernetes documente que ses propres espaces de noms ne constituent pas une limite de sécurité. Ce n'est pas notre caractérisation du produit de quelqu'un d'autre ; c'est la leur, et c'est la raison pour laquelle une plateforme construite sur des espaces de noms finit par porter une seconde couche d'isolation que quelqu'un doit construire et maintenir fonctionnelle.
Ici, la limite est le locataire, et elle est constituée des six éléments ci-dessus à la fois : des réseaux séparés, des chemins Vault séparés, un espace clé-valeur séparé, des politiques de base de données qui échouent en mode fermé, et un maillage par locataire. Ce que nous pouvons offrir comme preuve est le nôtre : neuf suites de tests d'isolation dédiées dont le but est de tenter un accès inter-locataires et d'être refusées, et un audit de sécurité dont les 184 constatations et leur remédiation sont publiées intégralement plutôt que résumées.
La preuve, pas la promesse
Quatre pages sur ce site existent afin que les affirmations ci-dessus puissent être vérifiées plutôt que prises pour argent comptant :
- L'enregistrement d'audit — chaîné par hachage et activé par défaut, avec un vérificateur hors ligne autonome que vous remettez à un auditeur. C'est ce que vous montrez à l'équipe de conformité d'un locataire lorsqu'elle vous demande ce que vous pouvez prouver.
- L'audit de sécurité — 184 constats répartis sur six vagues validées, avec des identifiants de constats traçables jusqu'aux commentaires qui les ont clôturés.
- La preuve multi-cloud — une migration de conteneurs en direct et protégée entre deux nœuds cloud inscrits indépendamment, revérifiée par rapport au registre de nœuds du plan de contrôle.
- Le déploiement de référence — 123 conteneurs sous un seul plan de contrôle sur une seule machine à huit cœurs, incluant une pile de traitement de documents réglementés de 23 conteneurs et une plateforme non liée de 36 conteneurs à côté.
Là où vivent les données de vos locataires
Les nœuds appartiennent au locataire. Les charges de travail de vos clients, leurs volumes et leurs données résident sur des serveurs que vous ou eux contrôlez, dans la juridiction où se trouvent ces serveurs — le plan de contrôle contient l'état d'orchestration, pas les données applicatives. Pour un fournisseur vendant sur un marché avec des exigences de résidence, c'est l'arrangement utile : la réponse à “où sont mes données” est “où vous les avez mises,” et elle ne dépend pas de où nous sommes.
L'application de placement géographique — ancrage d'un déploiement à un pays ou une région au sein de votre propre flotte — est disponible et désactivée par défaut. Nous préférons le préciser plutôt que de laisser entendre qu'elle est activée.
Parlez-nous
Si vous construisez une plateforme par-dessus celle-ci, l'étape suivante est une conversation sur le nombre de nœuds, la forme de la facturation et ce que vos clients vous demanderont de prouver. Écrivez à sales@delta-telematics.ca.
Comment ces affirmations peuvent être vérifiées
Hiérarchie des locataires et sous-organisations.
Le champ est
ParentTenantIDdansinternal/types/types.go:100. La création sous un parent, la liste des enfants d'un parent, le parcours jusqu'à la racine et les refus inter-branches sont danspkg/api/tenant_api.goaux lignes 800, 881, 931–935, 959 et 1018–1027.Facturation consolidée ou séparée.
BillingModeet ses deux valeurs sont définis àinternal/types/types.go:74–78; le champ est accepté, validé et défini par défaut sur consolidated danspkg/api/tenant_api.go:717et780–801.Quotas.
La validation qui rejette une limite négative, et celle qui rejette un plafond de conteneur inférieur au plafond de déploiement, se trouvent à
internal/types/validation.go:296et:329. Les valeurs par défaut avec lesquelles un locataire commence sont vérifiées dansinternal/types/tenant_quota_test.go:20.Réseaux Docker par locataire.
buildTenantNetworkNameàpkg/docker/client.go:1647dérive le nom à partir de l'identifiant du locataire ;GetDefaultTenantNetworkNameà:1698est la raison pour laquelle un locataire en a un sans le demander.Sécurité au niveau des lignes.
Les politiques se trouvent dans
audit-postgres/init/05-row-level-security.sql. La suite qui tente de lire au-delà de la limite et s'attend à échouer estpkg/audit/postgres_rls_test.go.Le maillage WireGuard et ses trois topologies.
Les modes, le refus d'une configuration hub-and-spoke sans hub nommé, et la construction du maillage se trouvent dans
pkg/wireguard/mesh.goaux lignes 41–54 et 221–276.L'ingénieur à 150 000 $.
Ce chiffre provient de notre propre document,
marketing/Odysseus_Pricing_Strategy_v2.md§10.6, où il est utilisé pour comparer nos niveaux par rapport au recrutement. C'est notre estimation, pas une enquête, et il est présenté ici comme telle car c'est ce qu'il est. Nous avons délibérément ne pas publié les plages plus larges de l'industrie citées dans notre travail de positionnement interne : ce document n'est pas dans le dépôt à partir duquel ce site est construit, nous ne pouvons donc pas vous montrer la source, et un chiffre sur cette page dont nous ne pouvons pas montrer la source serait la chose la plus faible dessus.Ce qui n'est pas revendiqué.
Il n'y a pas de prix partenaire sur cette page car aucun prix partenaire n'a été défini. La phrase multi-cloud indique deux clouds car deux est ce qui a été testé et vérifié — un troisième a été recherché dans le code et non trouvé, et la page multi-cloud le dit dans les mêmes termes. L'application du placement géographique est décrite comme disponible et désactivée par défaut car c'est son état.
L'énoncé de l'espace de noms Kubernetes.
Il s'agit de la documentation de Kubernetes concernant ses propres espaces de noms, et non de notre caractérisation du produit d'un autre. Les suites de tests d'isolation et l'audit de 184 constats mentionnés à côté sont les nôtres, et l'audit est publié intégralement sur la page d'audit de sécurité.
- Toutes les références de code ont été vérifiées par rapport à ce dépôt le 24 août 2026. Les numéros de ligne changent ; les identifiants ne changent pas, et chacun d'eux est interrogeable via grep.