Quería dejar acá unos apuntes sobre lo que entiendo marca alguna diferencia entre Continuous Integration, Delivery y Deployment, escrito en lenguaje bien simple para que se entienda.
Continuous Integration
Significa que el código de TODOS se mergea frecuentemente (al menos una vez por día). De esta forma se mantiene un repositorio de código estable desde donde cualquiera puede comenzar a trabajar en algún cambio. Se tiene automatizado el build, y distintos chequeos automáticos, como revisión de calidad de código, ejecución de pruebas unitarias, etc. En lo que se basa esto es que si dos desarrolladores parten del mismo código base, están un mes trabajando por separado, seguramente cuando quieran unir sus cambios se van a divertir bastante.
Continuous Delivery
Lo principal es liberar al cliente lo más seguido posible. Lo que se estila hacer es integración continua, se arma frecuentemente una versión ejecutable del sistema con lo último del código integrado, y si esta versión pasa los chequeos automatizados, se termina realizando una instalación en un ambiente de desarrollo o pruebas. El sitio de Jez Humble está muy bueno https://continuousdelivery.com/
Continuous Deployment
Acá se va un paso más allá, y si el código nuevo pasa todas las pruebas automatizadas en el ambiente de test, entonces se termina pasando directamente a producción. Esto es lo que hace Facebook y Google. Tienen muy aceitado el proceso de deploy, lo van liberando gradualmente, y si algún usuario tiene algún problema, entonces se hace rollback y el feedback llega al desarrollador para que corrija el problema.
Si duele, hay que hacerlo más seguido. Nos vamos a acostumbrar al dolor, o vamos a hacer algo para que deje de doler.
Awesome page with genuinely good material for readers wanting to gain some useful insights on that topic! But if you want to learn more, check out FQ7 about Car Purchase. Keep up the great work!