Partilhar via


Práticas recomendadas de arquitetura para o Banco de Dados do Azure para PostgreSQL

O Banco de Dados do Azure para PostgreSQL é um serviço de banco de dados relacional no Azure baseado no banco de dados relacional de código aberto do PostgreSQL. É uma solução de banco de dados totalmente gerenciada e baseada em nuvem que suporta cargas de trabalho de missão crítica com desempenho previsível, segurança, alta disponibilidade e escalabilidade dinâmica. A base de dados do Azure para PostgreSQL é baseada na edição comunitária do motor de base de dados PostgreSQL. É compatível com a edição da comunidade do servidor PostgreSQL e suporta recursos de extensão PostgreSQL, como PostGIS e TimescaleDB.

Este artigo pressupõe que, como arquiteto, você revisou as opções de dados do Azure e escolheu o Banco de Dados do Azure para PostgreSQL como o armazenamento de dados para sua carga de trabalho. As orientações neste artigo fornecem recomendações de arquitetura mapeadas de acordo com os princípios dos pilares do Well-Architected Framework.

Âmbito da tecnologia

Esta análise concentra-se nas decisões inter-relacionadas para os seguintes recursos do Azure:

  • Base de Dados do Azure para PostgreSQL

Reliability

O objetivo do pilar Confiabilidade é fornecer funcionalidade contínua, criando resiliência suficiente e a capacidade de se recuperar rapidamente de falhas.

Os princípios de design de fiabilidade fornecem uma estratégia de design de alto nível aplicada a componentes individuais, aos fluxos do sistema e ao sistema como um todo.

Lista de verificação de design da carga de trabalho

  • Familiarize-se com o Banco de Dados do Azure para diretrizes de confiabilidade de produtos PostgreSQL.
    Para obter mais informações, consulte os seguintes recursos:

  • Alinhe suas metas de confiabilidade e recuperação para o Banco de Dados do Azure para PostgreSQL com suas metas de carga de trabalho. Escolha um Banco de Dados do Azure apropriado para SKU PostgreSQL que possa dar suporte à sua confiabilidade e metas de recuperação.

  • Determine as configurações apropriadas de alta disponibilidade e redundância para seu Banco de Dados do Azure para instâncias PostgreSQL. Determine se você precisa de configurações zonais ou com redundância de zona para atender aos seus requisitos de confiabilidade.

  • Incorpore a recuperação de suas instâncias do Banco de Dados do Azure para PostgreSQL em seu planejamento e exercícios de recuperação de desastres. Certifique-se de que toda a sua carga de trabalho seja recuperável de acordo com suas metas de recuperação.

  • Incorpore seu Banco de Dados do Azure para instâncias PostgreSQL em sua plataforma de observabilidade. Habilite métricas aprimoradas para monitorar a integridade de sua instância. Inclua o monitoramento de integridade de alta disponibilidade em sua solução de monitoramento.

Recomendações de configuração

Recommendation Benefit
Selecione a configuração de alta disponibilidade apropriada. Quando a alta disponibilidade é configurada, o Banco de Dados do Azure para servidor PostgreSQL provisiona e gerencia automaticamente uma réplica em espera. Essa configuração garante que o serviço permaneça disponível e não perca dados durante uma interrupção de zona.
Configure backups com redundância geográfica. Réplicas de leitura entre regiões podem ser implantadas para proteger seus bancos de dados contra falhas no nível da região. Os backups com redundância geográfica são habilitados em regiões selecionadas e ajudam na recuperação de desastres se a região do servidor primário não estiver disponível.

Também é possível alcançar a redundância geográfica utilizando um cofre de Backup do Azure para armazenamento prolongado dos pontos de recuperação. Se ocorrer uma interrupção ou desastre regional, você poderá usar o Backup para restaurar o servidor de banco de dados para uma região emparelhada com o Azure, o que minimiza o tempo de inatividade.

O Backup do Azure também fornece redundância geográfica para o Banco de Dados do Azure para PostgreSQL. Esse recurso aumenta a eficiência e reduz o tempo de inatividade durante desastres ou interrupções regionais.
Teste sua estratégia de backup e restauração regularmente. Testar regularmente sua estratégia de backup e restauração garante que você possa recuperar seus bancos de dados e manter as operações se ocorrer uma falha.

