Tecnologías de contenedores como Docker han simplificado enormemente el proceso de desarrollo, prueba y despliegue de software al permitir empaquetar aplicaciones junto con su entorno de ejecución completo, lo que elimina las diferencias entre infraestructuras y sistemas operativos. Este post es un imprimación sobre cómo puede utilizar Docker para configurar su Couchbase Móvil de desarrollo y ofrece algunos consejos para solucionar problemas.

Todo lo expuesto en este post se aplica a un simple desarrollo con el objetivo de acelerar el proceso de desarrollo para que puedas empezar a crear aplicaciones móviles con Couchbase Mobile de forma rápida y sencilla.

En un Correo electrónico:discutimos cómo puede aprovechar Kubernetes para escalar y gestionar el despliegue del clúster de Couchbase Mobile en entornos de producción. El sitio Operador autónomo de Couchbase simplifica enormemente la tarea de desplegar y gestionar su clúster.

Fondo

A un alto nivel, el pleno Couchbase Móvil La pila consta de los siguientes componentes
- Couchbase Lite, la base de datos NoSQL integrada en tus aplicaciones móviles.
- Sync Gateway, que es la pasarela responsable de la sincronización de datos entre los clientes y Couchbase Server.
- El servidor Couchbase, responsable de la persistencia de datos

Para empezar a desarrollar con Couchbase Mobile, necesitas una instancia de Couchbase Server y Sync Gateway. Integrarás el framework Couchbase Lite en tus aplicaciones.

En este post, aprenderemos a utilizar Docker para desplegar una instancia de un archivo Pasarela de sincronización y un único nodo Servidor Couchbase clúster en un escritorio entorno adecuado para fines de desarrollo.

Instalación de Docker

Si aún no lo ha hecho, instale Docker según la guía guía de instalación para su entorno de escritorio.

Puede verificar su instalación docker escribiendo el siguiente comando en una ventana de terminal.

 

Debería ver una respuesta similar a la siguiente

Instalación de Couchbase Server

Couchbase Server está disponible en Centro Docker en el couchbase repo. En el momento de escribir este post, esta versión es la 6.0.1.

  • Primero obtendrás la imagen docker de Docker Hub. Abra una ventana de terminal y ejecute el siguiente comando

  • Cree una red docker local llamada "cbnetwork" (o cualquier nombre) si aún no existe. Abra una ventana de terminal y ejecute el siguiente comando. Si utiliza un nombre de red distinto de "cbnetwork", recuerde actualizar el uso correspondiente del nombre en las instrucciones restantes.

Configuración de Couchbase Server

Una vez que Couchbase Server esté instalado y en funcionamiento, tendrá que configurarlo antes de empezar a utilizarlo con Sync Gateway.

Estas son las cosas mínimas que tendrás que hacer :-

  • Cree un clúster con los servicios adecuados. Un clúster de un solo nodo es suficiente para las necesidades de desarrollo
  • Configurar la cuenta de administrador para acceder al servidor
  • Configurar clúster
  • Crear un cubo por defecto
  • Cree un usuario RBAC con acceso a nivel de bucket apropiado. Las credenciales del usuario RBAC son utilizadas por Sync Gateway para autenticarse con el servidor Couchbase.

Tienes dos opciones sobre cómo configurar el servidor Couchbase - Manual y Automatizado. Salte a la sección adecuada en función de su elección.

Opción 1: Configuración mediante la interfaz de administración

