Multilocação e Banco de Dados do Azure para PostgreSQL
Muitas soluções para multilocatários no Azure usam o sistema de gerenciamento de banco de dados relacional de código aberto do Banco de Dados do Azure para PostgreSQL. Neste artigo, examinamos os recursos do Banco de Dados do Azure para PostgreSQL que são úteis ao trabalhar com sistemas multilocatários. O artigo também está vinculado a orientações e exemplos de como usar o Banco de Dados do Azure para PostgreSQL, em uma solução multilocatário.
Modos de implantaçã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ários:
- Banco de Dados do Azure para PostgreSQL – Servidor Flexível: essa é uma boa opção para a maioria das implantações multilocatário que não exigem a alta escalabilidade fornecida pelo Azure Cosmos DB for 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 multilocatários. Esse serviço faz parte da família de produtos do Azure Cosmos DB.
Observação
O Banco de Dados do Azure para PostgreSQL – Servidor Único está em processo de desativação e está programado para ser desativado até 28 de março de 2025. Não é recomendado para novas cargas de trabalho multilocatário.
Recursos de 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á uma série de recursos que você pode usar para aprimorar a solução.
Observação
Alguns recursos só estão disponíveis em modos de implantação específicos. Esses recursos são indicados nas diretrizes abaixo.
Segurança em 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, 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 a segurança em nível de linha em uma tabela. Portanto, talvez seja necessário criar índices adicionais em tabelas com a 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 a carga de trabalho atenderá aos requisitos de desempenho da linha de base quando a segurança em nível de linha estiver habilitada.
Para obter mais informações:
Dimensionamento horizontal com fragmentação
O padrão Fragmentação permite expandir 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 for PostgreSQL. Esse modo de implantação permite a fragmentação horizontal de locatários em vários servidores (nós). Ao usar tabelas distribuídas em bancos de dados multilocatários, você pode garantir que todos os dados de um locatário sejam armazenados no mesmo nó, o que aumenta o desempenho da consulta.
Observação
A partir de outubro de 2022, a marca Hiperescala (Citus) do Banco de Dados do Azure para PostgreSQL foi renomeada para Azure Cosmos DB for PostgreSQL e transferida para a família de produtos Cosmos DB.
Para obter mais informações:
- Criar um banco de dados multilocatário usando o Azure Cosmos DB for PostgreSQL
- Tabelas distribuídas
- A escolha de uma coluna de distribuição em uma tabela distribuída.
- Um guia para usar o Citus para aplicativos multilocatários.
Pool de conexões
O Postgres usa um modelo baseado em processo para conexões. Esse modelo torna ineficiente manter um grande número de conexões ociosas. Algumas arquiteturas multilocatário requerem um grande número de conexões ativas, o que afetará negativamente o desempenho do servidor Postgres.
O pool de conexões por meio do PgBouncer é instalado por padrão no Banco de Dados do Azure para PostgreSQL – Servidor Flexível.
Para obter mais informações:
- PgBouncer - Banco de Dados do Azure para PostgreSQL - servidor flexível
- Pool de conexões no Azure Cosmos DB for PostgreSQL
- Etapas para instalar e configurar o proxy de pooling de conexões do PgBouncer com o Banco de Dados do Azure para PostgreSQL
autenticação do Microsoft Entra
O Banco de Dados do Azure para PostgreSQL – Servidor Flexível oferece suporte à autenticação de conexões usando o Microsoft Entra ID. Esse recurso permite que as cargas de trabalho do aplicativo em um ambiente multilocatário sejam autenticadas 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. Para obter mais informações:
- Autenticação do Microsoft Entra com o Banco de Dados do Azure para PostgreSQL – Servidor flexível
- Conectar com a identidade gerenciada ao Banco de Dados do Azure para PostgreSQL – Servidor Flexível
Colaboradores
Esse artigo é mantido pela Microsoft. Ele foi originalmente escrito pelos colaboradores a seguir.
Autor principal:
- Daniel Scott-Raynsford | Estrategista de Tecnologia Do Parceiro
Outros colaboradores:
- John Downs | Engenheiro de software principal
- Arsen Vladimirskiy | Engenheiro principal de atendimento ao cliente, FastTrack for Azure
- Paul Burpo | Engenheiro de cliente principal, ISVs do FastTrack for Azure
- Assaf Fraenkel | Engenheiro/Arquiteto de Dados Sênior, Azure FastTrack para ISVs e Start-ups
Para ver perfis não públicos do LinkedIn, entre no LinkedIn.
Próximas etapas
Examine as abordagens de armazenamento e de dados para multilocação.