Entorno de ensayo vs entorno de producción

80

Yo trabajo para una empresa en la que construimos aplicaciones empresariales, y mantenemos tres entornos: desarrollo (o dev ), puesta en escena (o fase ) y la producción (o prod ).

El significado de dev es intuitivo: es el entorno utilizado durante el desarrollo de la aplicación.

¿Cuál es la diferencia entre los escenarios y los entornos de producción ?

rdasxy
fuente

Respuestas:

122

Para las empresas más pequeñas (no está claro qué tan grande es el suyo), son comunes tres entornos (desarrollo, escenario, producción). Las empresas más grandes a menudo tendrán un entorno de control de calidad entre el desarrollador y el escenario.

Estos normalmente se descomponen de la siguiente manera:

dev : copia del código de trabajo. Los cambios realizados por los desarrolladores se implementan aquí para que se pueda probar la integración y las características. Este entorno se actualiza rápidamente y contiene la versión más reciente de la aplicación.

qa : (No todas las empresas tendrán esto). Entorno para el aseguramiento de la calidad; Esto proporciona una versión de la aplicación que cambia con menos frecuencia y que los evaluadores pueden realizar comprobaciones. Esto permite informar sobre una revisión común para que los desarrolladores sepan si los problemas particulares encontrados por los probadores ya se han corregido en el código de desarrollo.

puesta en escena : esta es la versión candidata, y este entorno normalmente es un espejo del entorno de producción. El área de preparación contiene la "próxima" versión de la aplicación y se usa para las pruebas finales de estrés y las aprobaciones de clientes / gerentes antes de su lanzamiento.

producción : Esta es la versión de la aplicación actualmente lanzada, accesible para el cliente / usuarios finales. Esta versión preferiblemente no cambia, excepto durante las versiones programadas.

Miguel
fuente
77
Esto es correcto en términos del software. También están los datos: dev y qa están conectados a bases de datos de prueba para que los desarrolladores y probadores no tengan que preocuparse por introducir cambios, mientras que las etapas y la producción usan bases de datos de producción. Piensa en un banco.
Juan Lanus
44
Hay otra dimensión: ¿quiénes son los usuarios? dev: los desarrolladores; qa (prefiero qc): los probadores; puesta en escena y producción: usuarios reales. En las aplicaciones comerciales con bases de datos malas, los desarrolladores no pueden ver ni mucho menos tocar bases de datos de producción, sino que están provistos de versiones anónimas.
Juan Lanus
3
@JuanLanus: por lo general, el entorno de preparación utilizará una copia de los datos de producción; por lo general, no desea cambiar los datos de producción de la preparación.
sleske
1
@JuanLanus: Lo siento, quise decir "no desea que las ediciones en el entorno de preparación sean visibles en el entorno de producción"; por lo tanto, la preparación utiliza una copia de los datos de producción, pero (generalmente) una copia editable.
sleske
2
Llamamos qa 'prueba': dev (yo), prueba (equipo), puesta en escena (cliente), producción (mundo)
Rudie
13

Estoy un poco sorprendido de que un entorno de prueba no esté presente también, como una ubicación para ir al código antes de ser promovido a la puesta en escena.

Para responder la pregunta:

Un entorno de escenario debe reflejar el entorno de producción lo más cerca posible.

Se utiliza para verificar los procedimientos de implementación, asegurándose de que cuando el código esté listo para la producción se pueda implementar sin causar problemas.

Es decir, el código pasa a la puesta en escena: esto se prueba y regresa exhaustivamente para garantizar que la implementación se realizó según lo planeado (y para resolver cualquier problema si no fuera así).

Oded
fuente
1
Exactamente: existe para sacar el código del entorno de desarrollo en un entorno más controlado, entre otras cosas, mostrando las dependencias perdidas en la documentación y cualquier vergüenza de 'bien funcionó en nuestra máquina' en el entorno en vivo / prod.
Danny Staple, el
Sin embargo, esto no tiene nada que ver con la pregunta ...
nbro
4

El entorno de escenario es un entorno de preprod que refleja la producción. A menudo, puede tener algunos datos de producción para que un grupo de prueba compuesto por usuarios reales y probadores de control de calidad pueda confirmar que la base / datos de código prelanzados se desplegarán y funcionarán correctamente en un entorno similar a un producto, generalmente a través de casos de uso con guión y regresión pruebas

Como notas @Oded, generalmente es común tener un entorno de control de calidad que los probadores de control de calidad utilizan para probar el código.

JW8
fuente
3

Mi experiencia con el Gobierno de EE. UU. / Departamento de Defensa de TI es que:

  1. DESARROLLO / PRUEBA es para desarrolladores y desarrolladores de aplicaciones. Construyen y prueban aplicaciones lejos de los sistemas empresariales.
  2. Cuando se completen las aplicaciones, se implementarán en el entorno de TI en los servidores de EMBALAJE.
  3. A partir de ese momento, las aplicaciones son compatibles con TI, migradas a STAGING (que le permite a TI desarrollar / verificar pautas de implementación, configuraciones, etc.). Las pruebas de usuario pueden ocurrir en esta etapa hasta cierto punto para verificar que la aplicación funcionará como se espera en un sistema que replica PRODUCCIÓN.
  4. Si se completan todos los planes de prueba y están listos para comenzar, la aplicación pasará a PRODUCCIÓN y pasará al modo de mantenimiento (es decir, operaciones y mantenimiento u O&M).
  5. Las nuevas actualizaciones de los desarrolladores también se implementarán en PACKAGING y el proceso continúa.
Cmac
fuente
2
Bienvenido a programadores. Nuestro sitio se centra en preguntas y respuestas de alta calidad. No es como los foros típicos. Consulte el centro de ayuda para obtener más información. No veo cómo su respuesta aborda los puntos que otras respuestas a esta pregunta aún no han hecho.
2

Como desarrollador web, hay principalmente tres entornos a considerar prácticamente :

Producción : el entorno configurado para alojar la versión de lanzamiento final de un producto dirigido a usuarios finales. Está optimizado para seguridad y rendimiento. Está alojado en un servidor en vivo. Requiere asistencia alertada y urgente. Es crítico para los datos. Por lo tanto, sus datos se respaldan regularmente. También implica la gestión de riesgos y la recuperación ante desastres. El entorno de producción está configurado para mostrar errores amigables a los usuarios finales.

Puesta en escena : el entorno configurado para alojar el candidato de versión de la aplicación después de declarar un congelamiento de código. Se dirige al gerente / propietario del proyecto junto con el equipo de desarrollo para acordar el alcance del candidato de lanzamiento. Implica el aseguramiento de la calidad y también el equipo de desarrollo para hacer las correcciones finales y el equipamiento final antes de lanzarlo a producción. La mejor práctica es imitar el entorno de producción utilizando los últimos datos disponibles de una base de datos en vivo copiada del entorno de producción. Normalmente, el entorno interno solo es accesible para el equipo interno y las partes interesadas, por lo tanto, está protegido en un servidor público o publicado en un entorno de intranet si todas las partes interesadas pueden acceder a una red local. El entorno de preparación está configurado para mostrar errores técnicos medios o completos.

Desarrollo : El entorno privado configurado por un único desarrollador en su máquina para verificar su propio trabajo durante un ciclo de desarrollo, normalmente, llamado sprint en un entorno scrum. El entorno de desarrollo está configurado para mostrar errores técnicos completos.

Shadi Namrouti
fuente