Puede configurar el servidor Couchbase manualmente a través de la interfaz de usuario de la consola de administración de Couchbase.
Para acceder a la interfaz de administración, debemos ejecutar la imagen docker que hemos extraído anteriormente.

  • Ejecute Couchbase Server con el siguiente comando. Esto ejecuta Couchbase Server como un proceso demonio.

  • Puede ver los registros en cualquier momento ejecutando el siguiente comando

  • Si su servidor se ha iniciado correctamente, debería ver algo como esto en su salida

  • El servidor puede tardar unos segundos en iniciarse. Compruebe que la imagen docker se está ejecutando con el siguiente comando

  • Una vez que el servidor esté en funcionamiento, acceda a él abriendo la URL http://localhost:8091 en su navegador
  • Siga las instrucciones del guía de configuración para configurar la cuenta de Administrador y crear un cluster de un solo nodo.
  • Siga las instrucciones aquí para crear un cubo
  • A continuación, cree un usuario RBAC para que Sync Gateway se conecte. Este usuario se creará con la función "con acceso a aplicaciones", tal como se especifica en las instrucciones. aquí
  • Una vez que su servidor Couchbase esté configurado, asegúrese de anotar
    • El nombre del cubo que ha creado
    • Las credenciales de usuario RBAC que utilizó para la configuración

Las credenciales RBAC y el nombre del bucket serán necesarios cuando esté listo para configurar su Sync Gateway

El proceso manual está bien, pero puede resultar tedioso si tienes que repetir este proceso varias veces en cada una de tus configuraciones de desarrollo. ¿No sería genial si los pasos de configuración pudieran automatizarse? Si usted está interesado en aprender acerca de eso, continúe con la siguiente sección, de lo contrario sólo pasar a la sección sobre la configuración de la puerta de enlace de sincronización.

Opción 2: Configuración mediante la CLI

He generado una imagen docker personalizada a partir de la imagen de Couchbase Server 6.0.1 que te permitirá lanzar el contenedor con los valores de configuración apropiados a través de la línea de comandos. Esto será particularmente útil si quieres automatizar / script el proceso de instalación / automatización.

Aunque 6.0.1 es la última versión en el momento de escribir el post, probablemente no sea la última versión cuando lo estés leyendo. Siga los pasos descritos en "Creación de una imagen Docker configurable personalizada" para crear una imagen personalizada con una versión de servidor diferente.

  • Descargue esta versión de desarrollo personalizada de la imagen de Couchbase Server basada en Couchbase Server 6.0.1.

  • Una vez que haya descargado correctamente la imagen personalizada, puede lanzarla proporcionándole los valores de configuración adecuados como parte del comando de lanzamiento. Asegúrese de registrar las credenciales de usuario RBAC y el nombre del bucket. Estos serán relevantes durante la configuración de Sync Gateway.
    • COUCHBASE_ADMINISTRATOR_USERNAME es el nombre del Administrador de Couchbase
    • COUCHBASE_ADMINISTRATOR_PASSWORD es la contraseña del administrador de Couchbase
    • COUCHBASE_BUCKET es el nombre del bucket de base de datos que desea crear
    • COUCHBASE_RBAC_USERNAME es el nombre del usuario RBAC de Sycn Gateway con acceso al bucket de nivel de aplicación
    • COUCHBASE_RBAC_PASSWORD es la contraseña del usuario RBAC
    • COUCHBASE_RBAC_NAME es un nombre amigable para el usuario RBAC
    • CLUSTER_NAME el nombre del cluster de Couchbase Server

    Abra una ventana de terminal y escriba el siguiente comando. Puede proporcionar valores adecuados para cada uno de los parámetros configurables.

  • Puede ver los registros en cualquier momento ejecutando el siguiente comando

  • Hay que tener paciencia. El servidor tarda unos minutos en ponerse en marcha. Si tiene éxito, su salida debe ser algo como esto

  • Ya está. Ahora puede probar su instalación.
    Acceda abriendo la URL http://localhost:8091 en su navegador y compruebe que su configuración es la especificada

Creación de una imagen Docker personalizada y configurable

Si te estás preguntando cómo he generado la imagen personalizada con opciones configurables, hay un par de maneras de hacerlo. Pero tomé un enfoque inspirado en el tutorial. Esencialmente construí una imagen docker personalizada a partir de la imagen base del servidor Coucbase y la configuré para nuestras necesidades de desarrollo.

Hay una tonelada de valores configurables personalizados como se describe en el CLI de couchbase y Interfaz REST especificaciones. En mi imagen docker personalizada, permití la configuración de unos pocos parámetros críticos y dejé los demás por defecto.