Segurança

O objetivo do pilar Segurança é fornecer garantias de confidencialidade, integridade e disponibilidade para a carga de trabalho.

Os princípios de design de segurança fornecem uma estratégia de design de alto nível para atingir essas metas, aplicando abordagens ao design técnico do Banco de Dados do Azure para PostgreSQL.

Lista de verificação de design da carga de trabalho

  • Revise a linha de base de segurança. Para aperfeiçoar a proteção da sua carga de trabalho, reveja a linha de base de segurança do Azure para a Base de Dados do Azure para PostgreSQL.

  • Implemente um gerenciamento de identidade e acesso rigoroso, condicional e auditável. Use o Microsoft Entra ID para autenticação e autorização para aprimorar o gerenciamento de identidades.

  • Aplique segmentação de rede e controles de segurança. Use firewalls internos no nível do servidor juntamente com mecanismos de firewall de rede virtual para isolar sua instância de outros componentes de carga de trabalho e redes públicas.

  • Use recursos de segurança nativos para adicionar camadas extras de proteção. Ajude a evitar atividades maliciosas configurando a segurança em nível de linha e a limitação de conexão.

Recomendações de configuração

Recommendation Benefit
Implemente grupos de segurança de rede e firewalls para controlar o acesso ao seu banco de dados. Como parte do modelo Zero Trust para segurança, use a segmentação de rede para restringir os caminhos de comunicação entre componentes, como servidores de aplicativos e bancos de dados, apenas ao necessário. Esse recurso pode ser implementado usando grupos de segurança de rede e grupos de segurança de aplicativos.
Conecte-se aos seus bancos de dados pelo Azure Private Link. Private Link permite criar endpoints privados para o Azure Database para PostgreSQL para expandir o serviço dentro da sua rede virtual.
Use o Microsoft Entra ID para autenticação e autorização para aprimorar o gerenciamento de identidades. Você pode usar a autenticação do Microsoft Entra para se conectar ao Banco de Dados do Azure para PostgreSQL usando identidades gerenciadas no Microsoft Entra.
Configure a segurança em nível de linha. A segurança em nível de linha é um recurso de segurança do PostgreSQL que permite que os administradores de banco de dados definam políticas para controlar como linhas específicas de dados são exibidas e operam para uma ou mais funções. A segurança em nível de linha é um filtro extra que você pode aplicar a uma tabela de banco de dados PostgreSQL.
Se necessário para conformidade, use chaves gerenciadas pelo cliente (CMKs) para criptografia de dados e armazene suas chaves no Cofre de Chaves do Azure. As CMKs oferecem controle total do ciclo de vida da sua chave de criptografia, incluindo a rotação da chave, para se alinhar às políticas corporativas. O Cofre da Chave permite o gerenciamento centralizado e a organização de suas chaves de criptografia em suas próprias instâncias dedicadas do Cofre da Chave.
Para obter os mais altos requisitos de segurança, habilite a computação confidencial para proteger os dados em uso com criptografia baseada em hardware. A computação confidencial fornece criptografia baseada em hardware para operações de processamento de dados. As organizações que processam dados confidenciais em setores altamente regulamentados podem atender a requisitos regulatórios rigorosos, mantendo o desempenho do banco de dados.
Habilite a limitação de conexão para endereços IP com excesso de tentativas falhadas de início de sessão. Definir o connection_throttling parâmetro do servidor para enabled ajudar a proteger seus bancos de dados contra tentativas mal-intencionadas de entrada e ataques distribuídos de negação de serviço (DDoS), limitando tentativas repetidas de conexão do mesmo endereço IP.
Realize auditorias de segurança regularmente. A realização regular de auditorias de segurança ajuda a identificar e corrigir potenciais vulnerabilidades.

Otimização de Custos

A Otimização de Custos concentra-se em detetar padrões de gastos, priorizar investimentos em áreas críticas e otimizar em outras para atender ao orçamento da organização enquanto atende aos requisitos de negócios.

Os princípios de design de Otimização de Custos fornecem uma estratégia de design de alto nível para atingir essas metas e fazer compensações conforme necessário no design técnico relacionado ao Banco de Dados do Azure para PostgreSQL e seu ambiente.

