En Sync Gateway 3.0 introduce un enfoque modular y basado en clústeres para la configuración de Sync Gateway que sustituye a la configuración a nivel de nodo. Fichero de configuración JSON de versiones anteriores. En este post, vamos a echar un vistazo más profundo en el nuevo enfoque de la configuración de Sync Gateway y proporcionar contexto en torno a la motivación detrás de la mejora. Para más detalles, consulte la Documentación de Sync Gateway.
Flujo de trabajo de configuración
Comenzaremos con un análisis de las etapas lógicas de la instalación y configuración de un nodo Sync Gateway, como se muestra en esta ilustración:
Bootstrap: El primer paso es arrancar Sync Gateway para conectarse al clúster de Couchbase Server con las credenciales de autenticación adecuadas.
Configuración de la base de datos: Una vez que Sync Gateway está en funcionamiento, el siguiente paso es configurar la base de datos de Sync Gateway. Aquí es donde se proporciona el nombre de la base de datos, el bucket de Couchbase Server de respaldo, se configuran las políticas de gestión de caché, etc.
Control de acceso: Una vez configurada la base de datos, las políticas de control de acceso que controlan el acceso de lectura y escritura a los documentos se definen a través de la función Función de sincronización.
Gestión de usuarios: Por último, los usuarios de Sync Gateway se crean/registran en Sync Gateway mediante un esquema de autenticación adecuado. Estos son los clientes que sincronizan datos o acceden a ellos a través del punto final REST público de Sync Gateway.
A partir de la versión 3.0, Sync Gateway se inicia mediante un archivo de configuración con formato JSON. Posteriormente, el resto de la configuración se gestiona a través de una interfaz RESTful.
Configuración estática basada en archivos (heredada)
Para contextualizar, antes de profundizar en cómo configurar la puerta de enlace de sincronización en la versión 3.0, echemos un vistazo a la forma anterior a la versión 3.0 de hacer las cosas. Este modelo de configuración sigue siendo compatible con la versión 3.0 y puede activarse mediante una acción opción de configuración que desactiva el enfoque basado en la configuración persistente.
En el modelo heredado, cada nodo se configura de forma independiente con un Fichero de configuración JSON que se aplica a un nodo de Sync Gateway. El archivo de configuración incluye ajustes de arranque, configuración a nivel de base de datos, políticas de control de acceso y mucho más. Las únicas excepciones son los usuarios y las réplicas entre Sync Gateways, que también pueden gestionarse mediante el archivo de configuración usuarios y réplicas REST respectivamente.
Cada vez que sea necesario actualizar la configuración de la base de datos, deberá actualizarse el archivo de configuración en cada nodo de la puerta de enlace de sincronización. Tras actualizar el archivo, los nodos de la puerta de enlace de sincronización deben reiniciarse para que la configuración actualizada surta efecto.
Configuración persistente centralizada de Sync Gateway
Echemos un vistazo a la configuración persistente centralizada. Flujo de trabajo de configuración modelo descrito anteriormente:
Bootstrap
En el modelo de configuración persistente centralizada, cada nodo de Sync Gateway se configura con un archivo de configuración de arranque estático con formato JSON que incluye información mínima que permitirá a Sync Gateway conectarse de forma segura al clúster de Couchbase Server.
Cualquier cambio realizado en el archivo de configuración requerirá reiniciar Sync Gateway para que surta efecto.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
{ "bootstrap": { "group_id": "grupo1", "servidor": "couchbases://cb-server", "nombre de usuario": "Administrador", "contraseña": "contraseña" }, "registro": { "consola": { "log_level": "trace", "log_keys": ["*"] } } } |
Configuración de la base de datos
Las bases de datos de Sync Gateway pueden crearse y gestionarse a través de la aplicación Punto final de administración de gestión de bases de datos. La configuración realizada a través de la API REST se persiste en el bucket de Couchbase Server correspondiente y se propaga automáticamente a los demás nodos Sync Gateway del clúster.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
rizo --ubicación --solicitar PUT localhost:4985/travel-sample/' \ --cabecera Content-Type: application/json' \ --cabecera Autorización: Basic c2d3X2NsdXN0ZXI6cGFzc3dvcmQ=' \ --datos-en bruto '{ "cubo": "muestra-viaje", "nombre": "viaje-muestra", "huésped": { "desactivado": true }, "import_docs": true, "num_index_replicas": 0, "enable_shared_bucket_access": true }' |
Control de acceso
Del mismo modo, el Javascript Sincroniza La función, que define las políticas de control de acceso de lectura/escritura, puede configurarse a través del punto final REST. Se puede gestionar como parte de la punto final de configuración de la base de datos o a través de el punto final de sincronización.
|
1 2 3 4 5 |
rizo --ubicación --solicitar PUT \ localhost:4985/travel-sample/_config/sync' \ --cabecera Content-Type: application/javascript' \ --cabecera 'Autorización: Basic c2d3X2FkbWluOnBhc3N3b3Jk'\ --datos-en bruto 'function(doc, oldDoc) {if (doc.type){ channel("channel: "+ doc.type);}}' |
Gestión de usuarios
Los usuarios se configuran a través de punto final de creación de usuarios.
|
1 2 3 4 5 6 7 8 9 10 |
rizo --ubicación --solicitar POST localhost:4985/travel-sample/_user/' \ --cabecera Content-Type: application/json' \ --cabecera 'Autorización: Basic c2d3X2FkbWluOnBhc3N3b3Jk' \ --datos-en bruto '{ "name": "demo", "contraseña": "contraseña", "admin_channels": ["*"], "email": "demo@example.com", "desactivado": false }' |
Todos los cambios de configuración realizados a través de la API REST se guardan en los buckets correspondientes del servidor Couchbase y sobreviven a cualquier reinicio de Sync Gateway.
Configuración de la base de datos
La configuración de la base de datos se aplica a un nodo de Sync Gateway y se propaga automáticamente a todos los nodos del clúster.
Ahora bien, ¿qué ocurre si no desea que todos los nodos de Sync Gateway compartan la misma configuración de base de datos? Introduciendo el concepto de grupos de configuración de la base de datos. A alto nivel, un grupo de configuración de base de datos especifica el subconjunto de nodos de puerta de enlace de sincronización al que se aplicará una configuración de base de datos. Por defecto, todos los nodos pertenecen a un grupo de configuración predeterminado y los usuarios pueden definir grupos de configuración para restringir el alcance de la configuración de la base de datos.
Por ejemplo, considere un clúster Sync Gateway de cinco nodos en el que tres de los nodos están configurados para réplicas de cliente Couchbase Lite y los dos restantes están configurados para réplicas inter-Sync Gateway. En este caso, los tres nodos pueden configurarse para pertenecer al grupo por defecto, mientras que los dos nodos restantes se configuran para pertenecer a un grupo de configuración denominado ISGR.
Puede obtener más información sobre los grupos de configuración en nuestra documentación páginas.
Resumen
Estas son las características más destacadas del modelo de configuración:
Administración remota segura: Administre de forma segura clústeres de Sync Gateway desplegados en la nube o en centros de datos periféricos.
Modular: Configure y gestione dinámicamente los distintos aspectos de la configuración de la base de datos de forma modular.
Cluster-Aware: Los cambios de configuración de la base de datos realizados en un nodo Sync Gateway se propagan automáticamente a todos los nodos Sync Gateway del clúster o a un subconjunto relevante de ellos.
Persistencia: Todos los cambios realizados en la base de datos a través del punto final REST se conservan y sobreviven a los reinicios.
Próximos pasos
Echa un vistazo a la sesión de vídeo en el que se explica el método de configuración y se muestra una demostración.
Descargar Sync Gateway y pruébelo gratis. En documentación son un buen recurso para obtener más información.
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í.
Agradecimientos
Me gustaría dar las gracias a Ben Brooksingeniero del equipo Sync Gateway, por su aportación a esta entrada del blog.



