No es una pregunta fácil de responder: ¿Cómo traslado mi solución local, virtualizada o de nube pública a una nueva y reluciente infraestructura de nube totalmente gestionada, con el menor trastorno posible?

Las preocupaciones sobre la migración ocupan un lugar destacado en la lista de todos los desarrolladores que trabajan en la nube, y espero abordarlas en esta entrada del blog.

El post anterior de esta serie fue Introducción a Couchbase Cloud. Esta entrada de blog incluía una visión general de alto nivel de Couchbase Cloud, de cómo llegó a ser, y algunos consejos para empezar en tu viaje a Couchbase Cloud. El éxito del primer artículo me ha impulsado a escribir el siguiente. El siguiente paso lógico es migración.

Antes del lanzamiento de la versión Database-as-a-Service (DBaaS) totalmente gestionada de Couchbase, podías desplegar la plataforma NoSQL en cualquier infraestructura que quisieras: servidores bare metal, contenedores Docker, máquinas virtuales, nubes públicas y privadas, o cualquier otra cosa que encajara en tu pila tecnológica actual. Couchbase pretende apoyarlo todo.

Eso también significa hacer que tu próxima migración o transferencia de datos entre cualquier plataforma sea lo más fluida posible, incluyendo cualquier migración a Couchbase Cloud. Sin embargo, migración implica mucho más que la simple transferencia de datos. Es posible que las configuraciones anteriores incluyan servicios, índices y usuarios que también deban trasladarse.

El objetivo de este artículo es guiarte paso a paso por algunas de las acciones más comunes a realizar durante el proceso de migración de la forma más sencilla posible. En algunos casos, mis colegas ya han escrito instrucciones detalladas sobre pasos concretos, por lo que haré referencia a ellas cuando sea necesario.

Ahora, vamos a darle una ventaja a su Couchbase Migración a la nube.

Cree su nube

Antes incluso de empezar con una migración, necesitas algo a lo que migrar.

En mi anterior entrada en el blogEn el artículo anterior, hicimos una introducción a Couchbase Cloud, con indicaciones sobre cómo empezar. Si aún no lo has hecho, lee ese artículo primero y pon en marcha tu primera nube.

Una de las primeras cosas que hay que tener en cuenta es el tamaño del clúster al que se va a migrar. En muchos casos, querrás imitar el tamaño y la forma de tu infraestructura original.

Couchbase Cloud ofrece un sinfín de opciones flexibles para cualquier nodo, tamaño o configuración de servicio que necesites implementar. Vale la pena señalar que los tipos de instancia son algo que debes investigar y considerar antes de montar exactamente la misma infraestructura en Couchbase Cloud. Es importante conocer los diferentes tamaños de máquinas, especialmente la cantidad de RAM y CPU que tiene un nodo determinado.

Si tiene experiencia con Servidor CouchbaseEn el caso de los Servicios de Consulta, usted sabe que diferentes servicios consumen más recursos. Por ejemplo, el servicio de consultas consume más CPU que memoria, por lo que elegir una instancia que consuma más CPU podría ser la mejor opción para estos nodos.

Cluster sizing options in Couchbase Cloud

Si buscas una buena práctica, mi recomendación sería que te fijaras en tu despliegue actual e intentaras ajustarlo lo máximo posible a lo que ya tienes. Para empezar, esto será suficiente.

Migración de usuarios

Couchbase Cloud proporciona dos tipos de usuarios: Usuarios de Couchbase Cloud y usuarios de bases de datos.

Los usuarios de Couchbase Cloud tienen acceso a https://cloud.couchbase.com/ e interactúan principalmente con el plano de control. Estos usuarios tienen tres opciones: Admin, Editar y Ver. Estos usuarios se crean para la administración principal de Couchbase Cloud Platform. Desde el plano de control tienen acceso al Dashboard principal, Connecting Cloud Service Providers, Creating Users, Billing details y otras Actividades de los Clusters subyacentes.

Los usuarios de la base de datos también tienen acceso al plano de control. Sin embargo, estos usuarios tienen acceso a los clústeres individuales, a los servicios y a los datos subyacentes. Estos usuarios crean buckets, construyen índices, ejecutan consultas, etc. Estos usuarios también proporcionan las credenciales que sus SDK de aplicación utilizan para interactuar con el clúster. Puede limitar el nivel de acceso y control que estos usuarios de bases de datos tienen en los diferentes clústeres y buckets dentro de su organización.

