Integración continua

Integración continua
Julio Nimo
Desarrollador Software e iOS
“El ordenador nació para resolver problemas que antes no existían”
Post más relevante: Fitur 2016 vuelve a sorprendernos

En el siguiente post, intentaremos explicar el concepto de integración continua relacionado con el desarrollo de software y explicar el porqué de su utilización, si queremos conseguir productos de calidad.

circulos

Hace años, para realizar el desarrollo de un proyecto de software, en la mayoría de los casos, era suficiente elegir un lenguaje adecuado y en caso de que fuese necesario y que el propio lenguaje no dispusiese de ella, la base de datos con la que nos conectaríamos. Hoy en día eso es impensable, en un mismo proyecto suelen convivir varios lenguajes, tecnologías, sistemas, etc… Por este motivo se hace imprescindible un sistema de gestión y supervisión, para que en todo momento tengamos controlado el proyecto y que todos sus elementos se integren correctamente. Es por eso que en el año 2006 aparece el concepto de “integración continua”.

 

La práctica de integración continua, consiste en que el trabajo realizado por cada uno de los miembros del equipo, se integre frecuentemente y que automáticamente sea sometido a una serie de pruebas y test de calidad, que permitan detectar errores lo más pronto posible, para que de esta forma tengamos localizado el código que ha producido el error de integración y podamos subsanarlo a la mayor brevedad y con el menor coste posibles.

comit

Seguramente los que hayáis participado en proyectos de desarrollo de software, habréis vivido la siguiente situación, tres días antes de la entrega del producto final y después de varias semanas o meses de trabajo, generamos la última versión, procedemos a desplegarlo en un entorno de preproducción y… ¡SORPRESA, NO DESPLIEGA!. Inmediatamente después de limpiarnos la gota de sudor que se desplaza por la frente y de recuperarnos de la taquicardia que acabamos de sufrir, la pregunta que se nos viene a la cabeza es “¿Cuántos días sin dormir ni comer y trabajando 24 horas sobrevivirá el cuerpo humano?” ¿Por qué esta pregunta? Porque para encontrar el error, nos veremos obligados a repasar todo el trabajo realizado desde el principio o la anterior compilación que sí funcionaba.

codigo

¿Cómo evitar esto? Empleando la estupenda práctica de “integración continua”. Cada miembro del equipo, después de cualquier cambio o implementación realizada (o como mínimo una vez al día), deberá integrarlo. Cada integración se compilará y se someterá a los test y pruebas de calidad necesarias. De esta forma en caso de detectar un error, sabremos cual ha sido el código causante del mismo y podremos centrarnos en esa integración para localizarlo. Una vez detectado un error tras una integración, el objetivo de todo el equipo debe ser localizar ese error y subsanarlo, no tiene sentido seguir desarrollando e integrando partes en un entorno con un error, porque no podríamos valorar si las nuevas integraciones son correctas.

Además de la detección precoz de errores, otra gran ventaja de la integración continua es la posibilidad de disponer de múltiples compilaciones con la última versión del proyecto, con las pruebas automáticas superadas, para realizar pruebas más exahustivas, mostrar al cliente, o incluso en caso de vernos en la obligación de hacer un despliegue de urgencia, poder llevarlo a cabo.

Aunque el término de “integración continua” es lo suficientemente interesante y amplio como para escribir un libro, esperamos que con este post consigamos que se entienda el concepto de una forma genérica. En sucesivos post seguiremos profundizando en el tema y explicando distintos términos relacionados con el concepto de “integración continua” y mostrando algunas de las herramientas que nos pueden ayudar a desarrollar un entorno de integración continua. Hasta la próxima!!!

 

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *