A API Namespaces no Google App Engine facilita a compactação dos dados do Google App Engine. Ela é implementada por meio da função appengine.Namespace
e está incorporada em determinadas APIs ativadas por namespaces.
Quando você define um namespace no gerenciador, essas APIs recebem o namespace atual e o utilizam globalmente. Você pode explicitamente declarar um namespace localmente. No entanto, é necessário ter cuidado ao declarar namespaces explicitamente porque isso pode gerar o vazamento de dados e outros bugs inadvertidamente. Qualquer solicitação do App Engine pode acessar qualquer namespace. Assim, fica a cargo do aplicativo impor uma política de controle de acesso nos namespaces.
Use a API Namespaces para criar uma variedade de aplicativos. Um dos usos mais interessantes dessa API é para aplicativos multilocatários, como descrito abaixo.
Sobre a multilocação
Multilocação é o nome dado a uma arquitetura de software em que várias organizações clientes (também conhecidas como locatários) são atendidas por uma instância do aplicativo, executada em um servidor remoto.
Usar uma arquitetura multilocatária simplifica a administração e o aprovisionamento de locatários. É possível fornecer uma experiência do usuário personalizada e facilitada, além de agregar diferentes silos de dados em um único esquema de banco de dados. Como resultado, os aplicativos se tornam mais escalonáveis e com melhor custo-benefício, à medida que você realiza o escalonamento. A segregação e análise de dados entre locatários se torna mais fácil porque estes compartilham o mesmo esquema de banco de dados. Diferentes grupos de usuários veem conteúdo personalizado empacotado em um aplicativo mais eficiente.
Como criar um aplicativo multilocatário com a API Namespaces
Com a Namespaces API, você pode particionar dados com facilidade em locatários simplesmente ao especificar uma string de namespace exclusiva para cada locatário. Basta configurar o namespace para cada locatário globalmente usando o gerenciador de namespace (em vez de configurá-lo explicitamente para uma solicitação específica). As APIs ativadas para namespace sempre usam esse namespace atual por padrão.
A API Namespaces é integrada ao Google Workspace, permitindo que você use seu domínio do Google Workspace como o namespace atual. Como o Google Workspace permite implantar seu app em qualquer domínio de sua propriedade, você pode definir namespaces únicos facilmente para todos os domínios vinculados à sua conta do Google Workspace.
Ao designar aplicativos multilocatários, você deve impedir o vazamento de dados entre namespaces. Para mais informações, acesse Como evitar vazamentos de dados.
APIs do App Engine que usam namespaces
Atualmente o Google App Engine é compatível com namespaces nas seguintes APIs:
Exemplos de projetos usando namespaces
São fornecidos dois exemplos de aplicativos de livro de visitas usando namespaces:
- Python App Engine: appengine-multitenancy — um exemplo de aplicativo de livro de visitas com namespace.
- Java App Engine: appengine-gwtguestbook-namespaces-java — um exemplo de aplicativo de livro de visitas com namespace usando GWT.
Outros usos para a Namespaces API
Além de ativar a multilocação no Google App Engine, a API Namespaces pode ser usada para muitos outros fins, incluindo:
- compartimentalizar informações de usuário;
- separar dados de administração de dados do aplicativo;
- criar instâncias separadas do armazenamento de dados para teste e produção;
- executar vários aplicativos em uma única instância do App Engine.