Saltar al contenido

Mover un proyecto ​

Traslada un proyecto desplegado, con sus datos, a otro servidor del mismo equipo: a un servidor más grande, a otra región o para retirar una máquina antigua. El proyecto conserva su ID, sus ajustes, sus dominios y su historial.

No se borra nada del servidor antiguo hasta que confirmes que el proyecto funciona en el nuevo.

Antes de empezar ​

  • Necesitas el rol admin u owner en el equipo, y escribir el nombre del proyecto para confirmar.
  • El proyecto debe estar desplegado. Un proyecto sin desplegar no tiene datos que copiar; clónalo en otro servidor en su lugar.
  • El servidor nuevo debe estar listo, y el antiguo accesible, porque los datos se copian desde él.
  • El proyecto no está disponible mientras se traslada: sus servicios se detienen para que la copia sea coherente. Planifica el traslado para un momento tranquilo. Tarda más o menos lo mismo que hacer una copia de seguridad de todos sus datos y restaurarla.

Iniciar un traslado ​

  1. Abre los Settings del proyecto → General → Move to another server.
  2. Elige el servidor nuevo. Zenavo lo comprueba y muestra:
    • si el servidor está listo, si el equipo está dentro de su plan y si el servidor tiene suficiente memoria libre (según el límite de memoria de cada servicio, o su uso reciente);
    • los conflictos de dominios y de puertos TCP/UDP publicados con otros proyectos de ese servidor;
    • los datos que se van a copiar;
    • los dominios generados que cambian automáticamente, y los registros DNS que debes cambiar para los dominios propios.
  3. Escribe el nombre del proyecto y haz clic en Move.

El traslado se ejecuta como una tarea. Su página muestra cada paso y el registro.

Qué ocurre ​

PasoQué hace Zenavo
Comprobar el servidor nuevoConfirma que está listo y que tiene espacio. Todavía no ha cambiado nada.
Detener las escriturasDetiene los servicios de la aplicación en el servidor antiguo.
CopiarVuelca las bases de datos PostgreSQL y MySQL que no tienen volumen, luego las detiene y copia cada volumen como archivo .tar. Se registra el SHA-256 de cada archivo.
DesplegarDespliega las mismas imágenes y configuración en el servidor nuevo con todos los servicios detenidos. Los comandos de inicialización no se ejecutan: los datos vienen del servidor antiguo. También se copian los certificados TLS, así que el HTTPS funciona en cuanto llega el tráfico.
RestaurarRestaura cada volumen en su volumen nuevo y vacío, y luego arranca las bases de datos que necesitan un volcado y lo restaura.
ArrancarArranca los servicios en orden de dependencias, con el número de instancias que tenían, y espera a sus comprobaciones de salud.
CambiarApunta cada dominio generado a la dirección del servidor nuevo y lo convierte en el servidor del proyecto.

Los servicios que estaban suspendidos o detenidos antes del traslado siguen detenidos en el servidor nuevo.

Si algo falla ​

Si falla algún paso antes del cambio, Zenavo deshace el traslado: los servicios vuelven a arrancar en el servidor antiguo exactamente como estaban, se elimina la copia del servidor nuevo y la tarea falla con el motivo. Un traslado nunca cambia tus datos del servidor antiguo.

Si deshacerlo también falla (por ejemplo, porque el servidor antiguo dejó de estar accesible), el traslado queda abierto y muestra el motivo. Haz clic en Roll back para reintentarlo cuando se resuelva el problema. La copia del servidor nuevo solo se elimina cuando el servidor antiguo vuelve a funcionar.

Después del cambio ​

El proyecto se ejecuta ahora en el servidor nuevo. Su copia detenida, con todos sus datos, se queda en el servidor antiguo. Mientras el traslado te espera:

  • Dominios propios: cambia sus registros DNS a la dirección del servidor nuevo. La página del traslado muestra el registro exacto (tipo A o AAAA y la dirección) para cada dominio. Hasta que lo hagas, esos dominios siguen llegando al servidor antiguo, que está detenido.
  • Comprueba la aplicación en el servidor nuevo: inicio de sesión, workers en segundo plano, correo, webhooks y cualquier otra cosa de la que dependa.
  • Los despliegues y otras operaciones del proyecto están en pausa, para que el traslado se pueda deshacer con exactitud.

Después, elige una opción:

  • Finish move elimina la copia detenida y sus volúmenes del servidor antiguo, y los archivos de transferencia del traslado de Zenavo. A partir de ahí el proyecto no se puede revertir al servidor antiguo.
  • Roll back detiene la copia del servidor nuevo, vuelve a apuntar los dominios generados, arranca los servicios en el servidor antiguo con los datos que tenían al empezar el traslado y elimina la copia nueva. Los cambios hechos en el servidor nuevo desde el cambio no se copian de vuelta. Vuelve a apuntar también los dominios propios si los cambiaste.

Conviene saber ​

  • Los registros de los dominios generados se cambian añadiendo primero uno nuevo y quitando después el antiguo, así que el nombre siempre resuelve. Los resolvedores pueden conservar la dirección antigua hasta cinco minutos.
  • Los datos que un servicio guarda fuera de un volumen (en su contenedor) no se copian: se pierden en cualquier reinicio de todos modos. Añade un volumen para los datos que necesites.
  • Los archivos de transferencia son del mismo tipo que las copias de seguridad y aparecen entre las copias del proyecto hasta que el traslado se termina o se revierte.
  • No se puede trasladar a un servidor de otro equipo. Clona el proyecto en el otro equipo y restaura allí una copia de seguridad.
  • Cada traslado, finalización y reversión queda en el registro de auditoría del equipo.

API ​

MétodoRuta
GET/api/projects/{pid}/moveEl último traslado: estado, servidores, datos, dominios, can_finish y can_roll_back
GET/api/projects/{pid}/move/preflight?server_id=Comprobar un traslado sin cambiar nada (administradores)
POST/api/projects/{pid}/moveIniciar: {server_id, confirmation: "<project name>"} (devuelve una tarea)
POST/api/projects/{pid}/move/finishEliminar la copia detenida del servidor antiguo (devuelve una tarea)
POST/api/projects/{pid}/move/rollbackVolver al servidor antiguo (devuelve una tarea)

Sin relación con Zeabur.