O espelhamento, também conhecido como replicação de dados, é um recurso importante na implementação de sistemas de alta disponibilidade. Neste texto explicaremos um pouco sobre a prática sob o ponto de vista conceitual; não iremos, portanto, abordar detalhes de implementação em nenhuma plataforma.
O que é espelhamento de dados?
A grosso modo, espelhar os dados significa manter uma cópia fiel dos dados em outro local (físico ou lógico). Dessa maneira é possível assegurar que os dados continuem disponíveis caso aconteça algum tipo de incidente ou tragédia.
Um exemplo prático de uma situação onde o espelhamento/replicação de dados pode ser bem aproveitado é em um cenário em que uma empresa (tomemos, por exemplo, uma companhia do segmento de varejo, que possui algumas filiais). É importante para a matriz manter-se informada de todas as informações relevantes como estoque, caixa, relatórios em geral, etc. Contudo, caso a comunicação entre a matriz e filial falhe (por queda do link de dados ou da internet), é imprescindível que essa queda não resulte em perda de produtividade. Que a empresa continue realizando normalmente as vendas durante este período.
O espelhamento possibilita que a empresa continue operando normalmente no cenário descrito, até que por fim, ao reestabelecer a comunicação, os dois bancos de dados sejam sincronizados e tudo volte a operar normalmente.
Como o espelhamento e replicação de dados funciona no paradigma da nuvem?
A definição mais relevante do paradigma do desenvolvimento para a nuvem é que TUDO pode falhar. Então, ao invés de desenvolver uma aplicação à prova de falhas, ao desenvolver para a nuvem o programador cria um código preparado para lidar com elas.
Neste paradigma, a replicação do banco de dados acontece muitas vezes de maneira transparente para o programador. Contudo, tem um papel fundamental na implementação prática das soluções de banco de dados.
A existência de múltiplas instâncias do banco de dados, replicados e rodando em cluster permite que o programador não se preocupe com questões específicas de banco de dados. Essas questões são tratadas pelo administrador da nuvem. Por consequência, o código do programador é muito mais enxuto e eficiente.
Banco de dados relacional, orientado a objetos, objeto-relacional ou NoSQL?
Do ponto de vista da replicação de dados, a maior parte das implementações de banco de dados populares na atualidade implementam de alguma forma a replicação de dados, seja através de soluções de terceiros ou do próprio desenvolvedor do sistema de gerenciamento de banco de dados.
O principal serviço de nuvem, o AWS da gigante Amazon, implementa a replicação de dados de forma transparente para o usuário do serviço, absorvendo todo o ônus da manutenção da replicação e possibilitando ao programador focar mais especificamente nas regras de negócio.
Conclusão
A replicação/espelhamento de dados é um recurso fundamental e amplamente utilizando no cenário atual de TI, tanto para soluções na nuvem quanto no antigo modelo de desenvolvimento. Alguns serviços disponibilizam de forma transparente este recurso, em outros casos o próprio desenvolvedor (ou devops) precisará lidar com essas questões. É importante estar atento às demandas de disponibilidade, velocidade e segurança de seu projeto para avaliar corretamente a replicação de dados.
Esperamos que tenha gostado deste artigo! Deixe suas dúvidas nos comentários.