Saltar al contenido principal

Despliegues

Los despliegues alojan tu servidor Odoo con los últimos cambios de código de tu repositorio. Aprende a crear, actualizar y gestionar despliegues en Skysize.

¿Qué es un despliegue?

Un despliegue es una instancia en ejecución de tu aplicación Odoo. Cada despliegue:

  • Ejecuta tu último código desde una rama específica
  • Tiene su propia base de datos
  • Opera en un entorno aislado
  • Puede configurarse y gestionarse de forma independiente

Acciones de despliegue

Cada rama tiene un ajuste Acción al actualizar código (en la Configuración principal de la rama) que controla qué hace Skysize cuando haces push de código. Hay tres opciones:

Nuevo build

Crea un despliegue completamente nuevo con su propia base de datos.

Cuándo usarlo:

  • Primer despliegue de una nueva rama
  • Empezar un nuevo entorno desde cero
  • Crear una instancia nueva para pruebas

Qué ocurre:

  • Se crea una nueva base de datos
  • La aplicación se despliega con el último código
  • Solo se instala el módulo base (sin instalación automática de módulos personalizados)
  • Se configura el entorno
  • Se asigna una nueva URL

Nota: Los despliegues nuevos requieren que instales manualmente los módulos personalizados que necesites. Esto te da control total sobre qué módulos están activos en tu nuevo entorno.

Actualizar build

Actualiza el despliegue existente con tus nuevos cambios de código.

Cuándo usarlo:

  • Desplegar cambios de código a un entorno existente
  • Aplicar correcciones de errores
  • Lanzar nuevas funcionalidades
  • Actualizar dependencias

Qué ocurre:

  • La base de datos existente se conserva
  • El código se actualiza a la última versión
  • Todos los módulos de Odoo instalados actualmente se actualizan automáticamente
  • La aplicación se reinicia con el nuevo código

Nota: Los despliegues de actualización solo actualizan los módulos que ya están instalados en tu base de datos. Los nuevos módulos añadidos a tu código no se instalarán automáticamente; debes instalarlos manualmente a través de la interfaz o la base de datos de Odoo.

No hacer nada

No ocurre ningún despliegue; Skysize no crea ni actualiza nada.

Cuándo usarlo:

  • Cambios que no requieren despliegue
  • Actualizaciones de documentación
  • Solo cambios de configuración
  • Cuando quieres controlar los despliegues manualmente

Gestión de despliegues por tipo de rama

Producción y Staging

  • Nunca se eliminan automáticamente
  • Los despliegues se mantienen en ejecución continuamente
  • Las actualizaciones se aplican al despliegue existente

Desarrollo

  • Recolección automática de basura tras 24 horas
  • Eficiente en costes para pruebas temporales
  • Redespliega si necesitas el entorno de nuevo
  • Ayuda a gestionar el uso de recursos

Ciclo de vida del despliegue

1. Disparador

Los despliegues pueden iniciarse por:

  • Hacer push de código a tu repositorio
  • Despliegue manual a través del panel de Skysize
  • Creación o actualización de ramas

2. Build

Skysize construye tu aplicación:

  • Obtiene el último código del repositorio
  • Inicializa y actualiza automáticamente los submódulos de Git (si existen)
  • Instala dependencias
  • Prepara el entorno de Odoo
  • Configura los workers y los recursos

3. Despliegue

Tu aplicación entra en funcionamiento:

  • La base de datos se crea o actualiza
  • El servidor Odoo se inicia
  • Las comprobaciones de salud confirman el éxito del despliegue
  • La URL se vuelve accesible

4. Monitorización

Sigue el estado de tu despliegue:

  • Ve el estado del despliegue en el panel
  • Monitoriza los logs de la aplicación
  • Comprueba el uso de recursos
  • Recibe notificaciones sobre problemas

Ver los logs

Para ver los logs de despliegue:

  1. Navega a tu despliegue en el panel de Skysize
  2. Haz clic en Ver logs en el despliegue (o abre su página de detalle y selecciona la pestaña Logs)
  3. Usa el selector de Archivo de log y los filtros de fecha para ver la salida y los errores de la aplicación

Retención de logs: Los logs de build y de despliegue se conservan de forma duradera, por lo que permanecen disponibles incluso después de que se elimine un contenedor o se descarte un despliegue. Se conservan durante 30 días de forma predeterminada (configurable por proyecto) y luego se eliminan automáticamente. Los datos en vivo del despliegue, como las métricas, se conservan durante 30 días.

Gestionar despliegues

