Multilocação e Banco de Dados do Azure para PostgreSQL
Muitas soluções multilocatárias no Azure usam o sistema de gerenciamento de banco de dados relacional de código aberto Banco de Dados do Azure para PostgreSQL. Neste artigo, analisamos os recursos do Banco de Dados do Azure para PostgreSQL que são úteis ao trabalhar com sistemas multilocatário. O artigo também contém links para orientações e exemplos de como usar o Banco de Dados do Azure para PostgreSQL, em uma solução multilocatário.
Modos de implementação
Há dois modos de implantação disponíveis para o Banco de Dados do Azure para PostgreSQL que são adequados para uso com aplicativos multilocatário:
- Banco de Dados do Azure para PostgreSQL - Servidor Flexível - Esta é uma boa opção para a maioria das implantações multilocatárias que não exigem a alta escalabilidade fornecida pelo Azure Cosmos DB para PostgreSQL.
- Azure Cosmos DB for PostgreSQL - Um serviço de banco de dados gerenciado do Azure projetado para soluções que exigem um alto nível de escala, que geralmente inclui aplicativos multilocados. Este serviço faz parte da família de produtos Azure Cosmos DB.
Nota
O Banco de Dados do Azure para PostgreSQL - Servidor Único está no caminho da aposentadoria e está programado para a aposentadoria até 28 de março de 2025. Não é recomendado para novas cargas de trabalho multilocatário.
Recursos do Banco de Dados do Azure para PostgreSQL que dão suporte à multilocação
Quando você está criando um aplicativo multilocatário usando o Banco de Dados do Azure para PostgreSQL, há vários recursos que você pode usar para aprimorar a solução.
Nota
Alguns recursos só estão disponíveis em modos de implantação específicos. Esses recursos são indicados nas orientações abaixo.
Segurança ao nível da linha
A segurança em nível de linha é útil para impor o isolamento no nível do locatário quando você usa tabelas compartilhadas. No PostgreSQL, a segurança em nível de linha é implementada aplicando políticas de segurança de linha a tabelas para restringir o acesso a linhas por locatário.
Talvez haja um pequeno impacto no desempenho ao implementar segurança em nível de linha em uma tabela. Portanto, talvez seja necessário criar índices adicionais em tabelas com segurança em nível de linha habilitada para garantir que o desempenho não seja afetado. É recomendável usar técnicas de teste de desempenho para validar se sua carga de trabalho atende aos requisitos de desempenho da linha de base quando a segurança em nível de linha está habilitada.
Mais informações:
Dimensionamento horizontal com fragmentação
O padrão de compartilhamento permite dimensionar sua carga de trabalho em vários bancos de dados ou servidores de banco de dados.
As soluções que precisam de um nível muito alto de escala podem usar o Azure Cosmos DB para PostgreSQL. Esse modo de implantação permite a fragmentação horizontal de locatários em vários servidores (nós). Usando tabelas distribuídas em bancos de dados multilocatário, você pode garantir que todos os dados de um locatário sejam armazenados no mesmo nó, o que aumenta o desempenho da consulta.
Nota
A partir de outubro de 2022, o Banco de Dados do Azure para Hiperescala PostgreSQL (Citus) foi rebatizado como Azure Cosmos DB para PostgreSQL e movido para a família de produtos Cosmos DB.
Mais informações:
- Projetar um banco de dados multilocatário usando o Azure Cosmos DB para PostgreSQL
- Tabelas distribuídas
- Escolher uma coluna de distribuição em uma tabela distribuída.
- Um guia para usar o Citus para aplicativos multilocatário.
Conjunto de ligações
O Postgres usa um modelo baseado em processos para conexões. Este modelo torna ineficiente manter um grande número de conexões ociosas. Algumas arquiteturas multilocatárias exigem um grande número de conexões ativas, o que afetará negativamente o desempenho do servidor Postgres.
O pool de conexões via PgBouncer é instalado por padrão no Banco de Dados do Azure para PostgreSQL - Servidor Flexível.
Mais informações:
- PgBouncer no Banco de Dados do Azure para PostgreSQL - Servidor Flexível
- Pool de conexões no Azure Cosmos DB para PostgreSQL
- Passos para instalar e configurar o proxy do conjunto de ligações do PgBouncer com a Base de Dados do Azure para PostgreSQL
Autenticação do Microsoft Entra
O Banco de Dados do Azure para PostgreSQL - Servidor Flexível dá suporte à autenticação de conexões usando a ID do Microsoft Entra. Esse recurso permite que cargas de trabalho de aplicativos em um ambiente multilocatário se autentiquem no banco de dados usando uma entidade de serviço específica do locatário ou uma identidade gerenciada, o que significa que o acesso ao banco de dados pode ter como escopo um locatário individual. Ao combinar a autenticação do Microsoft Entra ID com políticas de segurança de linha específicas do locatário, você pode reduzir o risco de um aplicativo acessar os dados de outro locatário de dentro de um banco de dados multilocatário. Mais informações:
- Autenticação do Microsoft Entra com o Banco de Dados do Azure para PostgreSQL - Servidor Flexível
- Ligar com uma identidade gerida à Base de Dados do Azure para PostgreSQL – Servidor Flexível
Contribuidores
Este artigo é mantido pela Microsoft. Foi originalmente escrito pelos seguintes contribuidores.
Autor principal:
- Daniel Scott-Raynsford - Brasil | Estrategista de Tecnologia de Parceiros
Outros contribuidores:
- John Downs - Brasil | Engenheiro de Software Principal
- Arsen Vladimirskiy - Brasil | Engenheiro de Clientes Principal, FastTrack for Azure
- Paul Burpo - Brasil | Engenheiro de Clientes Principal, FastTrack para ISVs do Azure
- Assaf Fraenkel - Brasil | Engenheiro Sénior/Arquiteto de Dados, Azure FastTrack para ISVs e Start-ups
Para ver perfis não públicos do LinkedIn, inicie sessão no LinkedIn.
Próximos passos
Analise as abordagens de armazenamento e dados para multilocação.