Ambientes de Desarrollo

Para el desarrollo de software se necesitan distintos ambientes. Los principales ambientes son: Local, Dev, Staging y Production.

Ambiente Local

El ambiente local está configurado en la computadora personal del desarrollador. Está pensado para permitir el desarrollo del sistema utilizando un ambiente que permita total control. Lo que permite fluidez de movimiento para los desarrolladores, aumentando la agilidad y eficiencia al crear las soluciones. Normalmente está definido por uno o más archivos Dockerfile con los componentes como servidores y bases de datos similares a los usados en producción.

Actividades en ambiente local
Figure 1. Actividades en ambiente local

Ambiente Dev

El ambiente de desarrollo es un servidor disponible públicamente que es configurado con los últimos cambios disponibles en la rama asociada al Pull Request. Los servicios están configurados con la base de datos del ambiente de pruebas (staging), es una versión del ambiente de pruebas la cual tiene menor cantidad de recursos ya que está enfocada en pruebas específicas para uno o un conjunto muy limitado de desarrolladores o interesados.

Un servidor dev único es creado automáticamente en cada nuevo PR y tiene una duración máxima de 8 horas. Luego es eliminado automáticamente.

Actividades en ambiente de desarrollo
Figure 2. Actividades en ambiente de desarrollo

Ambiente Pruebas (Staging)

El ambiente staging es un ambiente para realizar pruebas por múltiples equipos. Es el que tiene más recursos que el ambiente dev, pero menos que producción. Tiene una réplica de los datos de producción periódicamente lo que permite realizar pruebas con datos lo más cercanos a producción. Se recomienda un periodo de función de 24/5. El despliegue es automático en cada commit en la rama main del repositorio principal del proyecto.

Actividades en ambiente de pruebas
Figure 3. Actividades en ambiente de pruebas

Ambiente Producción

Es el ambiente donde se ejecuta el sistema y el más critico. Todo cambio enviado debe ser aprobado y documentado por personas autorizadas y correctamente informado en los canales de comunicación oficiales. El despliegue es automatizado, pero debe ser autorizado de forma manual. Para el proceso productivo se recomienda utilizar Canary Deployments, sobre todo si son sistemas Tier 0.

Actividades en ambiente de producción
Figure 4. Actividades en ambiente de producción

Mejores prácticas

Se recomienda que el ambiente Dev y ambiente Staging sean apagados los días donde no se trabaje, permitiendo ahorrar costos de servidores.