Si desea generar su propia imagen basada en una versión diferente de Couchbase Server y/o si desea personalizar los parámetros configurables, puede hacerlo siguiendo los pasos especificados en este guía

Instalación de Sync Gateway

Ahora que tienes el Couchbase Server configurado y funcionando, instalaremos el Sync Gateway. Es importante que Couchbase Server esté en funcionamiento antes de empezar con Sync Gateway.

Sync Gateway está disponible en Centro Docker en el couchbase repo.

  • Primero obtendrás la imagen docker de Docker Hub. Abre una nueva ventana de terminal y ejecuta lo siguiente.

  • Sync Gateway debe iniciarse con un archivo de configuración donde se especifica, entre otras cosas, la URL del Servidor Couchbase al que conectarse, el bucket al que acceder y las credenciales RBAC a utilizar para el acceso al bucket. El archivo de configuración determina el comportamiento en tiempo de ejecución de la pasarela de sincronización.

La imagen Docker que has sacado se construye con un archivo de configuración por defecto. Si no especifica ninguno, eso es lo que se utilizará (y que probablemente no va a trabajar para usted).

  • Si tiene una configuración que desea utilizar, ábrala en un editor de su elección. Si no, cree un nuevo archivo de configuración llamado sync-gateway-config.json y copia la siguiente configuración

  • Puede añadir un sincronizar o cualquiera de las otras propiedades de configuración. Nos centraremos en las que son esenciales para nuestro entorno de desarrollo. Usted debe hacer las modificaciones apropiadas en el archivo de configuración como se especifica a continuación.
  • En servidor URL especifica el nombre del contenedor de Couchbase Server. En el campo docker run utilizado para lanzar el servidor Couchbase, especificamos el nombre utilizando el parámetro --name opción.
  • En base de datos y cubo debe corresponder al $COUCHBASE_BUCKET que utilizó cuando configuró el servidor Couchbase. En nuestro ejemplo, se especificó que fuera demobucket.
  • En nombre de usuario corresponde al nombre de usuario de la cuenta RBAC que creó para el acceso al cubo, tal y como se especifica en el campo $COUCHBASE_RBAC_USERNAME que utilizó cuando configuró el servidor Couchbase. En nuestro ejemplo, se especificó que fuera admin.
  • En contraseña corresponde a la contraseña de la cuenta RBAC que creó para el acceso al cubo, tal como se especifica en el campo $COUCHBASE_RBAC_PASSWORD que utilizó cuando configuró el Servidor Couchbase. En nuestro ejemplo, se especificó que la contraseña.
  • Una vez configurado el archivo de configuración, deberá iniciar Sync Gateway con el archivo. Para ello, abra un terminal y ejecute los siguientes comandos

  • Puede ver los registros en cualquier momento ejecutando el siguiente comando

  • La pasarela de sincronización puede tardar unos segundos en iniciarse. Compruebe que la imagen docker se está ejecutando con el siguiente comando

  • Comprueba que tu pasarela de sincronización está funcionando abriendo la URL http://localhost:4984 en tu navegador.
    Debería ver el siguiente resultado

  • Verifique que la puerta de enlace de sincronización está hablando con el cubo de Couchbase Server abriendo la URL http://localhost:4985/demobucket/ en su navegador. Aquí demobucket es el nombre del bucket de base de datos que hemos creado.
    Deberías ver una salida similar a la siguiente indicando la versión de la pasarela de sincronización

 

Ya está. Ya tienes tu instancia docker de sync gateway hablando con el servidor Couchbase.

Gestionar su entorno

En esta sección, repasaremos algunos comandos básicos de Docker que te ayudarán a gestionar tu entorno.

Contenedores de parada/arranque

  • Puede detener y reiniciar los contenedores docker en cualquier momento utilizando el comando stop y iniciar comandos docker de la siguiente manera.
    • Contenedores de parada

    • Contenedores de arranque

 

