¿DevOps? ¿Continuous Delivery? ¿Continuous Deployment? ¿Integración Continua? Aclarando términos

Vamos calentando, que comenzó ya el año. Y para ello, vamos con una de términos, de esas que gustan tanto y lían casi lo mismo o más… En parte un post escrito después de las reacciones de aquel de hace unos días de Agilidad y DevOps… ¿Son lo mismo? y ¿Qué es DevOps?, entonces… ¿DevOps? ¿Continuous Delivery? ¿Continuous Deployment? ¿Integración Continua? vaya lío. Vamos con ellos…

DevOps

Ya hablamos del tema en uno de los últimos post del año pasado, aquel de Agilidad y DevOps… ¿Son lo mismo? y ¿Qué es DevOps? Te recuerdo que DevOps viene de Development + Operations, es decir, aquello de lograr la máxima colaboración e integración entre desarrollo software y operaciones (producción, explotación, o como cada uno tenga a bien llamarlo).
Por ello, una característica fundamental del DevOps es la cultura de colaboración entre desarrollo y operaciones. No existe “muro”, no existen departamentos separados, no existen tiempos muertos entre ambos entornos, implica un único equipo autónomo y no varios «silos».

Continuous Delivery

Tomo como base la definición de Fowler como base, continuous delivery o entrega continua es una disciplina de desarrollo software en la el software se construye de tal manera que puede ser liberado en producción en cualquier momento.
Pero ojo, el continuous delivery no implica necesariamente que se libere cada vez que hay un cambio, solo ocurre si el responsable de negocio, el Product Owner de turno, decide pasar a producción, hay un co ponente «humano» a la hora de tomar la decisión. Pero, en cualquier caso, la versión está lista de inmediato.
Esto implica, entre otros, que se prioriza que la versión esté en un estado en el que puede ser puesta en producción… frente, por ejemplo, añadirle más requisitos. Y normalmente no se pasa sin en visto bueno “manual” de negocio, porque si cada cambio se pusiera en producción de manera automática estaríamos frente a…

Continuous Deployment

Continuous Deployment o despliegue continuo significa que cada cambio pasa por un “pipeline” automatizado y se pone en producción, lo que suele generar sitios donde hay muchos despliegues en producción cada día.
El Continuous Delivery, que veíamos antes, se diferencia del Continuous Deployment en que sólo implica que somos capaces de hacer despliegues frecuentes, pero no implica hacerlo. Esto pasa muchas veces porque hay negocios que requieren un ritmo más lento.
Para tener Continuous Deployment antes debe haber Continuous Delivery y en cualquiera de los casos debe haber una buena integración continua…

Integración Continua

Integración Continua por lo general refiere a la integración, construcción y prueba frecuente, y mayormente automatizada, de código dentro del entorno de desarrollo.
El continuous delivery, y por ello el Continuous Deployment, se basa en una correcta integración continua, siendo, realmente, un paso más allá, llevar la integración contínua a las etapas finales del ciclo de vida.

jgarzas

Ph.D. en informática, Postdoctorado en la Carnegie Mellon (EE.UU) e Ingeniero en Informática.

Primera vez que me tocó hacer una gestión Ágil en una empresa... año 2001. Desde entonces he trabajado en, o para, más de 90. Y he formado a más de 2000 alumnos.

También soy profe de la Universidad Rey Juan Carlos.

0 comentarios en “¿DevOps? ¿Continuous Delivery? ¿Continuous Deployment? ¿Integración Continua? Aclarando términos”

  1. Buen post Javier, es conveniente aclarar estos conceptos básicos porque DevOps es una tendencia relativamente inmadura y que, precisamente por tratar de unir dos grupos de trabajo con culturas, operativas y herramientas diferentes, tiene dificultades de conceptualización en las organizaciones.
    Un ejemplo de estas dificultades, que me he encontrado en más de un cliente al que asesoro, es plantear las iniciativas DevOps como «el proyecto DevOps» y la consiguiente duda «Quien lidera el proyecto DevOps»? En estas situaciones he visto que el proyecto DevOps lo lideraba el grupo de infraestructuras, porque iba asociado a iniciativas de gestión de entornos y «cloud», pero dejaba algo al margen al grupo de desarrollo.
    Esto denota que DevOps no se ha tomado como una iniciativa estratégica desde el CIO, y una cierta falta de visión sobre la relación entre DevOps y prácticas técnicas como CI o CD.
    (Creo que aquí hay material para otro post). 😉
    Àlex Ballarin / itnove.com

    1. Hola Alex , Javier.. uy! me doy cuenta que este post es del 2016, y aquí en Perú estamos en nuestros inicios sobre DevOps.. es muy cierto lo comentado sobre «quien debe liderar el proyecto DevOps», en mi caso, el área de Arquitectura Empresarial es quién lo lidera, significa un gran reto para nosotros dado que implica un cambio cultural, y el trabajo colaborativo entre Desarrollo e Infraestructura..
      Ahora entiendo, que para una fase inicial del proyecto debemos llegar hasta Continuous Delivery, ya que el negocio es nuestro gatillador para los despliegues a producción. Cuando logresmos estar mas máduros en el tema de DevOps, espero llegar a Continuous deployment (pasaremos a producción como locos.. jejeje)
      Muchas gracias por el aporte!! 😉
      Saludos-
      Mayra Puntillo- mpuntillor@lapositivavida.com.pe

Dejar un comentario

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