A Microsoft Azure gerencia toda a camada física e virtual do servidor no Azure Database for PostgreSQL, pois se trata de uma plataforma de serviço (PaaS). Dessa forma, o acesso ocorre apenas na camada de estrutura dos objetos de banco e dados, incluindo, por exemplo, funcionalidades como o Read Replica, que contribuem para a otimização e a escalabilidade.
Por exemplo, os backups são gerenciados diretamente pela Microsoft, seguindo rígidos padrões de segurança.
Mesmo sendo um serviço, sem acesso a camada de sistema operacional, algumas ferramentas, utilitários e extensões podem ser utilizados como por exemplo: PGBouncer (gerenciador de conexões) e o pglogical (extensão).
Assim como é possível a criação de replicações no ambiente OnPremises, também é possível fazermos nos ambientes Azure. Algumas das opções são:
1. Replicação física:
a. Read-Replicas;
2. Replicação lógica:
a. Replicação lógica nativa do PostgreSQL;
b. Através da extensão pglogical;
3. Decodificação lógica dos conteúdos dos write-ahead log (WAL);
Como serviço no Azure, você pode utilizar o recurso chamado Read replicas. O sistema atualiza essas réplicas de forma assíncrona através da replicação física. Além disso, ao usar esse recurso, você pode criar até 5 réplicas do servidor primário, o que possibilita dividir melhor a carga de trabalho das operações de somente leitura.
Mas, quando utilizar este recurso? Primeiro, você precisará ter seu serviço de PostgreSQL em uma das camadas de propósito geral (General Purpouse) ou de memória otimizada (Memory Optimized). A camada Burstable não é suportada:
Após essa validação, podemos evoluir no processo, clicando em “Create replica”, conforme ilustrado abaixo:
Na próxima tela, você informará dados como o nome do servidor de réplica, a localização, a zona de disponibilidade e o tipo de computação escolhido. Além disso, você poderá definir as configurações de rede e segurança. Após concluir essas escolhas, clique no botão “Review + create” para prosseguir.
Após o processo finalizar, podemos visualizar a réplica criada:
Com a nossa base réplica criada, podemos nos conectar e executar consultas apenas leitura:
Se tentarmos criar um objeto, por exemplo, uma tabela dentro deste banco replicado, teremos o retorno de um erro:
Este artigo sintetiza uma capacidade e habilidade simplificada de criar cópias de leitura das bases de dados do PostgreSQL como serviço no Azure, por meio do recurso Read Replica. Mesmo que não resolva todos os problemas, esse recurso pode oferecer valor no acesso a relatórios ou na conexão com ETLs.
Por fim, espero que este artigo possa te ajudar a entender um pouco mais sobre a utilidade de Read replicas no Azure Database for PostgreSQL e que você possa aproveitá-lo ao máximo.