Couchbase Capella

Replicación y sincronización de datos en Couchbase

La replicación y la sincronización de datos pueden parecer redundantes a primera vista. Ambos se refieren a copiar datos de un repositorio persistente a otro para mantener la consistencia en una arquitectura distribuida. Pero para Couchbase, cada término tiene un significado diferente y cada uno se utiliza para diferentes propósitos.

Este post es una visión general de Couchbase Cross Datacenter Replication (XDCR), que proporciona replicación de datos entre clústeres de bases de datos, y Couchbase Sync Gateway/Capella App Services, que permite la sincronización de datos para aplicaciones móviles, IoT y edge.

Replicación entre centros de datos (XDCR)

Resumen XDCR

Couchbase Replicación entre centros de datos (XDCR) permite la replicación de datos entre clústeres situados en distintos centros de datos. La replicación entre clusters se utiliza para garantizar una distribución uniforme y una alta disponibilidad de los datos. El protocolo utilizado para XDCR se denomina DCP (protocolo de cambio de datos). DCP también se utiliza para la replicación entre clústeres y, en ambos casos, se utiliza para la replicación de memoria a memoria de baja latencia.

XDCR está diseñado para la replicación global: replicar datos entre múltiples regiones, múltiples centros de datos, múltiples proveedores de nube, o cualquier combinación. Se necesitan múltiples clústeres si quieres replicar datos entre diferentes regiones. A diferencia de otras bases de datos, la funcionalidad multi-datacenter de Couchbase no se proporciona extendiendo un único cluster a través de múltiples centros de datos. Debido a las altas latencias de red, nodos/servidores en diferentes regiones no pueden formar parte del mismo cluster. Cada cluster es independiente.

XDCR puede ser muy sencillo para empezar, pero dispone de muchas funciones y opciones potentes. Admite el funcionamiento unidireccional y bidireccional y la replicación activo-activo con resolución automática de conflictos. Utilice la replicación filtrada para replicar subconjuntos de documentos.

Tuercas y tornillos XDCR

XDCR replica los datos de un fuente cubo a un objetivo (XDCR también admite la replicación de ámbito/colección, tanto implícita como explícita). La replicación es de memoria a memoria y asíncrona, y se replican tanto los datos existentes como los modificados. 

Se barajan múltiples flujos de datos a través de todos los shards (vBuckets) para mover los datos en paralelo al cluster de destino para una reducción adicional de la latencia.

Los clusters de origen y destino pueden tener distintos números de servidores (nodos), y XDCR es resistente a los cambios de topología.

XDCR Casos prácticos

Las configuraciones unidireccional (unidireccional) y bidireccional (bidireccional) tienen cada una sus propios casos de uso.

Replicación unidireccional

La replicación unidireccional es ideal para:

    • Recuperación en caso de catástrofe - Los datos más recientes están siempre disponibles en caso de desastre. Esto permite una rápida conmutación por error y recuperación sin pérdida de datos ni tiempo de inactividad.
    • Copias de desarrollo/prueba - Proporcionar copias de los datos de producción con fines de prueba y desarrollo. Esto reduce la necesidad de copiar datos manualmente y disminuye el riesgo de errores o incoherencias entre los entornos. XDCR proporciona replicación casi en tiempo real, lo que significa que los datos de prueba siempre están actualizados con los datos de producción.
    • Informes/Archivo - La replicación de datos en un clúster dedicado a la generación de informes o archivos permite realizar informes y análisis eficientes sin afectar al rendimiento del entorno de producción. XDCR permite la replicación de datos en tiempo real o casi real, por lo que el clúster de informes o archivo siempre está actualizado con los datos más recientes. Esto lo convierte en una solución para organizaciones que necesitan mantener datos históricos con fines de cumplimiento o análisis.

Replicación bidireccional

