L'API Namespaces dans Google App Engine simplifie la compartimentation de vos données Google App Engine. Cette API est mise en œuvre via un nouveau package appelé gestionnaire d'espaces de noms et est incorporée dans certaines API compatibles avec les espaces de noms.
Lorsque vous définissez un espace de noms dans le gestionnaire d'espaces de noms, ces API le récupèrent et l'utilisent de manière globale. Vous pouvez déclarer explicitement un espace de noms en local, mais faites attention à ne pas créer des fuites de données et d'autres bugs par inadvertance. Une requête App Engine peut accéder à n'importe quel espace de noms, l'application étant chargée d'appliquer une règle de contrôle d'accès sur l'ensemble des espaces de noms.
Vous pouvez utiliser l'API Namespaces pour générer un large éventail d'applications. L'une des utilisations les plus convaincantes de cette API concerne les applications à architecture mutualisée, comme décrit ci-dessous.
À propos de l'architecture mutualisée
On appelle architecture mutualisée une architecture logicielle dans laquelle une instance d'une application, exécutée sur un serveur distant, est diffusée auprès de nombreuses organisations clientes (également connues sous le nom de locataires).
L'utilisation d'une architecture mutualisée facilite l'administration et l'approvisionnement des locataires. Cela vous permet d'offrir une expérience utilisateur simplifiée et personnalisée, ainsi que d'agréger différents emplacements de données en un schéma de base de données unique. De ce fait, vos applications deviennent plus évolutives, mais aussi plus rentables au fur et à mesure des ajustements que vous effectuez. Il devient plus facile d'isoler et d'analyser des données sur l'ensemble des locataires car ils partagent tous le même schéma de base de données. Les différents groupes d'utilisateurs profitent ainsi de contenus personnalisés, inclus dans une application plus efficace.
Créer une application mutualisée avec l'API Namespaces
À l'aide de l'API Namespaces, vous pouvez facilement partitionner les données relatives à l'ensemble des locataires en spécifiant simplement une chaîne d'espace de noms unique pour chaque locataire. Il suffit de définir l'espace de noms globalement pour chaque locataire à l'aide du gestionnaire d'espaces de noms (au lieu de le définir explicitement pour une requête spécifique). Les API compatibles avec les espaces de noms utilisent toujours l'espace de noms actuel par défaut.
L'API Namespaces est intégrée à Google Workspace, ce qui vous permet d'utiliser votre domaine Google Workspace comme espace de noms actuel. Étant donné que Google Workspace vous permet de déployer votre application sur n'importe lequel de vos domaines, vous pouvez facilement définir des espaces de noms uniques pour tous les domaines associés à votre compte Google Workspace.
Lorsque vous concevez des applications mutualisées, vous devez veiller à éviter les fuites de données sur l'ensemble des espaces de noms. Pour plus d'informations, consultez la section Éviter les fuites de données.
API App Engine utilisant les espaces de noms
App Engine accepte actuellement les espaces de noms dans les API suivantes :
Exemples de projets utilisant les espaces de noms
Deux exemples d'applications de livre d'or utilisant des espaces de noms sont présentés :
- App Engine Python : appengine-multitenancy - Exemple d'application de livre d'or prenant en compte les espaces de noms
- App Engine Java : appengine-gwtguestbook-namespaces-java - Exemple d'application de livre d'or prenant en compte les espaces de noms et utilisant GWT.
Autres utilisations de l'API Namespaces
Si l'API Namespaces permet la mutualisation de l'architecture sur App Engine, elle peut également être utilisée à d'autres fins, par exemple :
- la compartimentation des informations utilisateur ;
- la séparation des données d'administration des données d'application ;
- la création d'instances de datastore distinctes pour les environnements de test et de production ;
- l'exécution de plusieurs applications sur une instance App Engine unique.