Compartilhar via


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

Este artigo fornece práticas recomendadas de arquitetura para o Banco de Dados do Azure para PostgreSQL.

A orientação se baseia nos cinco pilares da excelência arquitetônica:

  • Fiabilidade
  • Segurança
  • Otimização de custo
  • Excelência operacional
  • Eficiência de desempenho

Pré-requisitos

Entender os pilares do Well-Architected Framework pode ajudar a produzir uma arquitetura de nuvem de alta qualidade, estável e eficiente. Recomendamos revisar sua carga de trabalho usando a Revisão do Azure Well-Architected Framework do AKS.

Banco de Dados do Azure para PostgreSQL é um serviço de banco de dados relacional no Azure com base no banco de dados relacional de software livre postgreSQL. É um banco de dados totalmente gerenciado como uma oferta de serviço que pode lidar com cargas de trabalho críticas com desempenho previsível, segurança, alta disponibilidade e escalabilidade dinâmica. O Banco de Dados do Azure para PostgreSQL é construído sobre a edição comunitária do mecanismo de banco de dados PostgreSQL. Ele é compatível com a edição de comunidade do servidor PostgreSQL e dá suporte a recursos de extensão do PostgreSQL, como PostGIS e TimescaleDB.

Nota

Para explorar uma ideia de solução leve que usa o Banco de Dados do Azure para PostgreSQL para armazenar resultados analíticos da API de Serviços Cognitivos, consulte aplicativos inteligentes usando o Banco de Dados do Azure para PostgreSQL.

Fiabilidade

O Banco de Dados do Azure para PostgreSQL – Servidor Flexível dá suporte a alta disponibilidade ao provisionar réplicas primárias e em espera separadas fisicamente na mesma zona de disponibilidade (zonal) ou entre zonas de disponibilidade (com redundância de zona). Esse modelo de alta disponibilidade garante que os dados confirmados nunca sejam perdidos se ocorrer uma falha. O modelo também foi projetado para que o banco de dados não se torne um único ponto de falha em sua arquitetura de software. O Banco de Dados do Azure para PostgreSQL – Servidor Flexível fornece recursos que protegem dados e reduzem o tempo de inatividade para seus bancos de dados críticos durante eventos de tempo de inatividade planejados e não planejados. Criado com base na infraestrutura do Azure que oferece resiliência e disponibilidade robustas, o servidor flexível tem recursos de continuidade de negócios que fornecem proteção contra falhas, requisitos de tempo de recuperação de endereço e reduzem a exposição à perda de dados.

Lista de verificação de design de confiabilidade

Você deve examinar os princípios de design para otimizar o custo de sua arquitetura.

  • Destinos definidos para RPO (Objetivo de Ponto de Recuperação) e RTO (Objetivo de Tempo de Recuperação) para cargas de trabalho.
  • Selecione a configuração de alta disponibilidade apropriada.
  • Configurar backup com redundância geográfica.
  • Teste seu plano de recuperação de desastre para garantir a restauração rápida de dados em caso de falha.
  • Teste o failover sob demanda para o servidor habilitado com HA para garantir que nosso aplicativo funcione conforme o esperado.
  • Monitore o servidor para garantir que ele esteja íntegro e executando conforme o esperado.

Recomendações de confiabilidade

Recomendação Benefício
Destinos definidos para RPO (Objetivo de Ponto de Recuperação) e RTO (Objetivo de Tempo de Recuperação) para cargas de trabalho. Derivar esses valores realizando uma avaliação de risco e garantindo que você entenda o custo e o risco de tempo de inatividade e perda de dados. Esses são requisitos não funcionais de um sistema e devem ser determinados pelos requisitos de negócios.
Selecione a configuração de alta disponibilidade apropriada. O Banco de Dados do Azure para PostgreSQL Server oferece configurações de alta disponibilidade, garantindo que o serviço permaneça disponível se houver uma interrupção de zona e nenhum dado for perdido. Quando a alta disponibilidade é configurada, o servidor do Banco de Dados do Azure para PostgreSQL provisiona e gerencia automaticamente uma réplica em espera.
Configure o backup de 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 desastre se a região do servidor primário estiver inoperante.

