Servidor Couchbase

Soporte de ámbitos y colecciones en Couchbase Mobile para aplicaciones Edge

Nos complace anunciar la disponibilidad general de Couchbase Mobile 3.1, que incluye Couchbase Lite y Sync Gateway para soluciones informáticas móviles y de borde. Este es un lanzamiento significativo que introduce soporte cloud-to-edge para ámbitos y colecciones en Couchbase Mobile para despliegues autogestionados. Lanzado en Servicio Couchbase 7.0Scopes and Collections ofrece la posibilidad de aislar los datos de forma lógica y aplicar una gestión independiente del ciclo de vida de las aplicaciones en varios niveles de granularidad.

Con la versión 3.1 de Couchbase Lite y Sync Gateway, los desarrolladores pueden aprovechar las ventajas de los ámbitos y las colecciones en sus aplicaciones móviles y de borde. En este post, voy a discutir los beneficios del uso de ámbitos y colecciones en el contexto de algunos casos de uso típicos. Si bien el artículo se centra en una característica clave de la versión 3.1, para conocer otras mejoras y correcciones de errores, puede leer nuestras notas de la versión específicas de la plataforma.

Este post asume que estás familiarizado con los fundamentos de Couchbase Mobile. Si eres nuevo en Couchbase Mobile, echa un vistazo a la visión general.

¡Descárguelo hoy mismo!

Así es como puedes empezar a evaluar las nuevas características de Couchbase Lite y Sync Gateway 3.1:

Casos prácticos de ámbitos y colecciones

Probablemente sea mejor discutir los beneficios de los ámbitos y las colecciones en el contexto de algunos casos de uso del mundo real. Para cada uno de los casos de uso discutidos, exploramos soluciones a nivel de bucket/base de datos y luego introducimos una solución con ámbitos y colecciones.

Organización de datos simplificada

La posibilidad de que los desarrolladores estructuren los datos en buckets similares a las tablas de una base de datos relacional, de forma que los datos relacionados se agrupen en contenedores separados, lo que resulta especialmente útil para los desarrolladores que están migrando desde un mundo relacional.

Aquí tiene dos ejemplos para ilustrar el problema:

Ejemplo

Couchbase Mobile Multi App Example

Considere la posibilidad de aplicación de pedidos de campo con datos relativos a los productos y datos relativos a los pedidos. Existen dos aplicaciones móviles compatibles con Couchbase Lite, una para Productos y otra para Pedidos. Productos documentos relacionados se sincronizan con la aplicación móvil Productosmientras que pedidos los documentos relacionados se sincronizan con el Aplicación móvil de pedidos. Un usuario de la aplicación móvil de productos sólo puede leer datos relacionados con productos, mientras que un usuario de la aplicación móvil de pedidos puede leer y escribir datos relacionados con pedidos.

 

 

 

 

Solución: Basada en cubos

Couchbase - data model bucket

    • Los datos de productos y pedidos son en un solo cubo.
    • El cubo tiene una docena de tipos de documentos. A tipo_doc se utiliza para agrupar lógicamente documentos relacionados con los productos y los pedidos.
    • Los usuarios de la aplicación se definen a nivel de bucket.
    • Una función Sync se define a nivel de cubo y es complicada. Las reglas de control de acceso se basan en tipo_doc y canales definido para tipo_doc controlar qué usuario puede acceder a qué subconjunto de documentos.
    • La aplicación Productos cuenta con un sólo tirar replicación para los documentos de productos, mientras que la aplicación Órdenes tiene push-pull replicación de los documentos relacionados con los pedidos.
Solución: Basada en el ámbito/las colecciones

Utilice ámbitos y colecciones para organizar los datos y simplificar las políticas de control de acceso. 

example1.1-scopes

  • Segregar productos y encarga los documentos relacionados en dos ámbitos dentro de un mismo cubo.
  • En lugar de un tipo_doc campo, agrupar lógicamente los documentos de un tipo específico en su propia colección.
  • A continuación, los usuarios de la aplicación se segregan por ámbito, para que los usuarios del ámbito de productos sólo puedan acceder a los documentos de productos y los usuarios del ámbito de pedidos puedan acceder a los documentos de pedidos.
  • La función de sincronización se simplifica al ser fijado a nivel de colección. 
  • La aplicación Productos cuenta con un sólo tirar replicación para el ámbito de los productos y la aplicación Pedidos tiene push-pull replicación para el ámbito de las órdenes. 

Ejemplo

couchbase mobile