Nota que si detienes Couchbase Server, Sync Gateway intentará reconectarse con el servidor durante unos minutos antes de rendirse. Así que si el servidor se detiene durante un período prolongado de tiempo, tendrá que detener y reiniciar el contenedor Sync Gateway también o utilizar la opción en línea API para volver a ponerlo en línea.

Actualización de la configuración de Sync Gatway

  • Si desea actualizar la configuración de la puerta de enlace de sincronización, deberá volver a ejecutar Sync Gateway con un archivo de configuración de puerta de enlace de sincronización actualizado. Para ello, deberá detener y eliminar el contenedor de la puerta de enlace de sincronización.

Si no eliminas la imagen del sync-gateway, verás un "error de conflicto de nombres" similar al que se muestra a continuación si intentas iniciar el sync-gateway de nuevo con la configuración actualizada.

Actualización de la configuración del servidor Couchbase

  • Del mismo modo, si desea volver a ejecutar el servidor Couchbase con una configuración actualizada, tendrá que detener y eliminar el servidor couchbase.

Sin embargo, en función de la configuración del servidor que se haya modificado, es posible que también deba detener y eliminar el contenedor de puerta de enlace de sincronización y volver a iniciarlo con el archivo de configuración de puerta de enlace de sincronización actualizado. Por ejemplo, si ha cambiado las credenciales RBAC para el bucket o si ha cambiado el nombre del bucket que.

Ejecutar comandos en el contenedor

A veces, es posible que desee ejecutar comandos directamente en el contenedor en ejecución. Para ello, puede utilizar la ventana acoplable exec para abrir un shell en el contenedor. Esto es extremadamente útil para la depuración y tal. Necesitarás privilegios de root para poder ejecutar el comando.

  • servidor couchbase

  • pasarela de sincronización

Próximos pasos

Como probablemente has deducido de este post, los contenedores docker hacen que sea extremadamente conveniente ponerte en marcha con un clúster de Couchbase Server y Sync Gateway en tu entorno de desarrollo. Con la configuración de backend fuera del camino, puedes centrarte en la construcción de tus aplicaciones móviles impresionantes con Couchbase Lite.

A continuación, puede utilizar docker-compose para instalar los contenedores Couchbase Server y Sync Gateway. Ten en cuenta que Sync Gateway depende de Couchbase Server para funcionar.

En este artículo se analizaba la configuración de un contenedor Docker en un entorno de desarrollo. En un entorno de producción del mundo real, es probable que nunca implementar un clúster de un solo nodo. Es probable que desee tener varios nodos de alta disponibilidad. Puede utilizar una tecnología de orquestación como Kubernetes para simplificar el despliegue y la gestión de su clúster de Couchbase Mobile.

Si tiene alguna pregunta o sugerencia, deje un comentario a continuación. En Foros de Couchbase son otro buen lugar para plantear preguntas.

 

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.

6 Comentarios

  1. error en el archivo de configuración. parámetros duplicados de - "enable_shared_bucket_access":true,

    1. Buscando la manera de subir un nuevo archivo de configuración, ¿alguna idea?

  2. Una entrada de configuración duplicada no causará ningún problema. Es benigno pero lo arreglaré. Usted tendrá que reiniciar su contenedor docker con el archivo actualizado.

    1. No parecía benigno porque no arrancaba sync gateway y el error indicaba entradas duplicadas. He reiniciado el servidor y Sync gateway y obtener este error.

      2021-01-11T18:01:08.890Z [ERR] Error al leer el archivo de configuración /etc/sync_gateway/: read /etc/sync_gateway/: is a directory - rest.ServerMain() at config.go:1091

  3. Por favor, utiliza los foros de desarrollo de Couchbase para discutir y depurar problemas. Es el canal más apropiado para este tipo de temas.

    Además, indicaste que la pasarela de sincronización no se iniciaba cuando proporcionaste las entradas dup config, así que por favor comparte los logs que indican el problema. El error que muestras no está relacionado.

  4. Denis Rosa, Defensor del Desarrollador, Couchbase enero 19, 2021 a 10:46 am

Dejar una respuesta