A redundância geográfica também pode ser obtida usando um cofre de Backup do Azure para armazenamento de longo prazo dos pontos de recuperação. No caso de uma interrupção ou desastre regional, você pode usar o Backup do Azure para restaurar o servidor de banco de dados para uma região emparelhada com o Azure, minimizando o tempo de inatividade.

O Backup do Azure também oferece redundância geográfica para o Banco de Dados do Azure para PostgreSQL – Servidor Flexível, aumentando a eficiência e reduzindo o tempo de inatividade durante desastres ou interrupções de região.
Teste seu plano de recuperação de desastre para garantir a restauração rápida de dados se houver uma falha. As réplicas de leitura podem ser implantadas em outra região e promovidas a um servidor de leitura e gravação quando a recuperação de desastre for necessária.
Monitore o servidor para garantir que ele esteja íntegro e executando conforme o esperado. Temos o monitoramento de banco de dados em vigor para monitorar e alertar sobre falhas no nível do banco de dados.

Dica

Para obter mais detalhes sobre as diretrizes de confiabilidade do Banco de Dados do Azure para PostgreSQL, consulte Confiabilidade com o Banco de Dados do Azure para PostgreSQL.

Definições de política do Azure

As definições do Azure Policy ajudam você a impor regras e configurações específicas para recursos em seu ambiente do Azure. Para garantir a confiabilidade do Banco de Dados do Azure para PostgreSQL, você pode criar definições personalizadas do Azure Policy para implementar configurações e práticas recomendadas específicas. Aqui está um exemplo de algumas definições personalizadas do Azure Policy que você pode criar para confiabilidade:

Segurança

Pense na segurança durante todo o ciclo de vida de um aplicativo, desde o design e implementação até a implantação e operações. A plataforma do Azure protege contra várias ameaças, como intrusão de rede e ataques de DDoS. Você ainda precisa criar segurança em seu aplicativo e em seus processos de DevOps.

Lista de verificação de design de segurança

Você deve examinar os princípios de design para otimizar o custo de sua arquitetura.

  • Usar SSL/TLS e aplicar criptografia para proteger dados em trânsito.
  • Implemente grupos de segurança de rede e firewalls para controlar o acesso ao banco de dados.
  • Use a ID do Microsoft Entra para autenticação e autorização para aprimorar o gerenciamento de identidade.
  • Configurar segurança em nível de linha.

Recomendações de segurança

Recomendação Benefício
Use SSL e criptografia para proteger dados em trânsito. Implante o certificado DigiCert Global Root, uma AC (autoridade de certificação) confiável, necessária para comunicação via SSL com aplicativos cliente.
Implemente grupos de segurança de rede e firewalls para controlar o acesso ao banco de dados. Como parte do Modelo de Confiança Zero para segurança, a segmentação de rede é recomendada quando os caminhos de comunicação entre componentes (nesse caso, o aplicativo e o servidor de banco de dados) são restritos apenas ao que é necessário. Isso pode ser implementado usando Grupo de Segurança de Rede e Grupos de Segurança de Aplicativo.
Use a ID do Microsoft Entra para autenticação e autorização para aprimorar o gerenciamento de identidade. A autenticação da ID do Microsoft Entra é um mecanismo de conexão ao Banco de Dados do Azure para PostgreSQL usando identidades definidas no Azure AD.
Configurar segurança em nível de linha. RLS (segurança em nível de linha) é um recurso de segurança do PostgreSQL que permite aos administradores de banco de dados definir políticas para controlar como linhas específicas de dados são exibidas e operadas para uma ou mais funções. A segurança em nível de linha é um filtro adicional que você pode aplicar a uma tabela de banco de dados PostgreSQL.

Otimização de custo

A otimização de custo é entender as opções de configuração e as práticas recomendadas para reduzir despesas desnecessárias e melhorar a eficiência operacional. Você deve examinar sua carga de trabalho para identificar oportunidades de redução de custos.

Checklist de design para custo