Lista de verificação de design da carga de trabalho

  • Estimar o custo inicial. Como parte do seu exercício de modelagem de custos, use a calculadora de preços do Azure para avaliar os custos aproximados associados ao Banco de Dados do Azure para PostgreSQL em sua carga de trabalho.

  • Escolha a camada de serviço certa para sua carga de trabalho. Determine se a camada de preços Burstable, General Purpose ou Memory Optimized para recursos de computação atende às suas necessidades de caso de uso.

  • Aplique uma estratégia de dimensionamento bem informada. Para determinar quando e como dimensionar seu Banco de Dados do Azure para recursos do PostgreSQL, observe e analise continuamente sua capacidade e demanda de carga de trabalho.

  • Aproveite os descontos disponíveis. Considere reservas de cálculo de um ou três anos. As instâncias reservadas podem economizar custos significativos para recursos de computação.

  • Use o armazenamento provisionado. Não há cobrança extra para armazenamento de backup de até 100% do armazenamento total do servidor provisionado.

  • Entenda os custos de redundância. O uso de configurações zonais ou com redundância de zona dobra os custos da instância, portanto, considere cuidadosamente seu projeto de redundância.

  • Compreenda os custos de armazenamento de instâncias protegidas e de backups. Ao fazer backup do Banco de Dados do Azure para PostgreSQL usando o Backup do Azure, você incorre em taxas de instância protegidas para cada 250 GB e taxas de armazenamento de backup com base no total de dados armazenados e no tipo de redundância.

  • Implante na mesma região que um aplicativo. Implante na mesma região que seus aplicativos para minimizar os custos de transferência.

  • Consolide bancos de dados e servidores. Quando prático, a consolidação de vários bancos de dados e servidores em um único servidor pode ajudar a reduzir custos.

Recomendações de configuração

Recommendations Benefits
Escolha o nível e o SKU certos. Escolher o nível e o SKU certos ajuda a evitar o desperdício de dinheiro em recursos provisionados em excesso. O Azure Advisor fornece recomendações, inclui sugestões de direitos de servidor, para otimizar e reduzir os seus gastos gerais do Azure.
Dimensione os recursos de computação e armazenamento quando a demanda da carga de trabalho mudar. Você pode dimensionar recursos de computação verticalmente (para cima ou para baixo) e horizontalmente (para fora ou para dentro), conforme necessário. Não é possível diminuir a escala de armazenamento após um aumento na escala.
Use o recurso start/stop. Use o recurso start/stop para impedir que o servidor seja executado quando não for necessário.

Excelência Operacional

A Excelência Operacional concentra-se principalmente em procedimentos para práticas de desenvolvimento de , observabilidade e gestão de lançamento.

Os princípios de design de Excelência Operacional fornecem uma estratégia de design de alto nível para alcançar essas metas relativamente aos requisitos operacionais da carga de trabalho.

Lista de verificação de design da carga de trabalho

  • Otimize a capacidade de recuperação de seus bancos de dados. Defina políticas de backup e retenção para atender aos seus requisitos de conformidade.

  • Automatize tarefas operacionais. Use tarefas de automação para executar automaticamente tarefas como iniciar e parar um servidor, dimensionar recursos e outras tarefas.

  • Monitore a integridade e o desempenho do banco de dados. Colete e analise logs e métricas de sua instância para detetar proativamente possíveis problemas.

  • Mantenha-se atualizado com as versões do PostgreSQL. As versões mais recentes vêm com recursos de atualização in-loco com tempo de inatividade zero, permitindo transições de versão principais sem interrupção do serviço.

Recomendações de configuração

Recommendation Benefits
Use uma política de Backup do Azure individualmente ou em conjunto com os backups automatizados nativos para fazer backup de bancos de dados. O Banco de Dados do Azure para PostgreSQL fornece backups automatizados e restauração point-in-time para seu banco de dados. Você pode configurar o período de retenção para backups de até 35 dias.