Add and manage users in Couchbase Cloud

La creación de ambos tipos de usuarios es trivial: hay que rellenar un simple formulario y nada más. Estos usuarios reciben correos electrónicos notificándoles el acceso que se les acaba de proporcionar. Para los usuarios veteranos de Couchbase, esta es también una gran oportunidad para evaluar quién tiene exactamente qué acceso a la información.

Proyectos en Couchbase Cloud

Couchbase Cloud introduce el concepto de Proyectos.

Muchos clientes de Couchbase utilizan Couchbase para soportar múltiples y diferentes aplicaciones. Los proyectos te dan la oportunidad de organizar lógicamente estos clusters en grupos. Simplemente crea un nuevo proyecto y despliega tus clusters relevantes dentro de él.

Migración de cubos

Los Buckets de Couchbase son lo que mucha gente denomina bases de datosy son la primera capa lógica de almacenamiento dentro de un clúster.

Crear estos buckets es sencillo - y aún más sencillo si ya has usado Couchbase Server. Dentro de cada cluster, hay una pestaña de buckets, seleccionando "Añadir Bucket" aparece un formulario que incluye el nombre del bucket, la asignación de memoria y las opciones de resolución de conflictos. Simplemente crea el nuevo bucket, proporciónale la información relevante y estarás listo para empezar a migrar datos al cluster.

Bucket database migration in Couchbase Cloud

Migración de datos

Ahora es el momento de la parte principal del programa: Migración de datos. Hay dos métodos principales de migración de datos en Couchbase Cloud: Migración offline y Migración online.

Migración de datos en línea

Empezaremos con la migración de datos en línea porque es la más común.

La migración en línea es el proceso de mover o replicar los datos a través de otro clúster activo, mientras que el clúster original sigue operativo y recibiendo tráfico. Este enfoque elimina la necesidad de tiempo de inactividad, que es uno de los principales beneficios de una tecnología NoSQL como Couchbase.

La herramienta que vamos a utilizar se llama XDCR, o Cross Data Center Replication. Permite configurar flujos de replicación bidireccionales o unidireccionales entre dos buckets en clústeres diferentes. Esta replicación continua es un consumidor del Protocolo de Cambio de Datos (DCP) que propaga las mutaciones de datos instantáneamente alrededor de su clúster, asegurando que la replicación está recogiendo estos cambios también.

Sólo son necesarios unos pocos pasos para conectar tu clúster autogestionado a Couchbase Cloud y configurar un flujo de replicación:

  1. Conecte su clúster autogestionado dentro del proyecto en el que se encuentra su clúster de destino. Connect the self-managed cluster in Couchbase Cloud
  2. Rellene la información de su clúster autogestionado, cargue los certificados si es necesario y, a continuación, pulse Guardar.
    Add a self-managed cluster in Couchbase Cloud
  3. Añada un flujo de replicación desde sus buckets de origen y destino, incluyendo cualquier filtrado avanzado y comience a replicar.
    Set up replication with Couchbase Cloud

A partir de aquí, añada tantos flujos de replicación como necesite y repita el proceso para cualquier clúster autogestionado adicional.

Una vez replicados los datos, es una gran oportunidad para probarlo todo desde el punto de vista de la aplicación y el rendimiento hasta que esté seguro de que la transición se puede realizar sin problemas. Una vez que el nuevo clúster esté conectado y operativo con su aplicación, ya puede empezar. En este punto, siéntase libre de dejar el clúster autogestionado allí, o eliminarlo del proyecto y desmantelar estos nodos cuando sea conveniente.

Sencillo, ¿verdad?

Migración de datos sin conexión

La migración de datos offline es para migrar datos en los que no se está escribiendo activamente. En estos escenarios, necesitas capturar los datos tal y como están, y luego llevar esos datos capturados a Couchbase Cloud.

Para comenzar este proceso, necesitarás un conjunto de datos fijo listo para importar. Si ya tienes un Cluster Couchbase, utiliza cbexport para exportar los datos existentes. Pero mientras los datos estén en el formato correcto, pueden proceder de cualquier fuente.

Entre los conjuntos de datos que se pueden importar de esta forma se incluyen:

    • Lista JSON
    • Líneas JSON
    • CSV
    • Archivo