Considere la posibilidad de aplicación de asistencia sanitaria con 30 categorías de datos, incluidos pacientes, visitas, procedimientos, aseguradoras, enfermedades, diagnósticos, etc.


Los pacientes tienen acceso a su historial médico a través de una aplicación móvil Couchbase Lite. Algunos de los documentos (por ejemplo, las aseguradoras) no deben sincronizarse con la aplicación móvil. Algunos de los documentos (por ejemplo, el perfil) pueden ser actualizados por los pacientes a través de la aplicación móvil, mientras que otros (como el diagnóstico) son de solo lectura.

 

 

 

Solución: Basada en cubos

example1.2-bucket

    • Los datos correspondientes a la app de asistencia sanitaria se mantienen en un bucket correspondiente.
    • El cubo tiene más de 30 tipos de documentos. En tipo_doc se utiliza para agrupar lógicamente documentos relacionados.
    • Una función Sync se define a nivel de cubo y es complicada. Las reglas de control de acceso se basan en tipo_doc y canales definidos para tipo_doc controlar qué usuario puede acceder a qué subconjunto de documentos.

Los filtros de importación son a nivel de cubo y complicados. Utilice tipo_doc para filtrar los documentos que no deben sincronizarse.

 

Solución: Basada en el ámbito/las colecciones

Utilice ámbitos y colecciones para organizar los datos y simplificar las políticas de control de acceso.

example1.2-scopes

  • En lugar de un tipo_doc campo, agrupar lógicamente cada documento de un tipo específico en su propia colección.
  • La función Sync se simplifica y se define a nivel de colección. Cada colección está asociada implícitamente a un canal y, como tal, es mucho más sencillo especificar el acceso de lectura/escritura a las colecciones.
  • La función de filtro de importación se simplifica y se define a nivel de colección. Filtra las colecciones de documentos que no deben importarse.

 

 

Aplicaciones multiusuario escalables

La capacidad de admitir aplicaciones multiusuario que no necesitan un aislamiento estricto de los recursos, pero sí una gestión independiente del ciclo de vida de los datos.

Ejemplo

multi tenant Couchbase Mobile

Considere una ISV que aloja una aplicación de eventos para 20 inquilinos empresariales. Cada inquilino tiene un Aplicación Couchbase Lite que puede sincronizar datos de eventos pertenecientes al inquilino. Cada tenant tiene un conjunto distinto de usuarios de app que pueden acceder a los datos específicos del tenant. Los usuarios autenticados de la app pueden sincronizar datos a través de la app Couchbase Lite correspondiente a su tenant. Los tenants no requieren un estricto aislamiento de recursos.

 

Solución: Basada en cubos

example2-bucket

  • Todos los inquilinos's data is in its propio cubo.
  • Cada cubo tiene docenas de tipos de documentos. El sitio tipo_doc se utiliza para agrupar lógicamente documentos relacionados.
  • A medida que la solución se escala a más inquilinos, más cubos y, posteriormente, se añaden más grupos. Esto es caro y no es escalable.
  • Cada inquilino tiene un conjunto distinto de usuarios de aplicaciones registrados a nivel de bucket.
  • Las réplicas de cliente de Couchbase Lite se configuran para sincronizar los datos del bucket del inquilino correspondiente.

 

Solución: Basada en el ámbito/las colecciones

Ámbitos y colecciones ofrece una alternativa escalable para aplicaciones multiusuario con gestión independiente del ciclo de vida de los datos.

example2-scopes

  • Cada inquilino tiene su propio ámbito de aplicacióncontenidas en un único eventos cubo.
  • Cada inquilino la aplicación cliente sincroniza los datos asociada a la ámbito del arrendatario.
  • Cada inquilino tiene un conjunto distinto de usuarios de la aplicación registrado en el ámbito de aplicación.
  • En se añaden o eliminan inquilinos, se añade o elimina un ámbito del cubo. Un inquilino puede desconectarse sin que ello afecte a otros inquilinos.

 

 

Alta densidad de aplicaciones en la periferia

Se trata de la capacidad de soportar despliegues de nube a borde a gran escala con una serie de aplicaciones en el borde. Cada borde se sirve utilizando una arquitectura de aplicaciones basada en microservicios. Los microservicios necesitan un acoplamiento flexible para que puedan desarrollarse, desplegarse y escalarse de forma independiente. Los datos específicos de un microservicio son privados para el microservicio.

Ejemplo

inter Sync Gateway Replication

