miércoles, 19 de octubre de 2011

Infraestructura con GIT y varios entornos

De la creación a la actualidad.

En la primera iteración, dios creó la programación y el primer programador programaba "a pelo" contra el entorno de producción.
Todo funcionaba bien, hasta que un lunes, después de tener a nuestro programador trabajando dos días seguidos sin descanso, los usuarios vieron les cambios y le pidieron que los deshiciera. El pobre programador no sabía que hacer, porqué no recordaba que "coño" había tocado y el chico de sistemas estaba de vacaciones, con lo que no nadie cambiaba la cinta de la copia de seguridad, ergo no había copia.

En la segunda iteración, dios se apiadó de el, y creó el entorno de producción, donde el desarrollador pudiera trabajar durante meses sin afectar a producción, como era un dios generoso, le facilito también un sistema de control de versiones, entonces creo GIT (subversión, SVN...), de esta forma podía hacer prototipos, desplegar en producción, subir y bajar de versión, cuando quisiera.

Todo funcionaba bien y había mucho trabajo, pero a veces nuestro cowboy solitario tocaba partes del código y otras partes dejaban de funcionar.


En la tercera iteración dios creo los test automatizados y el entorno de test.
Todo funcionaba bien, y había mucho trabajo con lo que decidieron coger un segundo programador. Todo iba fenomenal, estaban compenetrados, bueno casi, excepto cuando los dos modificaban partes comunes, o cuando actualizaban el software de desarrollo, eran pequeños problemas que pasaban los test en la máquina de cada programador (cuando todos se acordaban de pasarlos), pero que al unirse en desarrollo no funcionaban.

Dios lo vio y en la cuarta iteración decidió crear el ángel Jenkins, dueño y amo del servidor de integración continua, el cual siempre estaba atento a los nuevos cambios del GIT, los bajaba y volvía ha ejecutar los test y en caso de error se lo comunicaba al equipo de desarrollo.
Todo funcionaba bien, hasta que llego el día en que su aplicación empezó ha comunicarse con otras aplicaciones y sistemas, los usuarios estaban integrados con el sistema de recursos humanos, la comunicación con el servidor de correo que sistemas había instalado, la explotación de datos con el DWH corporativo que se había comprado, había muchas cosas que estaban fuera de la lógica y los test de programación.

Nuestro buen dios en su quinta iteración lo vio y decidió crear los MOCKs (objetos simulados) para que los desarrolladores y el ángel Jenkins pudieran probar el funcionamiento, así como también creó el entorno de pre-producción para que sistemas y el usuario final pudieran probar las funcionalidades en un entorno separado del de producción.

Todo funcionaba bien, la empresa era un éxito y nuestro software estaba triunfando, con lo que un día decidieron contratar a un comercial para vender "la solución" a otros clientes, pero había un problema que le íbamos a enseñar a nuestros clientes?

Era sábado y dios estaba de compras en su sexta iteración, con lo que decidió comprar un servidor, el servidor DEMO, donde el comercial podría hacer sus demos sin datos de los clientes y los desarrolladores podrían ver la última versión estable de todo el software (no solo del producto donde ellos trabajaban), de esta forma podría proponer mejoras y coger ideas de otros equipos.


Era la séptima iteración y dio decidió descansar y contemplar su obra.

No hay comentarios:

Publicar un comentario