Você deve examinar os princípios de design para otimizar o custo de sua arquitetura.

  • Escolha a camada correta e o SKU.
  • Entenda o modo de alta disponibilidade.
  • Dimensionar camadas de computação e armazenamento.
  • Considerar instâncias reservadas.
  • Use o armazenamento provisionado.
  • Entenda os custos de redundância geográfica.
  • Avalie as decisões de expansão de armazenamento.
  • Implante na mesma região que o aplicativo.
  • Descrição de custo orientada por alta disponibilidade.
  • Consolide bancos de dados e servidores.

Recomendações de custo

Recomendações Benefícios
Escolha a camada e a SKU corretas. Escolha a faixa de preço e SKUs adequadas às necessidades específicas da sua carga de trabalho. O Assistente do Azure oferece recomendações para otimizar e reduzir seus gastos gerais do Azure. As recomendações que você deve seguir incluem o dimensionamento adequado do servidor.
Entenda o modo de alta disponibilidade. A alta disponibilidade torna um servidor em espera sempre disponível na mesma zona ou região. Habilitar a alta disponibilidade dobra o custo.
Ajuste as camadas de computação e armazenamento. Você deve ajustar manualmente as camadas de computação e armazenamento para atender aos requisitos do aplicativo ao longo do tempo.
Use o recurso Iniciar/Parar. O servidor flexível tem um recurso Iniciar/Parar que você pode usar para impedir que o servidor seja executado quando você não precisar dele.
Considerar instâncias reservadas. Considere uma reserva de um ou três anos para receber descontos significativos em computação em nuvem. Use essas reservas para cargas de trabalho com uso de computação consistente por um ano ou mais.
Use o armazenamento provisionado. Não há custo adicional para o armazenamento de backup até 100% do armazenamento total do servidor provisionado.
Entenda os custos de redundância. O GRS (armazenamento com redundância geográfica) custa o dobro do LRS (armazenamento com redundância local). O GRS requer o dobro da capacidade de armazenamento do LRS.
Entenda o custo de instância protegida e armazenamento de backup Ao fazer backup do PostgreSQL – Servidor Flexível usando o Backup do Azure, você incorre em Taxas de Instância Protegida (por 250 GB) e Taxas de Armazenamento de Backup (com base no total de dados armazenados e no tipo de redundância).
Avalie as decisões de expansão de armazenamento. Você deve avaliar suas necessidades de armazenamento atuais e futuras antes de dimensionar o armazenamento. Depois de aumentar o armazenamento, você não pode diminuir.
Implante na mesma região que o aplicativo. Implante na mesma região que os aplicativos para minimizar os custos de transferência. Quando você usa a integração de rede virtual, os aplicativos em uma rede virtual diferente não têm acesso direto a servidores flexíveis. Para conceder-lhes acesso, você deve configurar o emparelhamento de rede virtual. O emparelhamento de rede virtual apresenta custos nominais de transferência de dados de entrada e saída.
Descrição de custo orientada por alta disponibilidade. Trata-se de uma troca de HA e custos. O custo da configuração HA é o dobro da configuração sem HA, mas ela é necessária.
Consolide bancos de dados e servidores. Você pode consolidar vários bancos de dados e servidores em um único servidor para reduzir os custos.

Definições de política do Azure

As definições do Azure Policy ajudam você a impor regras e configurações específicas para recursos em seu ambiente do Azure. Para garantir a otimização de custo para o Banco de Dados do Azure para PostgreSQL, você pode criar definições personalizadas do Azure Policy para impor configurações e práticas recomendadas específicas. Aqui está um exemplo de algumas definições personalizadas do Azure Policy que você pode criar para otimização de custo:

Excelência operacional

Os princípios de excelência operacional são uma série de considerações que podem ajudar a alcançar práticas operacionais superiores.

Para obter uma maior competência em operações, considere e melhore como o software é desenvolvido, implantado, operado e mantido.

Lista de verificação de design de excelência operacional

Você deve examinar os princípios de design para otimizar o custo de sua arquitetura.

  • Configure backups automatizados e políticas de retenção para manter a disponibilidade de dados e atender aos requisitos de conformidade.
  • Implemente atualizações e aplicação de patches automatizada para manter sua instância do PostgreSQL segura e atualizada.
  • Monitore a integridade e o desempenho do banco de dados usando o Azure Monitor e configure alertas para métricas críticas.