Crear un nuevo despliegue

  1. Haz push de código a una nueva rama en tu repositorio
  2. Skysize detecta la nueva rama
  3. Establece la Acción al actualizar código de la rama en Nuevo build
  4. Espera a que se completen el build y el despliegue
  5. Accede a tu aplicación en la URL asignada

Actualizar un despliegue existente

  1. Haz push de cambios a una rama existente
  2. Skysize detecta los cambios
  3. Establece la Acción al actualizar código de la rama en Actualizar build
  4. El despliegue existente se actualiza con el nuevo código
  5. La aplicación se reinicia con los cambios

Reconstruir un despliegue

Reconstruir crea un despliegue completamente nuevo para una rama, reemplazando el anterior.

Qué ocurre:

  • Siempre se crea un nuevo despliegue con una base de datos nueva
  • Para ramas de staging: Crea una nueva instantánea de la base de datos de producción
  • Para ramas de development: Crea una nueva base de datos con datos de demostración
  • Los builds anteriores de esa rama pasan a ser elegibles para la recolección automática de basura
  • El despliegue antiguo se marca para limpieza y sus recursos se liberarán

Cuándo usarlo:

  • Cuando necesitas una instantánea nueva de la base de datos de producción (staging)
  • Cuando quieres empezar de cero con datos de demostración limpios (development)
  • Tras cambios significativos en el esquema de la base de datos
  • Al resolver problemas persistentes de la base de datos
  • Para forzar una actualización completa de tu entorno

Notas importantes:

  • Las reconstrucciones de producción están restringidas: Para los despliegues de producción en ejecución, la acción de reconstrucción está desactivada para evitar la pérdida accidental de datos
  • Los despliegues de producción solo pueden reconstruirse si no están en ejecución actualmente
  • Reconstruir es una operación destructiva; la base de datos del despliegue anterior se perderá
  • Cualquier dato o cambio sin confirmar en el despliegue antiguo se eliminará de forma permanente

Cómo reconstruir:

  1. Navega a tu despliegue en el panel de Skysize
  2. Haz clic en el menú "Gestionar despliegue"
  3. Selecciona la opción "Reintentar despliegue" o "Reconstruir"
  4. Espera a que se complete el nuevo despliegue
  5. El despliegue antiguo se limpiará automáticamente

Eliminar un despliegue

Los administradores pueden eliminar despliegues que ya no sean necesarios:

  • Elimina la instancia de despliegue de forma permanente
  • Todos los datos del despliegue se eliminan
  • Los recursos se liberan
  • La URL queda inactiva

Notas importantes:

  • Se requiere confirmación: Aparecerá un cuadro de confirmación antes de la eliminación
  • Advertencia de producción: Para los despliegues de producción, verás una advertencia destacada de que esta acción no se puede revertir
  • Acción irreversible: Los despliegues eliminados y sus bases de datos no pueden recuperarse
  • Solo administradores: Solo los usuarios con acceso de administrador pueden eliminar despliegues

Cómo eliminar:

  1. Navega a tu despliegue en el panel de Skysize
  2. Haz clic en el menú "Gestionar despliegue" (tres puntos)
  3. Selecciona "Eliminar despliegue"
  4. Revisa el cuadro de confirmación (los despliegues de producción muestran advertencias adicionales)
  5. Confirma la eliminación para retirar el despliegue de forma permanente

Buenas prácticas

Para producción

  • Prueba antes de desplegar: Prueba siempre los cambios primero en staging
  • Despliega durante tráfico bajo: Programa las actualizaciones de producción en horas de baja actividad
  • Monitoriza tras el despliegue: Vigila los errores o problemas tras las actualizaciones
  • Ten un plan de reversión: Sabe cómo revertir si algo sale mal
  • Evita reconstruir producción en ejecución: La reconstrucción está desactivada para los despliegues de producción en ejecución para evitar la pérdida de datos
  • Ten cuidado con la eliminación: Las eliminaciones de producción muestran advertencias adicionales; esta acción es permanente y no se puede deshacer

Para staging

  • Mantén staging actualizado: Actualiza staging con regularidad para que coincida con producción
  • Usa instantáneas de datos de producción: Prueba con datos realistas reconstruyendo staging para obtener instantáneas nuevas de la base de datos de producción
  • Reconstruye con regularidad: Reconstruye periódicamente los despliegues de staging para asegurarte de que pruebas con datos de producción actuales
  • Prueba a fondo: Ejecuta suites de pruebas completas antes de promover a producción

