Entornos, una herramienta clave para cambiar sitios web sin errores
Al realizar modificaciones a un sitio web, hay que asegurarse de que los cambios realizados no lo afecten negativamente. Por más que se trabaje con calidad y eficiencia, en ocasiones los accidentes ocurren y los sitios se “rompen” o se bloquean. Para evitar esto es necesario contar con un entorno seguro que permita probar todos los cambios realizados antes de publicarlo en línea.
Un entorno de desarrollo es un espacio de trabajo que permite a los desarrolladores crear una web o realizar cambios en ella sin afectar a la versión real del producto de software. Estos cambios pueden incluir el mantenimiento, la depuración y la aplicación de parches.
Un entorno es, al mismo tiempo, una instancia de ejecución de una página web en distintos ámbitos. Uno puede ejecutar una página web en su máquina local. En ese caso sería el único que la puede ver. A esto es a lo que llamamos un entorno de ejecución local.
A su vez, uno puede tener un entorno privado para, por ejemplo, un grupo de desarrollo web. En este otro caso se lo denomina entorno de desarrollo.
Pero también se puede tener un entorno más cercano a lo que es la producción. A este lo denominamos staging. Se trata del entorno que utiliza el cliente para ver qué es lo que sale de producción y poder verificar así el producto.
Un staging de WordPress es entonces un duplicado de un sitio web en vivo que no está abierto al público ni es rastreado por los motores de búsqueda. Es un entorno que permite probar cualquier cambio que se planee implementar en un sitio web de WordPress, como actualizar temas o rehacer completamente el sitio web, sin dañar el sitio principal de producción.
Pero ojo. Un entorno de staging es diferente a un entorno de prueba. El entorno de prueba ayuda a garantizar que cada componente hace su trabajo por sí mismo. Mientras que el entorno de staging sirve para comprobar que cada componente sigue funcionando con todo lo que sucede a su alrededor.
Es en los distintos entornos donde se ejecutan algunas instancias de control de cambios. Por ejemplo, en el entorno local se ejecutan los test locales. El desarrollador testea el producto antes de subir algo que luego puede no funcionar. Ahora bien, si se lo sube a un entorno de desarrollo, se ejecutarán una serie de test a nivel empresarial. Y en el staging, el cliente podrá realizar sus validaciones antes de que el desarrollador lo pase a producción. Así se evitan los errores.
Tomar buenas decisiones
La decisión de qué tipo de entorno es el que se precisa para cada ocasión dependerá del tamaño del proyecto a ejecutar.
Lo que se recomienda siempre utilizar al menos el entorno local. Si un desarrollador no lo utiliza y desarrolla directamente en producción no es recomendable. El error quedará a la vista.
El programador debe tener siempre la capacidad de desarrollar de forma local y poder desplegar la página web completa de forma local, con el servidor de base de datos, el de contenidos y todo lo que se precise. De manera que pueda reproducir la página web de forma local para poder verificarla antes de subir todo a producción. Así las cosas, el entorno local es una condición sine qua non para un buen desarrollador.
En nuestra empresa nos ha pasado el hecho de trabajar sobre productos cuyos anteriores desarrolladores habían puesto sus manos de forma directa realizando cambios sobre el servidor de producción, con los consecuentes errores a la vista. Es decir que trabajaron sin red y los errores quedaron expuestos de forma automática.
Por ello en nuestra empresa tenemos la visión de que un entorno local es absolutamente necesario. Lo mismo ocurre con el entorno de producción. Para un proyecto de pequeña escala, el local y el de producción son los dos entornos mínimos a tener en cuenta.
Grandes proyectos
En el caso de un proyecto más grande, o cuando la potencial exposición de un error a la vista le puede llegar a ocasionar al cliente grandes perjuicios, afecte la imagen de su empresa o le traiga inconvenientes económicos, será necesario contar con el entorno de staging. Éste le permite al desarrollador desplegar los cambios para compartirselos luego al cliente y que sea éste quien también los verifique y los apruebe antes de pasarlos a producción. Por todo esto, consideramos que para un proyecto mediano el staging se torna necesario.
Si se trata de un proyecto aún más grande y, consecuentemente, el grupo de desarrollo es también más grande, incluyendo a diseñadores u otros profesionales, se precisará un cuarto entorno, que es el de desarrollo propiamente dicho.
De esta forma, la evolución natural del código va desde el entorno local al de desarrollo -del equipo de trabajo-, luego al entorno de staging -que incluye al cliente- y a producción. Estos son los pasos lógicos que se deben dar para que un cambio determinado en el producto web termine bien reflejado en el entorno de producción.
Tener en claro que son y para qué sirven cada uno de los entornos permite a los clientes tomar mejores decisiones a la hora de contratar un servicio, conociendo en qué entornos se ejecutan instancias de control. Porque muchas veces ocurre que por desconocimiento se terminan contratando dos servicios distintos, se pierde eficiencia y se destina una mayor inversión innecesaria. Y lo peor de todo es que los errores quedan expuestos.