Una vez que tengas un conjunto de datos apropiado, utiliza la funcionalidad de importación dentro del plano de control de Couchbase Cloud para ingerir los datos en un bucket existente. Esto se puede encontrar dentro del clúster, en el menú desplegable "Herramientas".

Couchbase Cloud control plane import data option

A partir de aquí, al hacer clic en "Importar" se abre un cuadro de diálogo en el que puede definir explícitamente el cubo de destino, el tipo de archivo de importación, la generación de claves y cualquier configuración adicional. Cuando todo esté listo, seleccione "Importar" para que comience la importación de datos.

Import documents in Couchbase Cloud

Para más información sobre la migración de datos sin conexión, mi colega Prasad Doddi escribió un magnífico artículo sobre el nuevo y mejorado proceso de importación en Couchbase Cloud.

Migración de índices N1QL

Las primeras secciones deberían cubrir la mayoría de los casos de uso que utilizan la caché clave-valor de Couchbase. Sin embargo, algunos clústeres se han ampliado para aprovechar las capacidades de consulta a través del lenguaje de consulta de Couchbase, N1QL (como SQL para JSON).

Al igual que SQL, las consultas N1QL requieren índices para ejecutarse con éxito. Y como usted probablemente sabe, los índices requieren un ajuste fino con el fin de optimizarlos para una consulta específica. Con todo el tiempo que has invertido en dichos índices, querrás asegurarte de que se transfieren correctamente.

El primer enfoque para migrar índices es el manual. En tu cluster existente, busca definiciones de índices en la sección de índices de la UI dada. Trae estas definiciones junto a tu clúster de Couchbase Cloud, ve al Query Workbench, y empieza a ejecutar los comandos de definición de índices hasta que tengas un conjunto completo de índices que coincidan con tu entorno original.

Para entornos grandes, o entornos en los que la consulta es el método predominante de recuperación de datos, este enfoque de las definiciones de índices empieza a ser demasiado prolijo. En este caso, hay demasiados índices que migrar, por lo que se necesita un método más sencillo.

También existe un enfoque programático para migrar sus índices, y necesitará el programa cbshell de línea de comandos. Puede migrar sus índices en cuatro sencillos pasos:

  1. Instale cbshell en un sistema que tenga acceso a Internet a ambos clústeres.
  2. Crear un config que define tanto el clúster autogestionado de origen como el clúster de nube de destino.
  3. Entre en el clúster de origen y migre las definiciones al clúster en la nube.
  4. Entra en el clúster de la nube de destino y construye los nuevos índices.

Este artículo de mi colega profundiza en el tema migrar de Couchbase Server a Couchbase Cloudincluida la migración de índices.

Personalmente, creo que el enfoque manual es igual de rápido (si no más) que el programático. El método manual de migración de índices también es una gran oportunidad para revisar los índices desplegados actualmente. Es posible que encuentre índices que ya no necesite, o que sus definiciones de índices más antiguas necesiten un ajuste para mejorar el rendimiento.

Por otro lado, la consulta y la indexación podrían ser enormes para algunas implementaciones. Es posible que haya cientos de índices que abarquen varios clústeres. El enfoque manual sería una tarea monolítica que consumiría demasiado tiempo. En este escenario, adopte definitivamente el enfoque programático.

Migración del índice de búsqueda de texto completo

Algunas de sus agrupaciones pueden tener Búsqueda de texto completo (FTS) capacidades habilitadas en el grupo de servicios.

Al igual que con las consultas, la búsqueda de texto completo requiere índices. Replicar estos índices FTS a Couchbase Cloud requiere un enfoque similar a la migración manual de índices detallada anteriormente.

Para lograr esta migración manual, toma las definiciones de índice de tu índice de búsqueda de texto completo y cópialas en tu nuevo clúster de Couchbase Cloud. Aunque se trata de un proceso manual, no debería ser una tarea demasiado complicada.

Import full-text search indexes into Couchbase Cloud

Conclusión

Esa es tu guía paso a paso para migrar a Couchbase Cloud, incluyendo usuarios, buckets, datos e índices de todo tipo. Espero que hayas encontrado esta introducción útil, y espero escribir más artículos en esta serie introductoria a Couchbase Cloud.

Ponte al día con el resto de los posts de esta serie sobre cómo empezar con Couchbase Cloud:

 

Autor

Publicado por Daniel Bull, Ingeniero de soluciones asociado

Daniel Bull es Ingeniero de Soluciones Asociado en Couchbase

Dejar una respuesta