O planejamento da recuperação de desastres (DR) e da continuidade dos negócios (BC) é vital para qualquer aplicativo moderno, e isso se aplica igualmente a qualquer aplicativo com um componente de computação móvel ou de borda.
As interrupções de serviço ou o tempo de inatividade podem causar sérios impactos em uma empresa e, sem as estratégias corretas, a recuperação de um evento como esse pode ser um desafio.
Esta postagem abordará uma das maneiras de planejar o BC e a DR para seu aplicativo móvel no Couchbase usando o XDCR (Cross Data Center Replication).
Pilha móvel do Couchbase
O Couchbase Mobile é uma plataforma de ponta a ponta na nuvem que permite a implantação de aplicativos móveis e incorporados off-line, fornecendo sincronização rápida e eficiente de dados.
Ele é composto por três componentes principais:
-
- Servidor Couchbase - o banco de dados NoSQL altamente escalável, altamente disponível e de alto desempenho. Ele está disponível como um banco de dados como serviço totalmente gerenciado e hospedado com Couchbase Capellaou pode ser implantado e hospedado por conta própria como Servidor Couchbase.
- Sync Gateway - um mecanismo de sincronização seguro e voltado para a Internet, projetado para fornecer sincronização de dados para aplicativos interativos em larga escala da Web, móveis e de IoT. Disponível totalmente hospedado e gerenciado com Serviços de aplicativos Capellaou pode ser instalado e gerenciado por você mesmo com o Gateway de sincronização do Couchbase.
- Couchbase Lite - um banco de dados incorporado com todos os recursos para seus aplicativos móveis, de desktop e de IoT. Ele fornece CRUD, pesquisa de texto completo, consulta e recursos de pesquisa vetorial que são executados localmente no dispositivo.
O que é XDCR?
XDCR é uma tecnologia de replicação de alto desempenho que permite a replicação de dados entre dois ou mais clusters do Couchbase. Ela desempenha uma função muito importante no suporte a estratégias de DR e migração de dados, inclusive para aplicativos móveis.
O XDCR pode ser estabelecido unidirecionalmente (o que significa que os dados fluem apenas do cluster de origem A para o cluster de destino B) ou bidirecionalmente (o que significa que os dados fluem do cluster de origem A para o cluster de destino B e do cluster de origem B para o cluster de destino A), permitindo uma variedade de topologias diferentes para dar suporte a diferentes casos de uso.
Alguns casos de uso comuns do XDCR incluem hot standby para DR, geolocalização de data centers para aplicativos usados globalmente, migração e muito mais.
Como podemos usar o XDCR para garantir BC/DR em uma implantação móvel?
É muito importante considerar a melhor abordagem para a estratégia de DR de um aplicativo móvel. Há várias maneiras de conseguir isso, a saber Replicação de gateway entre sincronizações (ISGR) e XDCR. O ISGR permite a replicação entre várias instâncias do Sync Gateway ou do Capella App Services; você pode saber mais sobre ele em outra postagem no blog. Veremos agora como você pode usar o XDCR como parte de uma estratégia de DR para um aplicativo móvel com o Couchbase.
Neste exemplo, temos dois clusters do Couchbase, ambos com um cluster Sync Gateway associado. Um desses clusters é o principal para um aplicativo de produção, o outro é o cluster DR, que é mantido em sincronia com o cluster principal por meio do uso do XDCR.
A prática recomendada é usar XDCR unidirecional (em vez de bidirecional), pois isso garante que as alterações fluam da origem para o destino e que o site de destino não envie atualizações de operação de gravação de volta para a origem. Além disso, o Sync Gateway deve estar em standby (o que significa que não está recebendo dados ativamente) quando for o destino da replicação XDCR.
Em um cenário normal, essa é a aparência dessa configuração:
Em um cenário de DR, algumas medidas devem ser tomadas para garantir que você possa alternar para o cluster secundário:
-
- Remova a replicação XDCR unidirecional do cluster primário antigo para o novo cluster primário (anteriormente o cluster DR)
- Definir o Sync Gateway como standby no antigo cluster primário do Couchbase
- Ative a replicação entre o novo cluster primário do Couchbase e o cluster do Sync Gateway (anteriormente o cluster DR)
- Configure a replicação XDCR unidirecional entre o novo cluster primário e o novo cluster DR
- Conecte o aplicativo ao novo cluster primário em vez do cluster primário antigo
A nova configuração seria semelhante a esta:
É fundamental manter as condições de ter o Sync Gateway em espera e o XDCR unidirecional, especialmente ao inverter o cluster. Caso contrário, você pode acabar com o Sync Gateway e o XDCR direcionando o mesmo bucket no modo de gravação, o que leva a problemas de sincronização.
Com essa abordagem, você pode garantir que seu aplicativo móvel seja robusto e esteja preparado para um cenário de DR.
Referências
-
- Couchbase Capella e Servidor Couchbase
- Gateway de sincronização do Couchbase
- Serviços de aplicativos Capella
- Couchbase Lite
- Replicação entre data centers (XDCR)
- Replicação de gateway entre sincronizações (ISGR) e XDCR
- Blog: Sincronização de dados entre o Capella App Services e as implantações móveis autogerenciadas do Couchbase