Recomendações de excelência operacional

Recomendação Benefícios
Configure backups automatizados e políticas de retenção para manter a disponibilidade de dados e atender aos requisitos de conformidade.

Como alternativa, use uma política de Backup do Azure para fazer backup do Banco de Dados do Azure para PostgreSQL Server.

Você também pode usar essa política de Backup do Azure para proteger o Banco de Dados do Azure para PostgreSQL – Servidor Flexível.
O Banco de Dados do Azure para PostgreSQL fornece backups automatizados e restauração pontual para seu banco de dados. Você pode configurar o período de retenção para backups de até 35 dias.

O Backup do Azure permite 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 manter pontos de recuperação em um cofre de Backup durante até 10 anos.

Use a Política de Backup do Azure para proteger por longo prazo o Banco de Dados do Azure para PostgreSQL – Servidor Flexível e para gerenciar a segurança e a integridade do banco de dados. Você também pode gerenciar as operações de backup e restauração usando do Centro de Continuidade de Negócios do Azure.
Implemente atualizações e aplicação de patches automatizada para manter sua instância do PostgreSQL segura e atualizada. O Banco de Dados do Azure para PostgreSQL fornece patches e atualizações automatizados para seu banco de dados. Você pode configurar a janela de manutenção do servidor para minimizar o impacto na carga de trabalho.
Monitore a integridade e o desempenho do banco de dados usando o Azure Monitor e configure alertas para métricas críticas. O Banco de Dados do Azure para PostgreSQL fornece recursos internos de monitoramento e alertas. Você pode monitorar a integridade e o desempenho do banco de dados usando o Azure Monitor. Você também pode configurar alertas para métricas críticas para serem notificados quando o banco de dados não estiver sendo executado conforme o esperado.

Definições de política de excelência operacional

As definições do Azure Policy ajudam você a impor regras e configurações específicas para recursos em seu ambiente do Azure. Para garantir a excelência operacional do Banco de Dados do Azure para PostgreSQL, você pode criar definições personalizadas do Azure Policy para impor configurações e práticas recomendadas específicas. Aqui está um exemplo de algumas definições personalizadas do Azure Policy que você pode criar para a excelência operacional:

Eficiência de desempenho

A eficiência de desempenho é a capacidade da carga de trabalho de dimensionar para atender às demandas colocadas nela pelos usuários com eficiência. Recomendamos que você examine os princípios de eficiência de desempenho.

Na checklist de design e na lista de recomendações abaixo, as chamadas indicam se cada opção se aplica à arquitetura de cluster, à arquitetura de carga de trabalho ou às duas.

Lista de verificação de design de eficiência de desempenho

Você deve examinar os princípios de design para otimizar o custo de sua arquitetura.

  • Crie seu esquema e consultas para maior eficiência e para minimizar o consumo de recursos.
  • Implemente as réplicas de leitura para aliviar o tráfego de leitura e melhorar a performance geral.

Recomendações de eficiência de desempenho

Recomendação Benefícios
Projete seu esquema e consultas de forma eficiente para minimizar o consumo de recursos. Você deve projetar seu esquema e consultas visando eficiência para minimizar o consumo de recursos.
Implemente as réplicas de leitura para aliviar o tráfego de leitura e melhorar a performance geral. Você pode usar as réplicas de leitura para aliviar a carga do tráfego de leitura e melhorar a performance.

Definições de política de eficiência de desempenho

As definições do Azure Policy ajudam você a impor regras e configurações específicas para recursos em seu ambiente do Azure. Para garantir a eficiência de desempenho do Banco de Dados do Azure para PostgreSQL, você pode criar definições personalizadas do Azure Policy para impor configurações e práticas recomendadas específicas. Aqui está um exemplo de algumas definições personalizadas do Azure Policy que você pode criar para eficiência de desempenho:

Recursos extras

Considere mais recursos relacionados ao Banco de Dados do Azure para PostgreSQL.

Diretrizes do Centro de Arquitetura do Azure

Diretrizes do Cloud Adoption Framework

Próxima etapa