Multilocation et isolation
Le problème
Section intitulée « Le problème »Une plateforme partagée échoue dans l’une des deux directions. Soit l’isolation est une convention — un schéma de nommage que tout le monde promet de respecter — et une requête erronée lit ou écrase le travail de quelqu’un d’autre ; soit l’isolation est une installation séparée par locataire, et le coût de la plateforme se multiplie par le nombre de locataires.
La convention échoue silencieusement. Un point de terminaison de listage qui oublie son filtre renvoie les enregistrements de tous les locataires et ressemble exactement à un point de terminaison de listage qui fonctionne.
Comment la plateforme résout le problème
Section intitulée « Comment la plateforme résout le problème »Chaque enregistrement que la plateforme stocke est écrit sous le locataire qui en est propriétaire, et le client qui lit et écrit ces enregistrements prend le locataire comme argument plutôt que comme option. Une lecture qui ne nomme pas un locataire ne renvoie pas tout ; elle ne compile pas.
Cette limite couvre tout, pas seulement les déploiements : les nœuds, les réseaux, les secrets, les tâches, les planifications et leur historique d’exécution appartiennent chacun à exactement un locataire. Le placement est limité par la même règle — le déploiement d’un locataire ne peut être placé que sur un nœud que ce locataire détient.
Les identifiants suivent également le locataire. Un secret est référencé par chemin, jamais transporté dans la description, et le chemin est résolu dans le stockage propre du locataire propriétaire au moment de l’envoi. Deux locataires peuvent utiliser des chemins identiques et ne jamais voir les données de l’autre.
Les noms sont délimités, pas globaux. Deux locataires peuvent exécuter tous les deux un déploiement appelé api, et aucun ne peut accéder à celui de l’autre.
Not this
Cette page ne traite pas des comptes utilisateurs, des rôles ou de la connexion. Les droits d’un principal au sein d’un locataire — qui peut construire et qui peut exécuter — est un modèle distinct avec son propre vocabulaire.
Il ne décrit pas non plus l’isolation au niveau réseau entre les conteneurs, qui est une propriété des réseaux auxquels un déploiement se connecte plutôt que de la multilocation.
Où le voir
Section intitulée « Où le voir »
- Ce qu’un déploiement déclare concernant ses propres réseaux et son placement : manifeste de déploiement.
- Ce qu’un principal agent est autorisé à faire : limites du principal agent.