L'API Namespaces in Google App Engine semplifica la compartimentazione dei dati di Google App Engine. Questa API viene implementata tramite la funzione appengine.Namespace
ed è incorporata in alcune API abilitate per lo spazio dei nomi.
Quando imposti uno spazio dei nomi nel gestore dello spazio dei nomi, queste API ricevono lo spazio dei nomi attuale e lo utilizzano a livello globale. Puoi dichiarare esplicitamente uno spazio dei nomi localmente, ma devi fare attenzione quando dichiari esplicitamente gli spazi dei nomi, perché potresti creare inavvertitamente fughe di dati e altri bug. Qualsiasi richiesta App Engine può accedere a qualsiasi spazio dei nomi, lasciando all'applicazione l'applicazione forzata di un criterio di controllo dell'accesso dell'accesso per più spazi dei nomi.
Puoi utilizzare l'API Namespaces per creare un'ampia gamma di applicazioni. Uno degli utilizzi più convincenti di questa API è per le applicazioni multitenant, come descritto di seguito.
Informazioni sulla multitenancy
Multitenancy è il nome assegnato a un'architettura software in cui un'istanza di un'applicazione, in esecuzione su un server remoto, serve molte organizzazioni client (note anche come tenant).
L'utilizzo di un'architettura multitenant semplifica l'amministrazione e il provisioning dei tenant. Puoi fornire un'esperienza utente più semplice e personalizzata e anche aggregare diversi silos di dati in un unico schema di database. Di conseguenza, le applicazioni diventano più scalabili e più convenienti a mano a mano che scala. È più facile separare e analizzare i dati tra i tenant perché tutti i tenant condividono lo stesso schema di database. Gruppi di utenti diversi vedono contenuti personalizzati aggregati in un'applicazione più efficiente.
Creazione di un'applicazione multitenant con l'API Namespaces
Utilizzando l'API Namespaces, puoi partizionare facilmente i dati tra i tenant semplicemente specificando una stringa dello spazio dei nomi univoca per ogni tenant. Devi semplicemente impostare lo spazio dei nomi per ogni tenant a livello globale utilizzando il gestore dello spazio dei nomi (anziché impostarlo esplicitamente per una richiesta specifica). Le API abilitate per lo spazio dei nomi utilizzano sempre questo spazio dei nomi attuale per impostazione predefinita.
L'API Namespaces è integrata con Google Workspace e ti consente di utilizzare il tuo dominio Google Workspace come spazio dei nomi attuale. Poiché Google Workspace ti consente di eseguire il deployment della tua app in qualsiasi dominio di tua proprietà, puoi facilmente impostare spazi dei nomi univoci per tutti i domini collegati al tuo account Google Workspace.
Durante la progettazione di applicazioni multitenant, è necessario impedire fughe di dati negli spazi dei nomi. Per ulteriori informazioni, consulta la sezione Evitare le fughe di dati.
API App Engine che utilizzano gli spazi dei nomi
Al momento App Engine supporta gli spazi dei nomi nelle seguenti API:
Progetti di esempio che utilizzano gli spazi dei nomi
Sono disponibili due applicazioni guestbook di esempio che utilizzano gli spazi dei nomi:
- Python App Engine: appengine-multitenancy – Un'applicazione guestbook di esempio sensibile allo spazio dei nomi.
- Java App Engine: appengine-gwtguestbook-namespaces-java - Un'applicazione guestbook di esempio sensibile allo spazio dei nomi che utilizza GWT.
Altri utilizzi dell'API Namespace
Sebbene l'API Namespaces consenta la multitenancy su App Engine, ha una serie di altri utilizzi, tra cui:
- Compartimentazione delle informazioni degli utenti
- Separazione dei dati dell'amministratore dai dati dell'applicazione
- Creazione di istanze di datastore separate per test e produzione
- Esecuzione di più applicazioni su una singola istanza App Engine