Sé que deberíamos tener al menos 3 entornos diferentes mientras desarrollamos una solución:
- Desarrollo : los programadores son libres de cambiar e impulsar cambios en cualquier momento para probar rápidamente su código e integrarse con otros cambios, sin temor a romper nada; esto está conectado a las bases de datos y servicios de TEST;
- UAT : los desarrolladores deben tratarlo con reverencia, ya que debe contener una copia "lo mejor posible" del entorno de producción con respecto al hardware, con la diferencia de que este entorno está conectado a las bases de datos de UAT con una copia editable de los datos de producción. es utilizado tanto por el equipo de preguntas y respuestas como por los usuarios para validar los cambios que irán a producción
- Producción : el verdadero negocio.
He examinado esta pregunta en SoftwareEngineering y esta pregunta en ServerFault , y parecen diferir en lo que significa el entorno de ensayo. Además, la página de Wikipedia sobre el tema establece que:
El uso principal de un entorno de ensayo es probar todos los scripts y procedimientos de instalación / configuración / migración, antes de que se apliquen al entorno de producción. Esto asegura que todas las actualizaciones mayores y menores al entorno de producción se completarán de manera confiable y sin errores, en un tiempo mínimo.
Para mí, Staging es igual a UAT, donde debes probar los procedimientos de aplicación e implementación antes de pasar al mundo real. Entonces, empujamos el paquete con los cambios a UAT de la misma manera que empujamos a la producción, totalmente automatizado y con toda la ceremonia que deberíamos tener con el entorno de producción.
Dicho esto, ¿cuál es la diferencia adecuada entre un entorno UAT y un entorno de ensayo?
-
EDITAR: Para ser claros, estoy pensando en términos de una aplicación web, ya sea un sitio web de Internet o un sitio web de intranet. No hay aplicaciones "formularios" o aplicaciones móviles.