Multi-inquilino e Base de Dados do Azure para PostgreSQL
Muitas soluções multi-inquilino no Azure utilizam o sistema de gestão de bases de dados relacionais open source Base de Dados do Azure para PostgreSQL. Neste artigo, vamos rever as funcionalidades de Base de Dados do Azure para PostgreSQL que são úteis ao trabalhar com sistemas multi-inquilino. O artigo também liga a documentação de orientação e exemplos sobre como utilizar Base de Dados do Azure para PostgreSQL, numa solução multi-inquilino.
Modos de implementação
Existem dois modos de implementação disponíveis para Base de Dados do Azure para PostgreSQL adequados para utilização com aplicações multi-inquilino:
- Servidor Flexível – esta é uma boa opção para a maioria das implementações multi-inquilino que não requerem a escalabilidade elevada fornecida pelo Azure Cosmos DB para PostgreSQL.
- Azure Cosmos DB para PostgreSQL – um serviço de base de dados gerida do Azure concebido para soluções que requerem um elevado nível de dimensionamento, que muitas vezes inclui aplicações multi-inquilino. Este serviço faz parte da família de produtos do Azure Cosmos DB.
Nota
Base de Dados do Azure para PostgreSQL - O Servidor Único está no caminho da reforma e está agendado para a descontinuação até 28 de março de 2025. Não é recomendado para novas cargas de trabalho multi-inquilino.
Funcionalidades de Base de Dados do Azure para PostgreSQL que suportam multi-inquilino
Quando estiver a criar uma aplicação multi-inquilino com Base de Dados do Azure para PostgreSQL, existem várias funcionalidades que pode utilizar para melhorar a solução.
Nota
Algumas funcionalidades só estão disponíveis em modos de implementação específicos. Estas funcionalidades são indicadas na documentação de orientação abaixo.
Segurança ao nível da linha
A segurança ao nível da linha é útil para impor o isolamento ao nível do inquilino, quando utiliza tabelas partilhadas. No PostgreSQL, a segurança ao nível da linha é implementada ao aplicar políticas de segurança de linha a tabelas para restringir o acesso a linhas por inquilino.
Talvez haja um ligeiro impacto no desempenho ao implementar a segurança ao nível da linha numa tabela. Por conseguinte, poderão ter de ser criados índices adicionais em tabelas com segurança ao nível da linha ativada para garantir que o desempenho não é afetado. É recomendado utilizar técnicas de teste de desempenho para validar que a carga de trabalho cumpre os requisitos de desempenho da linha de base quando a segurança ao nível da linha está ativada.
Mais Informações:
Dimensionamento horizontal com fragmentação
O padrão de Fragmentação permite-lhe dimensionar a carga de trabalho em várias bases de dados ou servidores de bases de dados.
As soluções que precisam de um nível de dimensionamento muito elevado podem utilizar o Azure Cosmos DB para PostgreSQL. Este modo de implementação permite a fragmentação horizontal de inquilinos em vários servidores (nós). Ao utilizar tabelas distribuídas em bases de dados multi-inquilino, pode garantir que todos os dados de um inquilino são armazenados no mesmo nó, o que aumenta o desempenho das consultas.
Nota
A partir de outubro de 2022, o Base de Dados do Azure para PostgreSQL Hyperscale (Citus) foi renomeado como Azure Cosmos DB para PostgreSQL e transferido para a família de produtos do Cosmos DB.
Mais Informações:
- Criar uma base de dados multi-inquilino com o Azure Cosmos DB para PostgreSQL
- Tabelas distribuídas
- Escolher uma coluna de distribuição numa tabela distribuída.
- Um guia para utilizar o Citus para aplicações multi-inquilino.
Conjunto de ligações
O Postgres utiliza um modelo baseado em processos para ligações. Este modelo torna ineficiente manter um grande número de ligações inativas. Algumas arquiteturas multi-inquilino requerem um grande número de ligações ativas, o que afetará negativamente o desempenho do servidor Postgres.
O conjunto de ligações através do PgBouncer está instalado por predefinição no Servidor Flexível Base de Dados do Azure para PostgreSQL.
Mais Informações:
- PgBouncer no Base de Dados do Azure para PostgreSQL – Servidor Flexível
- Conjunto de ligaçõ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
Contribuidores
Este artigo é mantido pela Microsoft. Foi originalmente escrito pelos seguintes contribuintes.
Autor principal:
- Daniel Scott-Raynsford | Estratega de Tecnologia de Parceiro
Outros contribuidores:
- John Downs | Engenheiro Principal de Clientes, FastTrack para o Azure
- Arsen Vladimirskiy | Engenheiro Principal de Clientes, FastTrack para o 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 Start-ups
Para ver perfis do LinkedIn não públicos, inicie sessão no LinkedIn.
Passos seguintes
Reveja as abordagens de armazenamento e dados para obter multi-inquilinos.
Comentários
https://aka.ms/ContentUserFeedback.
Brevemente: Ao longo de 2024, vamos descontinuar progressivamente o GitHub Issues como mecanismo de feedback para conteúdos e substituí-lo por um novo sistema de feedback. Para obter mais informações, veja:Submeter e ver comentários