Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Muitas soluções multiclientes no Azure utilizam o sistema de gestão de bases de dados relacionais de código aberto Azure Database para PostgreSQL. Este artigo descreve os recursos do Banco de Dados do Azure para PostgreSQL que são úteis quando você trabalha com sistemas multilocatário. O artigo também inclui 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
Os seguintes modos de implantação estão disponíveis para o Banco de Dados do Azure para PostgreSQL e são adequados para uso com aplicativos multilocatário:
O servidor flexível do Banco de Dados do Azure para PostgreSQL é uma boa opção para a maioria das implantações multilocatárias que não exigem a alta escalabilidade que o Azure Cosmos DB para PostgreSQL fornece.
O servidor flexível do Banco de Dados do Azure para PostgreSQL com clusters elásticos (visualização) fornece dimensionamento horizontal dentro de um serviço gerenciado. É adequado para aplicativos multilocatários que precisam ser dimensionados de alguns locatários para um grande número de locatários. Este recurso está em visualização e não é recomendado para uso em produção. No entanto, você pode começar a avaliá-lo para implementação futura.
O Azure Cosmos DB para PostgreSQL é um serviço de banco de dados gerenciado pelo Azure projetado para soluções que exigem um alto nível de escala, como aplicativos multilocatário. Este serviço faz parte da família de produtos Azure Cosmos DB.
Nota
O servidor único do Banco de Dados do Azure para PostgreSQL está no caminho da aposentadoria e está programado para ser aposentado 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ê usa o Banco de Dados do Azure para PostgreSQL para criar um aplicativo multilocatário, os recursos a seguir podem aprimorar sua solução.
Nota
Alguns recursos só estão disponíveis em modos de implantação específicos. As orientações a seguir descrevem quais recursos estão disponíveis.
Segurança a nível de 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, você implementa segurança em nível de linha aplicando políticas de segurança de linha a tabelas para restringir o acesso a linhas por locatário.
A implementação da segurança em nível de linha em uma tabela pode afetar o desempenho. Talvez seja necessário criar outros índices em tabelas que tenham a segurança em nível de linha habilitada para garantir que o desempenho não seja afetado. Ao usar a segurança em nível de linha, é importante usar técnicas de teste de desempenho para validar se sua carga de trabalho atende aos requisitos de desempenho da linha de base.
Para obter mais informações, consulte Proteger seu Banco de Dados do Azure para o servidor PostgreSQL.
Dimensionamento horizontal com fragmentação
O padrão de fragmentação permite dimensionar a sua carga de trabalho em vários bancos de dados ou servidores de banco de dados.
As soluções que precisam de um alto nível 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 ou nós. Use tabelas distribuídas em bancos de dados multilocatários para garantir que todos os dados de um locatário sejam armazenados no mesmo nó. Essa abordagem melhora o desempenho da consulta.
Nota
Em 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 Azure Cosmos DB.
Para obter mais informações, consulte os seguintes artigos:
- Projetar um banco de dados multilocatário usando o Azure Cosmos DB para PostgreSQL
- Tabelas distribuídas
- Escolher colunas de distribuição
- Usar o Citus para aplicativos multilocatários
Clusters elásticos (visualização)
Os clusters elásticos são um recurso do Banco de Dados do Azure para o servidor flexível PostgreSQL. Eles fornecem recursos de dimensionamento horizontal em um único serviço gerenciado. Essa opção de implantação usa a funcionalidade de tabela distribuída para cargas de trabalho multilocatárias que exigem recursos de expansão.
Em soluções multilocatário, os clusters elásticos permitem a fragmentação de dados do locatário em vários nós. Você pode distribuir tabelas por ID de locatário para garantir que os dados do locatário sejam colocados em nós específicos. Essa abordagem pode melhorar o desempenho da consulta para consultas específicas do locatário.
Nota
Os clusters elásticos estão em pré-visualização e disponíveis apenas na Base de Dados do Azure para o servidor flexível PostgreSQL.
Para obter mais informações, consulte Clusters elásticos no Banco de Dados do Azure para servidor flexível PostgreSQL (visualização).
Pool 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 muitas conexões ativas, o que afeta negativamente o desempenho do servidor Postgres.
O pool de conexões via PgBouncer é instalado por padrão no Banco de Dados do Azure para servidor flexível PostgreSQL.
Para obter mais informações, consulte os seguintes artigos:
- PgBouncer no Banco de Dados do Azure para servidor flexível PostgreSQL
- Agrupamento de conexões em 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 servidor flexível do Banco de Dados do Azure para PostgreSQL dá suporte à autenticação de conexão 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 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.
Para obter mais informações, consulte os seguintes artigos:
- Autenticação do Microsoft Entra no Banco de Dados do Azure para PostgreSQL
- Conectar-se com identidade gerenciada ao Banco de Dados do Azure para servidor flexível PostgreSQL
Computação confidencial do Azure (visualização)
O servidor flexível do Banco de Dados do Azure para PostgreSQL dá suporte à computação confidencial do Azure por meio de ambientes de execução confiáveis (TEEs), que fornecem proteção baseada em hardware para dados em uso. Esse recurso protege os dados do locatário contra acesso não autorizado pelo sistema operacional, hipervisor ou outros aplicativos.
Para soluções multilocatárias que lidam com dados confidenciais, a computação confidencial fornece proteção de dados em nível de hardware durante o processamento. Use computação confidencial quando os locatários tiverem requisitos estritos de proteção de dados ou necessidades de conformidade regulatória ou quando você precisar garantir que o provedor de aplicativos não possa acessar os dados do locatário.
Nota
A computação confidencial está atualmente em pré-visualização e requer SKUs de máquina virtual específicas.
Para obter mais informações, consulte Computação confidencial do Azure para o Banco de Dados do Azure para PostgreSQL (visualização).
Encriptação
Os dados armazenados no Banco de Dados do Azure para servidor flexível PostgreSQL são criptografados em repouso por padrão usando chaves gerenciadas pela Microsoft, mas você também pode usar chaves gerenciadas pelo cliente (CMKs) para permitir que os locatários especifiquem suas próprias chaves de criptografia.
Ao usar CMKs, você pode fornecer suas próprias chaves de criptografia armazenadas no Cofre de Chaves do Azure. Em ambientes multilocatário, essa abordagem permite que você use chaves de criptografia diferentes para locatários diferentes, mesmo quando seus dados são armazenados no mesmo servidor de banco de dados. Esse recurso também dá aos locatários controle sobre suas próprias chaves de criptografia. Se um locatário optar por desativar sua conta, excluir a chave associada garantirá que seus dados não estejam mais acessíveis.
O Banco de Dados do Azure para servidor flexível PostgreSQL dá suporte a atualizações automáticas de versão de chave para CMKs. Esse recurso é atualizado automaticamente para novas versões de chaves após a rotação no Cofre de Chaves e não requer gerenciamento manual de versões de chaves. Em ambientes multilocatários onde a conformidade regulatória exige rotação regular de chaves, essa automação reduz as tarefas operacionais manuais e mantém a proteção de dados sem interrupção do serviço.
Para obter mais informações, consulte os seguintes artigos:
- Encriptação de dados em repouso
- Configurar criptografia de dados
- Atualizações automáticas da versão da chave
Contribuidores
A Microsoft mantém este artigo. Os seguintes colaboradores escreveram este artigo.
Autor principal:
- Daniel Scott-Raynsford | Arquiteto de Soluções de Parceiros, Dados e IA
Outros contribuidores:
- John Downs | Engenheiro de Software Principal, Azure Patterns & Practices
- Arsen Vladimirskiy | Engenheiro Principal de Clientes, FastTrack para Azure
- Paul Burpo | Engenheiro Principal de Clientes, FastTrack para ISVs do Azure
- Assaf Fraenkel | Engenheiro Sénior/Arquiteto de Dados, Azure FastTrack para ISVs e Startups
Para ver perfis não públicos do LinkedIn, faça login no LinkedIn.