Table of Contents | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Introducción
Onesait Platform ofrece una variedad de elementos y funcionalidades adicionales para facilitar la migración y restauración de elementos en el contexto del versionado Git. Al seguir esta guía, los equipos de desarrollo y operaciones podrán abordar la migración de manera sistemática y eficiente, minimizando el riesgo de errores y asegurando una transición exitosa hacia nuevos entornos. Permitiendo:
Mejorar la Calidad del Software: La migración en un entorno controlado garantiza una mayor calidad del software entregado, reduciendo los errores y minimizando los tiempos de inactividad.
Reducir Costos y Riesgos: Al automatizar los procesos de migración de software, Onesait Platform ayuda a reducir los costos operativos y los riesgos asociados con los despliegues manuales, al mismo tiempo que mejora la estabilidad y la fiabilidad del sistema.
...
Como primer paso ante cualquier migración entre entornos, tendremos inicialmente que definir el tipo de migración que queremos realizar, donde podremos abarcar las diferentes posibilidades:
Migración completa: la cual implica transferir todas las aplicaciones, datos y configuraciones de un entorno a otro, asegurando que el sistema funcione correctamente del mismo modo en el nuevo entorno.
Evolutivos / incrementales entre entornos: Donde trasladamos aquellos incrementales o mejoras en el software de un entorno a otro. Este tipo de migración se enfoca en implementar nuevas características, correcciones de errores o actualizaciones en un entorno, migraremos aquellos elementos e información específica requerida.
...
De manera previa, necesitaremos disponer de un repositorio GIT y enlazarlo en nuestros diferentes entornos, posibilitando esa migración e incrementales entre entornos. Para ello, nos dirigiremos a la configuración del versionado VERSION CONTROL > Configuration:
...
Introduciremos la información correspondiente a nuestro repositorio GIT y habilitando el versionado nos permitirá poder realizar restauraciones de los conceptos de plataforma de manera independiente.
...
Una vez, completada esta configuración podremos gestionar el versionado en la plataforma, facilitándonos las migraciones e incrementales entre entornos, o la restauración en un punto pasado.
Versionado Completo
Onesait Platform puede gestionar versiones completas de proyectos, lo que permite a los equipos trabajar en diferentes versiones de un proyecto simultáneamente y realizar cambios de manera controlada. Esta funcionalidad permite generar una fotografía instantánea del entorno, incluyendo todos los elementos y configuraciones relevantes. Esto proporciona una forma rápida y completa de hacer una copia de seguridad o restaurar toda la plataforma en un estado anterior.
Para ello, desde el propio controlpanel nos dirigiremos a VERSION CONTROL>create snaptshot & Git tags
...
Accederemos a un panel con todos los conceptos de plataforma seleccionados, que será todos los conceptos que se incluirán en el versionado.
...
En ese instante, se creará un commit en nuestro proyecto git (definido anteriormente) y podremos a posteriori exportarlo a otro entorno mediante el tag definido.
Versionado Selectivo
...
Del mismo modo, desde la plataforma se podrá gestionar un control de versionado de cada concepto generado, permitiendo realizar incrementales y exportar conceptos específicos entre entornos. Para ello, accedemos al mismo punto que anteriormente, version control>create snaptshot & Git tags. Donde podremos deseleccionar todos los conceptos y seleccionar solo aquellos que nos interese incluir en el versionado.
...
Info |
---|
Nota: Cuando realizamos un versionado, podemos únicamente seleccionar nuestra aplicación generada y automáticamente nos agregará todos los conceptos asociados a ella. |
...
Una vez dentro, completaremos con la información necesaria respecto a nuestro repositorio origen, donde hemos almacenado los versionados anteriores.
Dispondremos de dos opciones:
Restauración completa: enfocada para restaurar un snapshot realizado previamente. Donde al completar la información se realizará un borrado completo y se restaurará la versión seleccionada. (Ya sea un snapshot o versionado de varios conceptos de plataforma.)
Incremental: Seleccionado el checkbox de incremental, realizaremos una restauración únicamente de aquellos componentes nuevos o que se hayan modificado, facilitando la evolución entre entornos y un trabajo más ágil.
En En el portal del desarrollador podrás encontrar más información para trabajar con versionado en plataforma.
Migración de la información. (BBDD)
...
En este punto, abordaremos las mejores prácticas y consideraciones clave para llevar a cabo una migración de bases de datos exitosa dependiendo del tipo de la misma.
Desde la evaluación de requisitos y riesgos hasta la selección de herramientas adecuadas y la ejecución de pruebas exhaustivas, cada paso del proceso se abordará de manera detallada para proporcionar una guía completa y efectiva para los equipos de desarrollo y administración de bases de datos.
Migración de la base de datos MongoDB
...
Migración completa
Respaldar la base de datos en el servidor de origen:
...
Code Block | ||
---|---|---|
| ||
mongorestore --db {{ db_name }} --username {{ realtimedb_user }} --password {{ realtimedb_password }} --authenticationDatabase {{ realtimedb_authdb }} /tmp/realtimedb-dump/{{ db_name }} |
Migración selectiva.
Enfocada para la migración de tablas específicas y/o un conjunto específico de datos.
Seleccionar las tablas a migrar:
Identifica las colecciones necesarias para migrar (REVISIÓN TAG VERSIONADO GIT // versionado Mongodb)
Exportar las colecciones seleccionadas:
Utiliza la herramienta mongodump con la opción --collection para exportar solo las colecciones seleccionadas.
...
Code Block | ||
---|---|---|
| ||
mongodump --db <nombre_base_datos> --username {{ realtimedb_user }} --password {{ realtimedb_password }} --authenticationDatabase {{ realtimedb_authdb }} --collection <nombre_coleccion> --query '{"fecha": {"$gte": {"$date": "2024-01-01T00:00:00.000Z"}, "$lte": {"$date": "2024-01-31T23:59:59.999Z"}}}' --out <directorio_destino> |
...
Transferir los archivos de respaldo:
Transfiere los archivos de respaldo generados en el paso anterior al servidor de destino utilizando SCP, FTP u otro método de transferencia de archivos.
Importar las colecciones en el servidor de destino:
En el servidor de destino, utiliza la herramienta mongorestore para importar las colecciones seleccionadas a partir de los archivos de respaldo.
...
Code Block | ||
---|---|---|
| ||
mongorestore --db {{ db_name }} --username {{ realtimedb_user }} --password {{ realtimedb_password }} --authenticationDatabase {{ realtimedb_authdb }} <directorio_destino>/{{ db_name }} |
...
Migración de la base de datos MariaDB:
Migración completa
...
Respaldar la base de datos en el servidor de origen:
Utiliza el comando mysqldump para realizar una copia de seguridad completa de la base de datos.
...
Code Block | ||
---|---|---|
| ||
mysql -u usuario -p --host=servidor_destino < respaldo_completo.sql |
...
Migración selectiva
...
Seleccionar las tablas a migrar:
Identifica las tablas necesarias para migrar (REVISIÓN TAG VERSIONADO GIT)
Respaldar solo las tablas seleccionadas:
Utiliza el comando mysqldump con la opción --tables para respaldar solo las tablas seleccionadas.
...
Code Block | ||
---|---|---|
| ||
mysqldump -u usuario -p --host=servidor_origen --single-transaction --tables tabla1 tabla2 > respaldo_selectivo.sql |
Utilizar una migración con filtrado, para migrar únicamente un conjunto de datos de la tabla.
...
Code Block | ||
---|---|---|
| ||
mysql -u usuario -p --host=servidor_destino nombre_base_datos < respaldo_selectivo.sql |
...
Migración de la base de datos PostgreSQL:
Migración completa
Respaldo de la base de datos en el servidor de origen:
Utiliza el comando pg_dump para realizar una copia de seguridad completa de la base de datos.
...
Code Block |
---|
psql -U usuario -h servidor_destino -d nombre_base_datos < respaldo.sql |
Migración selectiva
...
Si deseas realizar una migración selectiva de solo algunas tablas específicas en lugar de migrar toda la base de datos, deberemos de seguir estos pasos:
...
Utilizar una migración con filtrado, para migrar únicamente un conjunto de datos de la tabla.
Code Block | ||
---|---|---|
| ||
pg_dump -h servidor_origen -U usuario -p password -d nombre_base_datos -t nombre_tabla --data-only --column-inserts --where="nombre_columna >= '2024-01-01' AND nombre_columna <= '2024-01-31'" > archivo_backup.sql |
Transferir el respaldo al servidor de destino:
Transfiere el archivo de respaldo (respaldo_selectivo.sql) al servidor de destino utilizando SCP, FTP u otro método de transferencia de archivos.
Restaurar las tablas en el servidor de destino:
En el servidor de destino, utiliza el comando psql para restaurar solo las tablas seleccionadas a partir del archivo de respaldo.
Ejemplo:
Code Block |
---|
psql -U usuario -p passwrod -h servidor_destino -d nombre_base_datos < respaldo_selectivo.sql |
...
Migración de la base de datos MinIO:
Migración completa
Elección de la Herramienta de Migración: Si disponemos de visibilidad entre entronos, podremos seleccionar una herramienta de migración que sea adecuada para las necesidades y el tamaño de los datos a migrar. Algunas opciones comunes incluyen:
MinIO Client (mc): La herramienta de línea de comandos oficial de MinIO que puede utilizarse para copiar datos entre dos instancias de MinIO.!!
rclone: Una herramienta de línea de comandos que soporta múltiples servicios de almacenamiento en la nube, incluyendo MinIO.
MinIO Data Migration Tool: Una herramienta específicamente diseñada para migrar grandes volúmenes de datos entre instancias de MinIO.
Por otro lado, si no disponemos una conexión directa entre ambos entornos, aún podemos realizar la migración de la información almacenada en MinIO utilizando algunas estrategias mediante la clonación de servidores.
Clonar los servidores de MinIO implica replicar tanto la configuración del servidor como los datos almacenados en él en otro servidor. Aquí tienes un enfoque general sobre cómo puedes hacerlo:
Copia de la Configuración del Servidor:
Antes de clonar el servidor, asegúrate de copiar la configuración de MinIO en el servidor de origen. Esto incluye archivos de configuración como config.json, que contiene información sobre los puntos de acceso, credenciales de acceso, políticas de almacenamiento, etc. Puedes encontrar este archivo en el directorio de configuración de MinIO.
Copia de los Datos:
Haz una copia de seguridad de todos los datos almacenados en el servidor de origen. Esto puede incluir el contenido de todos los buckets y cualquier otro dato almacenado en el servidor de MinIO. Puedes usar herramientas de copia de seguridad integradas en MinIO o simplemente copiar manualmente los archivos y directorios relevantes.
Configuración del Servidor de Destino:
Configura un nuevo servidor de MinIO en el servidor de destino utilizando la misma versión de MinIO que en el servidor de origen. Asegúrate de configurar la misma configuración que en el servidor de origen, incluidos los puntos de acceso, credenciales de acceso, etc. Utiliza el archivo de configuración config.json que copiaste del servidor de origen como referencia.
Restauración de los Datos: Copia los datos de respaldo que creaste del servidor de origen al servidor de destino. Esto puede implicar copiar los archivos directamente a través del sistema de archivos o utilizando herramientas de transferencia de archivos como rsync. Asegúrate de mantener la estructura de directorios y los permisos de los archivos durante la transferencia.
...
Migración incremental
{similar/completar}
Migración Reports y binary files.
Migración completa
Compresión de los Archivos:
Utiliza una herramienta de compresión como tar para comprimir los archivos y directorios que deseas migrar. Por ejemplo, para comprimir un directorio llamado informes:
...
o copiando el archivo comprimido de manera manual al nuevo entorno.
Descompresión de los Archivos:
Una vez que el archivo comprimido se haya transferido al entorno de destino, descomprímelo utilizando la herramienta tar. Por ejemplo:
...
Verificación de la Descompresión:
Verifica que los archivos se hayan descomprimido correctamente y que estén disponibles y accesibles según lo previsto en el nuevo entorno.
Migración incremental
...
Identificación de los Cambios:
Antes de cada migración, identifica los archivos que han cambiado o se han añadido desde la última migración. Puedes utilizar herramientas como rsync para comparar los archivos en el sistema de origen y el sistema de destino y determinar qué archivos necesitan ser transferidos.
Copia de Seguridad de los Cambios:
Haz una copia de seguridad de los archivos que han cambiado o se han añadido desde la última migración. Esto asegura que tengas una copia de seguridad de los datos antes de realizar la migración incremental.
Transferencia de los Cambios:
Utiliza herramientas de transferencia de archivos como rsync para transferir solo los archivos que han cambiado desde la última migración. Por ejemplo:
...
Actualización de Configuraciones y Enlaces:
Si es necesario, actualiza cualquier configuración o enlace de aplicaciones para reflejar los cambios en los archivos migrados en el sistema de destino.
Pruebas y Verificación:
Realiza pruebas adicionales para asegurarte de que los archivos se hayan transferido correctamente y que estén disponibles y accesibles según lo esperado en el nuevo entorno.
...