Considere la posibilidad de despliegue de aplicaciones ship-to-shore, con 20 buques cada uno ejecutando clústeres de Couchbase Mobiley un clúster de Couchbase Mobile en la nube. El clúster de Couchbase Mobile en cada nave. poderes 50 aplicaciones. Cada una de las aplicaciones es construido con una arquitectura de microservicios. Las aplicaciones que se ejecutan en cada buque sincronizan el viaje y los documentos relacionados con el buque con los clusters de tierra. utilizando Replicación inter-Sync Gateway. Cada aplicación tiene un conjunto distinto de usuarios.

 

 

 

Solución: Basada en cubos

example3-bucket

  • Cada uno de los microservicios correspondientes a las 50 aplicaciones edge que se ejecutan en cada barco está en su propio cubo. El número de aplicaciones servidas por un cluster está limitado por el número de buckets del cluster.
  • Réplicas entre buckets a través de la pasarela de sincronización en el clúster del buque y el correspondiente clúster en la nube mantiene sincronizados los buques y la costa. El resultado es un un mínimo de una réplica "ship-to-shore" por cada microservicio.
  • La configuración de cada barco es caro. El coste es multiplicado por el número de buques y poco escalable.

 

Solución: Basada en ámbitos/colecciones

Los ámbitos y las colecciones permiten consolidar los cubos y constituyen una alternativa más escalable y rentable a la solución basada en cubos.

example3-scopes

 

  • Cada aplicación está asociada a un ámbito y cada está asociado a su propia colección. El resultado es la posibilidad de alojar un gran número de aplicaciones en unos pocos clusters.
  • La replicación Inter-Sync Gateway entre los ámbitos del clúster en el buque y el clúster en la nube correspondiente mantiene sincronizados los buques y la costa. En lugar de una replicación para cada microservicio, la replicación puede configurarse a nivel de aplicación.

Organización y aislamiento de datos en Couchbase Lite

La capacidad de los desarrolladores para organizar y aislar lógicamente los datos dentro de una única instancia de base de datos Couchbase Lite.

Ejemplo

Couchbase Mobile field app

Considere un Couchbase Lite aplicación de campo utilizados por los empleados de una empresa de servicios públicos para gestionar sus tareas sobre el terreno. La aplicación de campo sincroniza regularmente datos como proyectos, mapas de infraestructuras, etc. a través de Sync Gateway. El sitio la aplicación de campo tiene una funcionalidad similar a la del bloc de notas que permite a los empleados tomar notas rápidas que pueden borrar sin afectar a otros documentos. Estos las notas son temporales y sólo locales no deben sincronizarse con un servidor remoto.

 

 

 

 

Solución: Basada en cubos

example4-bucket

  • La solución basada en cubos requiere dos bases de datos Couchbase Lite separadas dentro de la aplicación; uno para los datos locales y otro para los datos sincronizados. 
  • Se configura un replicador con la base de datos Couchbase Lite que contiene los datos a sincronizar.
  • El nivel de aislamiento de la base de datos significa que no es posible realizar consultas en los datos locales y de sincronización.

 

 

Solución: Basada en el ámbito/las colecciones

Los ámbitos y colecciones permiten el aislamiento lógico de datos dentro de una única base de datos Couchbase Lite.

example4-scopes

  • En lugar de dos bases de datos Couchbase Lite, el caso de uso puede ser soportado por dentro de la misma base de datos Couchbase Lite, de forma que los datos sólo locales están en un ámbito y los datos que se pueden sincronizar están en otro ámbito.
  • Los datos están lógicamente aislados unos de otros y las aplicaciones pueden consultar los datos locales y sincronizarlos.
  • Las consultas se simplifican ya que pueden aplicarse a un ámbito, evitando la necesidad de filtros. También es fácil purgar todos los documentos de un ámbito local cuando sea necesario.
  • El replicador está configurado para sincronizar los datos asociados al sincronizar alcance a través de Sync Gateway.

Aislamiento de metadatos de Sync Gateway

La capacidad de separar los datos de la aplicación en buckets de los metadatos del sistema mantenidos por Sync Gateway para sus operaciones internas.

Ejemplo

couchbase mobile SDK app

Considere una aplicación de gestión de inventario para tiendas que permite a los dependientes consultar los datos de inventario de la tienda desde su aplicación móvil integrada Couchbase Lite. Los gestores de las tiendas utilizan una aplicación web backend basada en Couchbase Server SDK de interfaz con Couchbase Server para la gestión de datos de inventario.


Cualquier actualización realizada a través de la aplicación web se sincroniza con la aplicación móvil Couchbase Lite.

 

 

Solución: Basada en cubos