Use o Backup do Azure para definir como e quando os backups são criados, o período de retenção para pontos de recuperação e as regras de proteção e recuperação de dados. Você pode reter pontos de recuperação em um cofre do Backup do Azure por até 10 anos. Você também pode gerenciar as operações de backup e restauração usando o Centro de Continuidade de Negócios do Azure.
Agende janelas de manutenção personalizadas para aplicar atualizações de serviço. Você pode definir uma agenda personalizada para cada Banco de Dados do Azure para PostgreSQL em sua assinatura do Azure. Com uma programação personalizada, você pode especificar sua janela de manutenção para o servidor escolhendo o dia da semana e a hora de início da janela de manutenção de uma hora.
Monitore seu servidor para garantir que ele esteja íntegro e funcionando conforme o esperado. O Banco de Dados do Azure para PostgreSQL tem várias métricas que fornecem informações sobre o comportamento dos recursos que dão suporte à instância do Banco de Dados do Azure para PostgreSQL. Você também pode habilitar métricas aprimoradas para obter monitoramento e alertas refinados em bancos de dados.

Eficiência de desempenho

A Eficiência de Desempenho tem a ver manter a experiência do usuário, mesmo quando há um aumento na de carga por meio do gerenciamento de capacidade. A estratégia inclui dimensionar recursos, identificar e otimizar potenciais gargalos e otimizar para obter o máximo desempenho.

Os princípios de design de Eficiência de Desempenho fornecem uma estratégia de design de alto nível para atingir essas metas de capacidade de acordo com o uso esperado.

Lista de verificação de design da carga de trabalho

  • Otimize consultas. Use recursos nativos para encontrar oportunidades para otimizar consultas.

  • Otimize índices. Use recursos como ajuste de índice para analisar automaticamente padrões de consulta e receber recomendações acionáveis para criar ou descartar índices para melhorar o desempenho.

  • Transferir operações de apenas leitura. Se seu aplicativo oferecer suporte a cadeias de conexão somente leitura, você poderá descarregar operações somente leitura para ler réplicas.

Recomendações de configuração

Recommendation Benefits
Use o repositório de consultas para acompanhar o desempenho da consulta ao longo do tempo. O repositório de consultas simplifica a solução de problemas de desempenho, ajudando você a encontrar rapidamente as consultas de execução mais longa e que consomem mais recursos.
Use o Query Performance Insight para identificar as consultas que mais consomem recursos e são de longa execução em sua carga de trabalho. O Query Performance Insight ajuda a identificar consultas de longa execução e suas alterações ao longo do tempo, determinar os tipos de espera que as afetam, analisar as principais consultas de banco de dados por frequência e outros benefícios.
Use o ajuste de índice com o repositório de consultas para analisar consultas controladas e fornecer recomendações. O ajuste de índice analisa a carga de trabalho que o repositório de consultas rastreia. Ele produz recomendações de índice para melhorar o desempenho da carga de trabalho analisada ou para descartar índices duplicados ou não utilizados. O ajuste de índice ajuda a identificar índices benéficos, índices duplicados e índices não utilizados.
Use o ajuste inteligente para melhorar o desempenho automaticamente e ajudar a evitar problemas. O ajuste inteligente monitora continuamente o status do banco de dados flexível do Banco de Dados do Azure para PostgreSQL e adapta dinamicamente o banco de dados à sua carga de trabalho.
Ativar o suporte para PgBouncer para otimizar o pooling de ligações. Melhora a utilização dos recursos da base de dados e a gestão de ligações.

Políticas do Azure

O Azure fornece um extenso conjunto de políticas internas relacionadas ao Banco de Dados do Azure para PostgreSQL e suas dependências. Algumas das recomendações anteriores podem ser auditadas por meio da Política do Azure. Por exemplo, pode verificar se:

Para obter uma governança abrangente, revise as definições internas da Política do Azure para o Banco de Dados do Azure para PostgreSQL e outras políticas que podem afetar a segurança dos armazenamentos de dados.

Recomendações do Azure Advisor

O Azure Advisor é um consultor de nuvem personalizado que ajuda você a seguir as práticas recomendadas para otimizar suas implantações do Azure.

Para obter mais informações, consulte Azure Advisor.

Exemplo de arquitetura

Arquitetura básica que demonstra as principais recomendações: Padrão de aplicativo Web confiável para Java.