Para development

  • Limpia con regularidad: Elimina las ramas de development que no uses
  • Usa ramas de vida corta: Aprovecha la limpieza automática tras 24 horas
  • Prueba pronto y a menudo: Despliega con frecuencia para detectar problemas pronto
  • Reconstruye para empezar de cero: Usa la reconstrucción para obtener una base de datos limpia con datos de demostración al probar desde cero

Resolución de problemas

El despliegue falla

Si un despliegue falla:

  1. Revisa los logs de despliegue en el panel de Skysize
  2. Verifica que tu código compila correctamente en local
  3. Asegúrate de que todas las dependencias están especificadas correctamente
  4. Comprueba si hay errores en los módulos de Odoo
  5. Contacta con soporte si los problemas persisten

La aplicación no es accesible

Si no puedes acceder a tu aplicación desplegada:

  1. Verifica que el estado del despliegue sea "En ejecución"
  2. Comprueba que la URL sea correcta
  3. Asegúrate de que el DNS se haya propagado (para dominios personalizados)
  4. Comprueba la configuración del cortafuegos
  5. Revisa los logs de la aplicación en busca de errores

Soporte para submódulos de Git

Skysize admite automáticamente submódulos de Git públicos en tu repositorio. Esto te permite:

  • Incluir módulos Odoo de terceros como submódulos
  • Referenciar bibliotecas y dependencias externas
  • Mantener tu código modular y organizado

Cómo funciona

Cuando despliegas tu código:

  1. Skysize clona tu repositorio con la opción --recurse-submodules
  2. Todos los submódulos de Git públicos se inicializan y actualizan automáticamente
  3. El código de los submódulos está disponible en tu despliegue junto con tu código principal

Requisitos

  • Solo repositorios públicos: Los submódulos deben ser accesibles públicamente
  • Submódulos de Git estándar: Usa el archivo .gitmodules en la raíz de tu repositorio
  • Sin autenticación requerida: Los submódulos privados no están soportados actualmente

Ejemplo de caso de uso

Añade un módulo Odoo externo como submódulo:

git submodule add https://github.com/OCA/web.git addons/web
git commit -m "Add web module as submodule"
git push

En el siguiente despliegue, Skysize obtendrá automáticamente el código del submódulo.

Configuración de despliegues

Cómo se detectan tus módulos

Tu repositorio se monta dentro del despliegue, y Skysize detecta automáticamente cada módulo de Odoo que contiene, es decir, cualquier directorio que tenga un archivo __manifest__.py. No necesitas configurar nada para que se encuentren los módulos en el nivel superior de tu repositorio.

Los módulos detectados quedan disponibles en tu instancia de Odoo. No se instalan automáticamente; instalas los que necesites desde el menú Apps de Odoo (consulta los tipos de ramas y las acciones de despliegue anteriores para saber cómo difiere la instalación entre despliegues nuevos y de actualización).

Ruta de addons personalizados

Si tu repositorio organiza los módulos en subdirectorios (en lugar de en la raíz), puedes configurar una ruta de addons personalizados por rama para indicarle a Odoo exactamente dónde buscar.

Cómo configurar:

  • Define la ruta de addons en la configuración de despliegue de la rama.
  • Especifica uno o más directorios, separados por comas.
  • Apunta a los subdirectorios dentro de tu repositorio que contienen tus módulos.

Notas importantes:

  • Una ruta de addons personalizados hace que los módulos estén disponibles pero no los instala; instálalos desde la interfaz de Apps de Odoo.
  • Los despliegues de actualización solo actualizan los módulos que ya están instalados; los nuevos módulos deben instalarse manualmente.

Ejemplos de casos de uso:

  • Separar los módulos de OCA (Odoo Community Association) de tus propios módulos personalizados.
  • Organizar los módulos por funcionalidad o por equipo.
  • Incluir módulos obtenidos mediante submódulos de Git que residen en sus propios directorios.
nota

Los módulos de Odoo Enterprise los proporciona la plataforma cuando tu proyecto es un proyecto Enterprise; no necesitas añadirlos a tu ruta de addons ni incluirlos en tu repositorio.

Configuración de workers

Los administradores pueden configurar el número de workers de Odoo:

  • Más workers: Mejor rendimiento para alta concurrencia
  • Menos workers: Menor uso de recursos y costes
  • Ajusta según tus patrones de tráfico

Asignación de recursos

Los recursos se asignan en función de:

  • El tipo de rama (production, staging, development)
  • El número de workers configurados
  • Tu plan de facturación
  • El nivel de descuento comprometido