Tipos de ramas
Skysize admite tres tipos de ramas para adaptarse a las diferentes etapas de tu flujo de desarrollo: production, staging y development.
En un proyecto sin repositorio, los entornos no están ligados a ramas de Git: producción es un único entorno llamado main, los entornos de staging se crean desde la pestaña Ramas con Nuevo staging, y los entornos de desarrollo no están disponibles (solo sirven para probar cambios de código).
Ramas de production
Las ramas de production alojan tu aplicación en vivo con datos reales de usuarios.
Características
- Base de datos principal: Contiene tus datos de producción
- Copias de seguridad diarias automáticas: Los despliegues de producción se respaldan automáticamente con una programación continua de 24 horas (consulta Copias de seguridad)
- Siempre activa: Los despliegues de producción se mantienen en ejecución continuamente y nunca se eliminan por recolección de basura
- Una por proyecto: Cada proyecto puede tener una única rama de production
- Entorno estable: Diseñado para fiabilidad y disponibilidad
Dominio predeterminado
Las ramas de production utilizan el siguiente patrón de dominio:
project-name.skysize.io
Ramas de staging
Las ramas de staging proporcionan un entorno de pruebas que refleja la producción.
Características
- Bases de datos de prueba: Creadas a partir de una instantánea de tu base de datos de producción para pruebas realistas
- Siempre activa: Los despliegues de staging se mantienen en ejecución continuamente y nunca se eliminan por recolección de basura
- Requiere production: Una rama de staging solo puede existir junto a una rama de production
- Sin repositorio necesario: En proyectos sin repositorio, crea uno con Nuevo staging en la pestaña Ramas
- Pruebas previas a producción: Prueba los cambios antes de desplegar a producción
- Paridad con producción: Configuración similar a tu entorno de producción
Dominio predeterminado
Las ramas de staging utilizan el siguiente patrón de dominio:
build_name.staging.skysize.io
Casos de uso
- Probar nuevas funcionalidades con datos similares a los de producción
- Control de calidad y pruebas de aceptación de usuario
- Pruebas de integración
- Validación previa al lanzamiento
Ramas de development
Las ramas de development están diseñadas para el desarrollo activo y la experimentación.
Características
- Datos de demostración: Creadas con datos de demostración de Odoo en lugar de datos de producción, para que puedas experimentar libremente
- Recolección automática de basura: La base de datos del despliegue se descarta aproximadamente 24 horas después del build, liberando recursos automáticamente
- Efímeras: Pensadas para uso a corto plazo
- Eficiencia de costes: Ahorra recursos limpiando entornos no utilizados
Dominio predeterminado
Las ramas de development utilizan el siguiente patrón de dominio:
build_name.dev.skysize.io
Casos de uso
- Desarrollo de funcionalidades
- Corrección de errores
- Cambios experimentales
- Pruebas de desarrolladores
Los despliegues de development son desechables. Aproximadamente 24 horas después de un build, la base de datos se descarta. Si vuelves a hacer push a la misma rama más tarde, Skysize construye un despliegue nuevo con una base de datos nueva; no restaura los datos antiguos. Nunca guardes nada que necesites conservar en un despliegue de development; usa staging o production para los datos persistentes.
Elegir el tipo de rama correcto
| Requisito | Producción | Staging | Desarrollo |
|---|---|---|---|
| Datos reales de usuarios | ✅ | ❌ | ❌ |
| Instantáneas de datos de producción | ❌ | ✅ | ❌ |
| Entorno persistente | ✅ | ✅ | ❌ (24 horas) |
| Copias de seguridad diarias | ✅ | ❌ | ❌ |
| Optimización de costes | ❌ | Media | ✅ |
Buenas prácticas
- Usa staging para pruebas previas al lanzamiento: Prueba siempre los cambios en staging antes de desplegar a producción
- Mantén activas las ramas de development: Las ramas de development se eliminan automáticamente tras 24 horas, así que redespliega si las necesitas
- Separa las responsabilidades: Usa production para los datos en vivo, staging para las pruebas y development para construir funcionalidades