A alta disponibilidade contínua é um requisito absolutamente essencial e fundamental para praticamente qualquer estrutura moderna e robusta de dados. A alta disponibilidade de Postgres no Azure garante o acesso ininterrupto, confiável e seguro aos dados, mesmo em caso de falhas imprevisíveis, inesperadas e críticas, como quedas repentinas de energia elétrica ou interrupções temporárias e instáveis na conexão com a internet. Essas falhas técnicas podem facilmente resultar em perda momentânea de acesso, degradação de desempenho, ou até mesmo perda parcial ou total de dados valiosos.
Assim como ocorre no modelo on-premise, em que o PostgreSQL possui diversas formas flexíveis e comprovadas de configurar alta disponibilidade, no Azure não é diferente. De fato, a arquitetura robusta, moderna e escalável do Azure permite maior facilidade de implementação. Além disso, proporciona melhor controle da distribuição eficiente, segura e resiliente dos dados entre os diferentes componentes da infraestrutura.
Dentre essas diversas opções disponíveis, precisamos definir alguns pré-requisitos fundamentais para escolher a melhor solução de alta disponibilidade. Por exemplo: ambos os servidores (primário e réplica) estarão hospedados exclusivamente no Azure? Ou o servidor primário estará localizado on-premises, enquanto o servidor secundário estará no ambiente do Azure? Essas definições são cruciais para determinar a arquitetura mais adequada e eficiente.
Em Que Isso Influencia?
A grande questão sobre onde estão localizados fisicamente os servidores está diretamente relacionada à latência na comunicação entre o servidor primário e a réplica. Essa latência específica (que pode ocorrer também, mesmo quando os servidores são on-premises e estão distribuídos em localidades geograficamente diferentes, como em diferentes filiais, datacenters ou até mesmo regiões distintas) pode deixar a comunicação entre os dois nós consideravelmente lenta, afetando negativamente o desempenho geral do sistema e podendo, em alguns casos, ocasionar perda de dados importantes, inconsistências nas transações e impactos na disponibilidade do serviço.
Opções De Alta Disponibilidade No Azure:
– Flexible Server
O Flexible server trata-se de um serviço de banco de dados Postgres (PaaS), sendo ele um serviço a alta disponibilidade também é gerenciada pelo Azure, ou seja, é só habilitar e o Azure faz toda a configuração, inclusive se ocorrer uma falha ele fará o failover automaticamente, sem necessidade de intervenção por parte do usuário.
– Vms Com PostgreSQL
Esta opção deixa a responsabilidade de configurar a alta disponibilidade na mão do usuário. Isso permite maior flexibilidade, deixando o usuário definir exatamente como quer que a sua alta disponibilidade funcione. Ele pode também decidir se quer utilizar ferramentas externas como o Patroni. Esta opção ainda incorre em avaliar o RPO e o RTO do tipo de alta disponibilidade escolhida. Pode ser que um dos nós não esteja na mesma rede ou região da outra, o que como dito anteriormente, pode causar perda de dados críticos para o negócio.
Ambos os tipos têm seus bônus e seu ônus. Você deverá escolher o que melhor se adapta as necessidades da empresa e do negócio.
Alguns itens importantes que podem ser levados em conta no momento da escolha mais adequada do tipo de Alta Disponibilidade:
– Pessoal técnico especializado disponível para manter corretamente o Postgres e a replicação configurada;
– Latência de rede existente entre os diferentes nós envolvidos no ambiente;
– Tempo estimado de inatividade até que o segundo nó assuma automaticamente o posto de primário no sistema;
– Qual o valor total de cada solução e qual delas se adapta melhor ao perfil técnico e operacional da empresa.
Para concluir, neste post explicamos, de forma objetiva e clara, as principais opções de alta disponibilidade existentes no Azure para o banco de dados PostgreSQL. No entanto, não há como afirmar com precisão e rigidez a maneira absolutamente correta de implementação. Portanto, deve haver um consenso bem definido entre os arquitetos de soluções e os engenheiros responsáveis para se chegar à solução mais adequada, isto é, aquela que realmente atenda a todos os pré-requisitos técnicos e funcionais do projeto.