La replicación bidireccional puede utilizarse para casos de uso como:

    • Múltiples grupos activos "calientes" - Al replicar los datos en varios centros de datos, XDCR puede ayudar a proporcionar un equilibrio de carga eficiente y una alta disponibilidad de los datos. XDCR permite replicar datos en tiempo real o casi real, garantizando que todos los clústeres activos estén siempre sincronizados. Adecuado para organizaciones que necesitan dar servicio a grandes volúmenes de tráfico o tienen una base de usuarios distribuida por todo el mundo.
    • Localidad de los datos - Con XDCR, puede crear clústeres distribuidos geográficamente, lo que permite almacenar los datos más cerca de los usuarios y reducir la latencia. XDCR puede replicar automáticamente los datos en varios centros de datos, garantizando que los datos estén siempre actualizados en la ubicación más cercana.
    • Geofencing - XDCR puede configurarse para replicar determinados datos sólo en clústeres específicos, garantizando que los datos sólo estén disponibles en las regiones geográficas designadas. Esto puede ser utilizado por organizaciones que deben cumplir con las regulaciones de privacidad de datos o aplicar restricciones de geofencing en sus datos.

Opciones XDCR

Resolución de conflictos resuelve los conflictos que surgen cuando diferentes nodos del clúster intentan actualizar los mismos datos simultáneamente. La resolución de conflictos basada en la secuencia resuelve los conflictos en función del orden en que se reciben las actualizaciones. Por el contrario, la resolución de conflictos basada en la marca de tiempo utiliza la marca de tiempo de las actualizaciones para determinar qué actualización es más reciente y debe aplicarse. Dependiendo del caso de uso específico, un tipo de resolución de conflictos puede ser más apropiado, y XDCR de Couchbase permite flexibilidad en la elección del método apropiado.

Filtrado permite a los usuarios especificar qué documentos deben incluirse o excluirse de la replicación entre clusters. Esto puede basarse en criterios como el tipo de documento, los valores de los atributos u otros metadatos. El filtrado XDCR proporciona un mayor control sobre qué documentos se replican, reduciendo la cantidad de tráfico de red innecesario y la sobrecarga de almacenamiento, al tiempo que mejora la eficiencia de la replicación y el rendimiento general del sistema.

Eliminación de documentos en un clúster provocará la eliminación del documento correspondiente en el otro clúster. Sin embargo, este comportamiento puede filtrarse, lo que permite a las organizaciones mantener datos históricos para casos de uso de archivo o informes. Al filtrar las eliminaciones de documentos, las organizaciones pueden garantizar que los datos sigan estando disponibles en sus clústeres de archivo o generación de informes, incluso si los documentos correspondientes se han eliminado en el clúster de producción. Esto puede ayudar a las organizaciones a cumplir con las políticas de retención de datos y garantizar que los datos importantes estén siempre disponibles para el análisis y la elaboración de informes.

XDCR también puede soportar escenarios de migración, como la migración agnóstica de infraestructura de on-prem a la nube.

Resumen XDCR

La función XDCR de Couchbase es una de las principales características que primero atrae a los clientes y usuarios de Couchbase. Se trata de una herramienta sencilla y flexible para replicar datos entre distintos clústeres ubicados en diferentes centros de datos.

La siguiente tabla enumera los principales casos de uso de XDCR en un despliegue de Couchbase Server o Couchbase Capella:

XDCR

Recuperación en caso de catástrofe
Copias de prueba
Informes, auditorías, archivos
Localidad del centro de datos
Geo-fencing
Migración de datos a la nube

Vea una demostración en directo de Couchbase XDCR en acciónabajo:

Sync Gateway/Capella App Services

Visión general de la pila de productos de Couchbase Mobile

Para entender el papel de la sincronización en una aplicación basada en Couchbase, empezamos examinando el módulo Couchbase Móvil pila de productos. Couchbase Mobile está explícitamente diseñado para habilitar aplicaciones móviles y edge offline first. La pila consta de lo siguiente:

    • Servidor Couchbase - nuestro servidor de bases de datos moderno y emblemático con soporte para SQL, análisis, FTS y eventos.
    • Couchbase Lite - la versión integrable de Couchbase para móviles y dispositivos integrados personalizados.
    • Pasarela de sincronización - se sitúa entre la nube y las bases de datos periféricas y es responsable de la sincronización segura de datos, el enrutamiento y el control de acceso entre los clientes móviles y los niveles de servidor.

