Por qué existen y cómo deben ser los entornos de PRE-Producción

En el mundo de la informática, se entiende 'Entorno de Producción' como aquel conjunto de servidores funcionales y totalmente operativos que ofrecen los servicios necesarios para que el usuario pueda ejercer su labor diaria.
Estas máquinas deben estar configuradas en modo de alta disponibilidad y deben gozar de restricciones y fuertes políticas de seguridad. Cualquier fallo en alguno de estos servidores es crítico, ya que paralizaría la rutina de los empleados que trabajan en ese entorno (pueden ser miles de personas!) o incluso peor, pueden provocarse pérdidas de datos sumamente importantes para la organización.

Por esta razón, cualquier desarrollo de software que se deba implantar en un entorno de producción, no puede instalarse tan alegremente sin haber pasado antes por una serie de validaciones que garantizen el éxito de la instalación. Es aquí donde aparecen los 'Entornos de PRE-Producción'. Es en este entorno donde se realizarán las instalaciones de software (ya sean evolutivos, desarrollos nuevos, parches etc.). Estos entornos no generan riesgo alguno, ya que el usuario no trabaja en ellos, 'simplemente' se utilizan a modo de prueba. Si el resultado es exitoso y el entorno sigue funcionando perfectamente con la nueva integración de software, entonces es cuando se repiten los mismos pasos en el entorno de Producción.

Si la implantación del software falla, o el entorno de PRE-Producción se vuelve inestable, debemos volver al punto de partida y buscar el error. Nunca, bajo ningún concepto se deben replicar los mismo pasos en el entorno de Producción, ya que el fracaso esta prácticamente garantizado. Teniendo en cuenta esto, se puede decir que el entorno de PRE-Producción da un acercamiento del éxito o desastre que se puede generar a partir de una mala implantación (o una buena implantación de un mal software).

Para que el entorno de PRE-Producción sea realmente útil debe cumplir un único requisito:

- El entorno de PRE-Producción debe ser idéntico al entorno de Producción.

Y cuando digo 'idéntico' me refiero a 'idéntico'. Es decir, las mismas máquinas, la misma configuración de red, la misma topología de servidores, los mismos sistemas operativos, con sus mismas versiones, las mismas CPU's, las mismas cantidades de memoria RAM, el mismo software, incluso la misma (o lo más parecida posible) información en la base de datos. TODO, y repito TODO, debe ser igual.
SI LOS ENTORNOS SON DIFERENTES, NO SE PUEDE GARANTIZAR QUE UNA IMPLANTACIÓN DE SOFTWARE EN PRODUCCIÓN SEA IGUAL DE EXITOSA QUE EN PRE-PRODUCCIÓN. Esa afirmación, creo, es bastante evidente.

Por desgracia, con lo que cuesta un entorno de Producción (granja de servidores + licencias + mantenimiento), pocas empresas se pueden permitir duplicar todos estos recursos para disponer de un entorno de PRE-Producción. Y aquí es donde aparecen las chapuzas. Es muy común encontrar entornos de PRE-Producción que se parecen a los de Producción como un huevo se parece a una castaña. La mayoría de entornos de PRE-Producción son máquinas llenas de polvo rescatadas del cajón de objetos perdidos. Máquinas que no se utilizan o tienen que ser próximamente sustituidas y bueno, "para PRE, ya sirven". Antes de empezar a hacer inventos que pueden provocar un desastre, es mejor optar por una buena práctica como por ejemplo virtualizar el entorno, de esta manera tenemos una copia exacta del entorno real de Producción. Los costes para esta solución son realmente mínimos (aun que un entorno virtualizado no garantiza tampoco el 100% de efectividad, ya que como he comentado, los dos entornos deben ser completamente iguales, y en este caso uno es 'real' y el otro es 'virtual').

En cualquier caso, si no se dispone de un entorno de PRE-Producción adecuado, es nuestra obligación informar al cliente que cualquier implantación con éxito en PRE, no garantiza para nada que vaya a ser también correcta en PRO. Es decir, si una implantación funciona en PRE y después falla en PRO, no podemos (NI DEBEMOS) hacernos responsables del desastre que se pueda ocasionar.

 

Published lunes, 29 de diciembre de 2008 16:57 por Dani PuntosNET

Comentarios

# re: Por qué existen y cómo deben ser los entornos de PRE-Producción

lunes, 19 de enero de 2009 12:16 por Daniel Mazzini

Una cosita Dani ... Una buena practica referente a esto ... Que el entorno de preproducción se elimine cada fin de semana por una nueva virtualización del entorno de producción. Alguno pensara "¿y lo que instale en pre?", pues, si, eso es un precio que debes pagar si no usas integración continua. Si usas integración continua, si tu servidor de TFS escupe un nuevo instalable o dlls cada noche no tardaras nada en volver a instalar todo en pre.

# re: Por qué existen y cómo deben ser los entornos de PRE-Producción

viernes, 23 de enero de 2009 9:01 por Dani PuntosNET

Muy buena aportación y totalmente a favor. Si se dispone de herramientas (en este caso TFS) que den soporte a una metodología correcta de trabajo,puedes darle una vuelta de tuerca a estas buenas prácticas y utilizar integración continua. El Team Foundation Server da mucho de sí,  eh? :)

Deja tu comentario

(requerido) 
(requerido) 
(opcional)
(requerido) 
Ofrecido por Community Server (Non-Commercial Edition)