L'API Namespaces in Google App Engine semplifica la suddivisione dei dati di Google App Engine. Questa API viene implementata tramite un nuovo pacchetto chiamato gestore dello spazio dei nomi ed è incorporata in alcune API compatibili con gli spazi dei nomi.
Quando imposti uno spazio dei nomi nel gestore dello spazio dei nomi, queste API recuperano lo spazio dei nomi corrente e lo utilizzano a livello globale. Puoi dichiarare esplicitamente uno spazio dei nomi localmente, ma devi prestare attenzione quando lo fai, perché potresti creare inavvertitamente fughe di dati e altri bug. Qualsiasi richiesta di App Engine può accedere a qualsiasi spazio dei nomi, lasciando all'applicazione il compito di applicare un criterio di controllo dell'accesso dell'accesso a più spazi dei nomi.
Puoi utilizzare l'API Namespaces per creare un'ampia gamma di applicazioni. Uno degli utilizzi più interessanti di questa API è per le applicazioni multitenant, come descritto di seguito.
Informazioni sul multitenancy
La multitenancy è il nome dato 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 multi-tenant semplifica l'amministrazione e il provisioning degli utenti. Puoi offrire un'esperienza utente più snella e personalizzata, nonché aggregare diversi silos di dati in un unico schema di database. Di conseguenza, le applicazioni diventano più scalabili e più convenienti man mano che aumenti le dimensioni. I dati diventano più facili da separare e analizzare tra i tenant perché tutti i tenant condividono lo stesso schema di database. Gruppi di utenti diversi visualizzano contenuti personalizzati all'interno di un'applicazione più efficiente.
Creazione di un'applicazione multitenant con l'API Namespaces
Con l'API Namespaces, puoi suddividere 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 corrente per impostazione predefinita.
L'API Namespaces è integrata con Google Workspace, il che ti consente di utilizzare il tuo dominio Google Workspace come spazio dei nomi corrente. Poiché Google Workspace ti consente di eseguire il deployment dell'app in qualsiasi dominio di tua proprietà, puoi facilmente impostare spazi dei nomi univoci per tutti i domini collegati al tuo account Google Workspace.
Quando progetti applicazioni multitenant, devi impedire la fuga di dati tra gli spazi dei nomi. Per ulteriori informazioni, consulta la sezione Evitare fughe di dati.
API di App Engine che utilizzano i namespace
Al momento App Engine supporta gli spazi dei nomi nelle seguenti API:
Progetti di esempio che utilizzano gli spazi dei nomi
Vengono fornite due applicazioni guestbook di esempio che utilizzano gli spazi dei nomi:
- Python App Engine: appengine-multitenancy: un'applicazione di esempio del guestbook che tiene conto del nome dello spazio dei nomi.
- Java App Engine: appengine-gwtguestbook-namespaces-java: un'applicazione di esempio del guestbook che tiene conto dei namespace e utilizza GWT.
Altri utilizzi dell'API Namespace
Sebbene l'API Namespaces consenta il multitenancy su App Engine, ha una serie di altri utilizzi, tra cui:
- Separazione delle informazioni utente
- Separazione dei dati di amministrazione dai dati dell'applicazione
- Creazione di istanze di datastore separate per i test e la produzione
- Esecuzione di più app su una singola istanza App Engine