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.
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.
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.
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.