Estas capacidades pueden desplegarse de dos maneras:

    • Totalmente gestionado con Couchbase Capellala base de datos como servicio alojada por Couchbase.
    • Autogestionado, en el que usted mismo instala y gestiona los productos Couchbase Mobile en nubes públicas o privadas, en un servicio en el borde de la nube u on-prem.

La pila de productos de Couchbase Mobile

Acerca de Sync Gateway

Sync Gateway se ha creado específicamente para sincronizar datos y proporcionar autorización y autenticación para aplicaciones móviles y de IoT a gran escala.

Está diseñado, ante todo, para proporcionar sincronización de datos de nube a borde. Esta es la capacidad de sincronizar datos utilizando un protocolo WebSockets entre Couchbase en la nube y dispositivos que ejecutan Couchbase Lite y entre despliegues individuales de Sync Gateway - incluyendo entre Sync Gateway y App Services.

Sync Gateway también proporciona:

    • API REST que permiten a los clientes web acceder a los datos de sincronización.
    • API administrativas para trabajar a distancia con las configuraciones de despliegue.
    • Supervisión del rendimiento y estadísticas de eventos.

Sincronización de datos entre la nube y el perímetro

Sincronización con Couchbase Lite

La sincronización entre Couchbase Server/Capella y Couchbase Lite es bidireccional e iniciada por el dispositivo de borde de forma push o pull. La replicación puede ser única, continua o realizada bajo demanda, soportando muchas condiciones y casos de uso.

La carga útil de sincronización son datos JSON o archivos adjuntos binarios. En el caso de adjuntos binarios/blob, las cargas útiles en 20MB se replican. Si el blob es en 20MB, el documento en sí se replica pero no el blob.

Couchbase Lite permite a las aplicaciones aprovechar filtros de grano fino en el replicador para determinar qué documentos se sincronizan y hacia dónde dirigirlos. Esto controla cuándo y qué documentos se sincronizan.

Las réplicas se envían utilizando WebSockets para permitir la mensajería full-duplex entre hosts remotos a través de una única conexión TCP. Se trata, por tanto, de un protocolo más rápido, que reduce el uso de ancho de banda y recursos de socket en comparación con los protocolos basados en REST sobre HTTP.

Sync Gateway/App Services es responsable de mantener la coherencia adecuada para estas réplicas.

Sincronización de clientes integrados de Couchbase Lite con Couchbase en la nube

Replicación Inter-Sync Gateway

Además de sincronizar datos directamente desde Couchbase Lite a Couchbase Server o Capella, Sync Gateway puede replicar a otras instancias de Sync Gateway y/o Capella App Services usando una característica llamada Inter-Sync Gateway Replication. 

Al igual que la sincronización de Couchbase Lite, las réplicas de Inter-Sync Gateway son bidireccionales y se basan en WebSockets.

Las réplicas de Inter-Sync Gateway intentan reiniciarse automáticamente en caso de interrupción o cada vez que se reinicia un nodo y pueden configurarse para disminuir los intentos de reinicio en casos de interrupción prolongada de la red.

Inter-Sync Gateway Replication proporciona alta disponibilidad integrada y utiliza la distribución de nodos para garantizar que todas las réplicas en ejecución se distribuyan uniformemente entre los nodos disponibles, independientemente del nodo de origen.

La capacidad de sincronizar datos entre implantaciones de Sync Gateway le permite diseñar topologías de borde jerárquicas de varios niveles que admiten una disponibilidad extremadamente alta, baja latencia, privacidad de datos y un uso eficiente del ancho de banda. 

Sincronización de Couchbase Sync Gateway en el extremo con Sync Gateway/App Services en la nube

Sincronización Delta

Sync Gateway / App Services puede rastrear y replicar las partes de un documento que han cambiado sin enviar el documento completo. Esto permite enviar menos datos a través de redes con limitaciones de ancho de banda, lo que hace que las aplicaciones sean más rápidas y eficientes.

Delta Sync sólo sincroniza los datos modificados, no el documento completo

Resolución de conflictos

En el caso de las aplicaciones móviles que utilizan escrituras de datos descentralizadas, los mismos datos pueden modificarse simultáneamente en varios dispositivos, creando un conflicto. Para resolver conflictos, puede aplicar una de las políticas de resolución de conflictos integradas, que pueden incluirse fácilmente en sus propias réplicas. El objetivo de la resolución automática de conflictos es devolver una revisión ganadora basada en la aplicación coherente de la política de resolución de conflictos configurada.

La resolución de conflictos de Sync Gateway/App Services utiliza árboles de revisión y una regla de resolución por defecto de gana la rama más activa. De este modo, los conflictos se resuelven de forma lógica en función de la actividad, frente a la resolución de conflictos basada en el reloj del sistema, que tarda un cambio más reciente gana que son problemáticos debido a las diferencias de reloj entre dispositivos.

Control de acceso

Modelo

Los canales son la clave para entender cómo Sync Gateway comparte y controla el acceso a los documentos. Los canales son básicamente intermediarios entre los documentos y los usuarios.

Como se ilustra en el siguiente diagrama, cada documento de la base de datos pertenece a un conjunto

de canales, y cada usuario puede acceder a un conjunto de canales.

Modelo de acceso a los documentos

Una vez que un usuario crea un documento, éste se asigna a uno o varios canales. Los usuarios sólo pueden acceder a los documentos asignados a los canales a los que se les ha concedido acceso; la autorización la gestiona Sync Gateway.

Por ejemplo, los documentos añadidos a un canal público son visibles para cualquier usuario. Un canal también puede ser privado y restringir el acceso a un único usuario o proporcionar acceso compartido entre varios usuarios, 

Los roles son colecciones de canales. Un usuario es asignado a un rol y, por tanto, hereda el acceso a los canales asignados a dicho rol. Este control puede modificarse en cualquier momento e incluso revocarse para evitar accesos indebidos.

Función de sincronización

En sincronizar es una función JavaScript que se llama cada vez que se realiza una nueva revisión o actualización de un documento.

La función de sincronización puede utilizarse para:

    • Validar documentos
    • Autorizar cambios
    • Conceder al usuario acceso a los canales
    • Asignar documentos a canales

La función de sincronización puede proporcionar control de acceso a nivel de documento para las lecturas, y a nivel de campo para las escrituras.

Resumen de Sync Gateway/Capella App Services

Las capacidades de sincronización de datos de Couchbase Sync Gateway y Capella App Services son ideales para aplicaciones móviles y de IoT, donde los datos cambian rápidamente y las actualizaciones deben reflejarse al instante en un ecosistema distribuido de usuarios y dispositivos.

Si su aplicación requiere alguna de estas funciones, Sync Gateway/App Services es la solución:

Sync Gateway / App Services

Sincronización de datos entre nubes
Diseñado para topologías de borde multinivel
Autenticación, autorización
Enrutamiento preciso de los datos
Resolución de conflictos personalizable
Revocación del acceso al canal

Vea esta demostración en directo de Pasarela de sincronización Couchbase en un escenario de equipaje de avión:

Conclusión

Couchbase no tiene rival en su capacidad para replicar y sincronizar datos en una red global. aplicación distribuida para proporcionar coherencia, integridad y recuperación ante desastres para aplicaciones críticas, desde la nube hasta el perímetro. 

Esperamos que este post aclare el papel y los usos de Couchbase XDCR y Couchbase Sync Gateway/Capella App Services para que sepas cuál aprovechar para tus requisitos específicos.

Pruebe Couchbase Capella GRATIS

Comparte este artículo
Recibe actualizaciones del blog de Couchbase en tu bandeja de entrada
Este campo es obligatorio.

Autor

Publicado por Marketing de productos Couchbase

Deja un comentario

¿Listo para empezar con Couchbase Capella?

Empezar a construir

Consulte nuestro portal para desarrolladores para explorar NoSQL, buscar recursos y empezar con tutoriales.

Utilizar Capella gratis

Ponte manos a la obra con Couchbase en unos pocos clics. Capella DBaaS es la forma más fácil y rápida de empezar.

Póngase en contacto

¿Quieres saber más sobre las ofertas de Couchbase? Permítanos ayudarle.