example5-bucket

  • Los metadatos de sincronización no pueden aislarse de los datos de la aplicación mediante el enfoque basado en cubos.
  • Sync Gateway persiste los metadatos de sincronización y otras configuraciones de la base de datos en el bucket junto con los datos de la aplicación. Estos datos están destinados a ser utilizados exclusivamente por Sync Gateway para sus operaciones.
  • Existen no hay controles RBAC que restrinjan el acceso a los metadatos de sincronización lo que supone un riesgo. Esto aumenta la carga de la aplicación basada en SDK para garantizar que no modifica los metadatos de sincronización.
  • Consultas para los datos de la aplicación deben filtrarse adecuadamente para eliminar los metadatos de sincronización, lo que aumentando la complejidad de la aplicación SDK.
Solución: Basada en el ámbito/las colecciones

Los ámbitos y las colecciones son la única opción para aislar los metadatos de la pasarela de sincronización.

example5-scopes

  • Datos del sistema utilizado por Sync Gateway se mantiene en _ámbito/colección por defecto, donde está lógicamente aislado de los datos de la aplicación en ámbitos/colecciones definidos por el usuario.
  • Elimina el riesgo de que la aplicación basada en SDK elimine inadvertidamente metadatos de sincronización. utilizando controles RBAC de ámbito para restringir el acceso al ámbito _default que contiene metadatos de sincronización.
  • La aplicación basada en el SDK se simplifica. La separación de los metadatos del sistema en su propio ámbito simplifica la implementación: las consultas no necesitan filtros y el ciclo de vida de los datos de la aplicación puede gestionarse más fácilmente.

 

Soporte Cloud-to-Edge para ámbitos y colecciones

Con esta versión, los ámbitos y las colecciones están disponibles de principio a fin en todo el sitio web. Couchbase Móvil pila. Para obtener más información, consulte el documentación

La figura siguiente es un resumen:

Scopes and Collections in Couchbase Mobile

      1. Los datos en Couchbase Server se organizan dentro de ámbitos y colecciones.
      2. Una base de datos de Sync Gateway está asociada a un único ámbito. La base de datos puede estar asociada a una o varias colecciones del ámbito, incluidas todas las colecciones del ámbito.
      3. Un cliente de Couchbase Lite puede configurar una o más réplicas a uno o más puntos finales de base de datos de Sync Gateway. Cada replicación puede sincronizar una o todas las colecciones asociadas a ese ámbito.
      4. El cliente Couchbase Lite también puede persistir localmente los datos en un ámbito que no está sincronizado con Sync Gateway remoto.
      5. Un clúster Sync Gateway puede sincronizar uno o varios ámbitos con otro clúster Sync Gateway a través de Replicación inter-Sync Gateway protocolo.
      6. Un cliente Couchbase Lite puede sincronizar uno o más ámbitos directamente con otros clientes Couchbase Lite a través de una red local vía Couchbase Lite Peer-to-Peer protocolo. Esto puede hacerse sin necesidad de un punto de control basado en la nube.

Compatibilidad

Los despliegues de Couchbase Mobile que se actualicen a la versión 3.1 pueden seguir utilizando el modelo basado en cubos hasta que estén preparados para actualizar a ámbitos y colecciones. Esto también permite a los despliegues seguir utilizando un modelo basado en cubos para las aplicaciones existentes, pero pueden aprovechar las ventajas de los ámbitos y las colecciones para las nuevas aplicaciones.

Recursos

Pero eso no es todo. Hay otras mejoras y cambios en la API que se comentan en las notas de la versión. Aquí tienes enlaces directos a algunos recursos útiles. Puede obtener más información en Novedades página.

Libros blancos

Notas de publicación

Escucha a Wayne Carter, vicepresidente de ingeniería de Couchbase, hablar sobre Scopes y Collections en Couchbase Mobile:

Si tiene alguna pregunta o sugerencia, deje un comentario a continuación o póngase en contacto conmigo a través de Twitter o correo electrónico a mí.

Agradecimiento

Un agradecimiento especial a Adam Fraser y Mark Gamble por su reseña de la entrada del blog.

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

Autor

Publicado por Priya Rajagopal, Directora de Gestión de Productos

Priya Rajagopal es directora sénior de gestión de productos en Couchbase y responsable de las plataformas de desarrollo para la nube y el perímetro. Lleva más de 20 años dedicándose profesionalmente al desarrollo de software en varios puestos de liderazgo técnico y de producto, con más de 10 años centrados en tecnologías móviles. Como delegada de estándares IPTV de TISPAN, fue una colaboradora clave en las especificaciones de estándares IPTV. Tiene 22 patentes en las áreas de redes y seguridad de plataformas.

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.