Continuous integrations, continuous delivery, continuous deployment, DevOps… ¿Es lo mismo?

Continuous integrations, continuous delivery, continuous deployment, DevOps

Hoy en día es muy común hablar sobre la integración, entrega, despliegue continuo, DevOps… pero… ¿sabemos cuáles son sus diferencias?, ¿es lo mismo?, ¿podríamos definir DevOps como la suma de lo anterior?

Como ya habéis podido intuir… NO, no es lo mismo (aunque claro, que se llamen de forma distinta ya nos daba alguna pista de que se trata de conceptos distintos).

Vamos a intentar definir cada uno de los conceptos de la forma más simple y breve posible:

  • Continuous integration: comúnmente nombrado como CI, es la práctica que se basa en integrar cambios en el código, de la forma más rápida posible, al proceso de desarrollo. Asegurando que estos cambios no “rompen” la aplicación. Para conseguir esto, no basta con verificar que la aplicación compila con las modificaciones, sino también tener un conjunto de pruebas (tests), que aseguren que todo sigue funcionando como se esperaba.
  • Continuous delivery: podemos decir que tenemos implantado un sistema de entrega continua cuando nuestro código siempre está listo para ser llevado a producción. Si bien es recomendable llevar las nuevas funcionalidades a producción tan pronto como sea posible, a veces puede decidirse retrasar la entrega con fines comerciales.
  • Continuous deployment: El despliegue continuo sucede cuando cada cambio en la rama principal que pasa las pruebas de CI se lleva a producción sin la necesidad de la interacción humana. Como consecuencia podemos realizar varios despliegues al día que proporcionan rápido feedback al equipo de desarrollo.

Aunque no los hayamos nombrado, conceptos comos test, automatización, revisión del código, monitorización… y herramientas como SeleniumBitBucket, Jenkins, Bamboo (entre otras)  juegan un papel esencial para poder llevar a éxito la implementación de cualquiera de los elementos anteriores. Pero todavía queda una pregunta por responder: ¿podríamos definir DevOps como la suma de lo anterior? Antes de responder a la misma, intentemos ver de dónde viene la palabra DevOps y lo que esto implica:

  • DevOps: la palabra en si misma viene de la unión de otras dos: Develop (desarrollo) y Operations (operaciones). El concepto de DevOps se basa en la construcción de una cultura de colaboración entre equipos, que históricamente funcionaban de forma aislada, en busca de lograr ciertos beneficios como pueden ser liberar versiones de software más rápidamente, aumentar la capacidad para resolver problemas críticos y gestionar mejor el trabajo, tanto planificado como no planificado.

Entonces volviendo a la pregunta ¿podemos decir que es una suma de integración, entrega, despliegue continuo? pues en realidad el termino engloba algo más, si que podemos decir que sin cualquiera de estos elementos no podemos llegar a implementar una forma de trabajo basada en DevOps pero sólo podemos asegurar que esto es así cuando realmente rompemos las barreras entre los distintos equipos y estos funcionan como uno solo. Esto no solo incluye a los equipos de desarrollo y de infraestructura sino también a aquellos que dan el soporte al usuario final porque son los que realmente pueden seguir alimentando y recogiendo feedback de los usuarios para que la cadena continúe.

Y ahora que lo tenemos algo más claro ¿lleváis a la práctica alguno de estos conceptos? Si no es así, es hora de remangarse y ponerse ¡manos a la obra!

About the author

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.

ACEPTAR