La comunidad de promotores ha expresado su preocupación por Anuncio de eliminación de MongoDB Atlas de sus capacidades edge y móviles. En una Correo electrónico:...exploramos por qué Couchbase Mobile es una fuerte alternativa para soportar tus requerimientos de sincronización de datos offline-first.
En este post, vamos a ofrecer una visión técnica de lo que es una migración típica de MongoDB Atlas Device Sync a Couchbase. Aunque nos centraremos en CapellaSi bien la solución DBaaS es totalmente gestionada, los conceptos tratados se aplicarán igualmente a las implantaciones autogestionadas de Servidor Couchbase y Couchbase Móvil.
Consideraciones sobre la migración
Al planificar la migración de su aplicación MongoDB Device Sync (Realm) a Capella App Services, es importante adoptar un enfoque holístico, teniendo en cuenta tanto los componentes del lado del servidor en la nube como los aspectos de la aplicación móvil.
NOTA: Los puntos enumerados a continuación no pretenden ser prescriptivos, sino que representan consideraciones comunes. Cada aplicación es única, por lo que el proceso de migración debe personalizarse para satisfacer los requisitos específicos de la aplicación.
Puede empezar por Nivel gratuito de Couchbase Capellaque incluye Capella App Services, nuestra solución alojada de sincronización de datos. Una vez que haya validado su migración y esté listo para el despliegue de producción, puede actualizar a una de las siguientes opciones nuestros niveles de pago.
1. Modelización de datos
Tanto MongoDB como Couchbase son bases de datos documentales y almacenan datos en formato JSON. Sin embargo, MongoDB representa documentos JSON en formato codificado binario llamado BSON utilizando especificación JSON ampliada. Así que aunque Couchbase puede trabajar con documentos en formato JSON extendido como verás más adelante, será más sencillo trabajar con documentos JSON normales.
Aproveche esta oportunidad para determinar el modelo de datos adecuado para su aplicación migrada y cómo puede organizarlo con cubos, ámbitos y colecciones. Por ejemplo, puedes decidir omitir o renombrar propiedades, lo que es bastante trivial de hacer con Couchbase Funciones del Servicio de Eventos.
2. Configurar el cluster Capella
Despliegue su clúster Capella y configurarlo según las necesidades de su aplicación. La configuración incluiría, como mínimo, la instalación de los servicios pertinentes, como la consulta, la búsqueda, etc., la configuración de las credenciales de acceso al clúster y la creación de una base de datos. configuración de una lista de direcciones IP permitidas. La configuración de una dirección IP permitida suele ser necesaria únicamente con fines de prueba o evaluación. En un entorno de producción, es probable que configure el acceso al clúster a través de redes privadas, tales como VPC Peering o Enlaces privados.
3. Migración de datos
Para migrar datos de un clúster MongoDB Atlas a un clúster Capella, tiene varias opciones. Tu elección dependerá de si vas a realizar una migración de datos única y offline o si vas a optar por una migración de datos online más compleja. La migración de datos en línea suele requerir la sincronización bidireccional de datos entre los clústeres MongoDB Atlas y Couchbase Capella, especialmente si ambos están sirviendo activamente aplicaciones durante la transición.
He aquí algunas opciones habituales:
Utilizar utilidades de exportación/importación - Exportar sus colecciones de MongoDB e impórtelas en Capella utilizando la función cbimport herramienta. Si sus datos están en formato JSON extendido, tendrá que realizar la transformación de datos utilizando Funciones del servicio de eventos durante el proceso de importación. Incluso si los datos están en JSON, puede que necesite ejecutar una transformación de datos si su modelo de datos de destino no es idéntico al de origen. Este enfoque es ideal para una migración de datos única.
Utilizar herramientas empresariales de migración de datos - Aproveche herramientas empresariales como GlueSync de MOLO7 para Couchbase para migrar datos. Una herramienta como GlueSync ofrece un soporte sólido y escalable para las migraciones de datos, incluidas las migraciones en caliente y en frío. Eche un vistazo a vídeo para una visión general de sus capacidades y de cómo puede ayudar en la migración.
Herramientas de código abierto - Puede probar nuestra utilidad Couchbase de código abierto respaldada por la comunidad, cbmigratepara migrar los datos. Esto funciona bien para migraciones de datos sencillas. La herramienta está integrada en extensiones populares de Couchbase IDE para VSCode y JetBrains. Así que si eres un desarrollador que está construyendo aplicaciones utilizando estos IDEs, entonces deberías considerar esta opción.
Una vez migrados los datos, es posible que tenga que crear índices adecuados en su cluster Capella.
4. Configurar Capella App Services
Servicios de aplicaciones es el servicio backend gestionado responsable de la sincronización de datos offline-first. Después de configurar el clúster, tendrá que desplegar App Services para conectarlo al clúster configurado. La configuración de App Services variará significativamente en función de los requisitos específicos de su aplicación.
Tómese su tiempo para evaluar los requisitos de su aplicación y asegurarse de que está configurada correctamente.
No existe ninguna herramienta de migración automática para este paso. Pero lo tenemos cubierto. Consulte la guía de iniciación sencillaque cubre aspectos importantes de la configuración utilizando un conjunto de datos de ejemplo. Esta guía le ayudará a familiarizarse con los conceptos básicos y podrá adaptarla a su aplicación.
Despliegue de puntos finales de aplicaciones
En Punto final de la aplicación es una representación de su aplicación dentro de Capella App Services. Representa el punto final con el que su aplicación móvil sincronizará los datos. Debe configurar al menos un App Endpoint en su cluster de App Services. Cada App Endpoint está asociado con un bucket, un ámbito y un subconjunto único de colecciones dentro de ese ámbito.
Configurar los puntos finales de la aplicación
Configurar el mecanismo de autenticación - Por defecto, todos los puntos finales de la aplicación están protegidos mediante la autenticación básica. Tiene la opción de configurar mecanismos avanzados de autenticación.
Configurar usuarios (y funciones) de la aplicación móvil - Configurar uno o varios usuarios de la aplicación y opcionalmente roles. Estos son los usuarios autenticados para sincronizar datos con App Services. En una aplicación de producción, es probable que utilice API REST de administración para configurar usuarios, o utilice las funciones de registro automático de usuarios si ha configurado Open ID Connect (OIDC) para autenticación.
Configurar el control de acceso - Este es uno de los elementos más cruciales de la configuración del App Endpoint. Aquí se define el nivel de acceso del usuario (lectura/escritura) especificando una función JavaScript. El control de acceso es posible gracias a un concepto único y potente conocido como "canales." Por defecto, todos los documentos de una colección se asocian a un canal que comparte el mismo nombre que la colección. Como resultado, un usuario al que se le concede acceso a un canal con el nombre de la colección obtiene automáticamente acceso de lectura a todos los documentos de esa colección. Consulte nuestra docs para saber más sobre Control de acceso y Validación.
Una vez que haya configurado su App Endpoint, estará listo para conectarse y sincroniza los datos de tu aplicación habilitada para Couchbase Lite.
5. Migre su aplicación Realm
Ahora que su backend está configurado, es hora de migrar su aplicación Realm SDK a Couchbase Lite. Realm es una base de datos orientada a objetos, mientras que MongoDB es un almacén de documentos JSON, que requiere transformar documentos BSON en objetos Realm. En cambio, Couchbase Lite es un almacén de documentos JSON embebido con todas las funciones que elimina la necesidad de transformación.
Migrar tu aplicación Realm implicará reescribir la capa de modelo de tu aplicación (o Data Access Layer) para utilizar el SDK de Couchbase Lite en el lenguaje correspondiente.
Consulte nuestro guía comparativa que compara MongoDB Device Sync SDK con Couchbase Lite. Aquí hay algunas guías específicas del idioma:
6. Migre sus aplicaciones SDK del lado del servidor
Si tiene una o más aplicaciones backend o del lado del servidor, también tendrá que migrarlas. Le ofrecemos SDKs que admiten una gran variedad de lenguajes de programación y ofrecen API modernas e idiomáticas que facilitan a sus aplicaciones backend la conexión y la interacción con su clúster. Durante la migración, tendrá la oportunidad de simplificar significativamente sus consultas originales escritas en MongoDB Query Language (MQL) convirtiéndolas a SQL!
Aunque SQL++ debería resultar muy familiar a cualquier persona con conocimientos de bases de datos, lo hemos simplificado aún más con CapellaIQnuestro asistente de IA que le ayudará a generar consultas a partir del lenguaje natural (NLP).
Si desea trabajar con Capella desde su entorno IDE, puede aprovechar nuestra herramienta Plugins IDE.
7. Establezca integraciones con su ecosistema
Couchbase proporciona varios conectores y herramientas que permiten la integración con otros subsistemas y servicios en tu entorno, como herramientas de monitorización, sistemas pub-sub, y más. Por lo tanto, si tu aplicación MongoDB interactúa con otros subsistemas, necesitarás reconfigurar esas conexiones cuando hagas la transición a Couchbase.
Ejemplo de migración: Realm a App Services
Pero espere... ¡hay más! La prueba está en el pudin.
Tomamos la aplicación móvil Realm de ejemplo de Todo y la migramos a Capella App Services. En el proceso, proporcionamos una guía detallada paso a paso de cómo Couchbase Lite puede proporcionar una funcionalidad equivalente a la soportada por la aplicación Realm. Además, te guiamos a través del proceso de configuración del clúster Capella y App Services con la configuración necesaria para que tengas un sistema de trabajo de extremo a extremo.
Aquí hay enlaces a los pasos de migración para la aplicación de ejemplo en tres idiomas populares:
Recursos
Nos encantaría conocer su experiencia de migración. Si tiene alguna pregunta o sugerencia, deje un comentario a continuación o póngase en contacto con nosotros a través de Discordia o foros.
Aquí encontrará enlaces directos a algunos de los recursos útiles mencionados en este artículo:
Agradecimientos
Gracias a Aaron Labeau por sus contribuciones a las guías de comparación de SDK y por las aplicaciones de ejemplo.