En una de mis clases de escritura creativa, lancé un podcast para llamar la atención sobre las lecturas grabadas de los cuentos. Cada nuevo episodio se promociona en las propiedades de mi blog publicando publicaciones con audio y texto de seguimiento.
En lugar de esperar hasta la mañana para que se estrene un episodio, escribo estas publicaciones con anticipación, por lo que todo lo que tiene que hacer es agregar un enlace a su podcast y hacer clic en publicar. También agrego todos los detalles en la plataforma de podcasting para que el episodio se publique a las 5 am sin ponerlo en cola manualmente. Esto no solo es mejor para mi horario de sueño, sino que los episodios siempre están disponibles cuando los suscriptores los están esperando.
En este ejemplo, el objetivo es lograr una implementación fluida del producto terminado. La entrega continua es un enfoque de ingeniería de software con el mismo objetivo. El modelo de entrega continua de mi podcast organizaría todo el flujo de trabajo, así que todo lo que tengo que hacer es publicarlo en la prensa y el resto de las piezas se implementarán. Cuando se trata de implementar sistemas complejos, este es el método preferido en comparación con probar y configurar manualmente su aplicación de lanzamiento.
¿Qué es la entrega continua?
La entrega continua (CD) es un enfoque para el desarrollo de software en el que los cambios de código se empaquetan automáticamente para su implementación en producción. Su objetivo es acelerar el desarrollo, reducir los costos y reducir el riesgo sin sacrificar la calidad del código.
El CD se logra implementando un proceso de lanzamiento simple que es fácilmente repetible y reduce los procesos manuales. En un flujo de trabajo de CD ideal, solo se necesita la intervención humana para implementar la aplicación en un entorno de producción.

CD es la próxima evolución de la automatización de canalización de software después de que el equipo de desarrollo haya logrado la integración continua (CI). CI automatiza la fusión y prueba de los cambios de código, centrándose principalmente en las pruebas unitarias. Una vez que se evalúa el código, la aplicación compilada se implementa en un entorno de prueba para realizar pruebas adicionales. Estas evaluaciones incluyen pruebas de integración, pruebas de rendimiento, pruebas de interfaz de usuario y más.
Combinados, CI y CD forman una canalización de CI/CD que transporta el código desde las máquinas de los desarrolladores individuales a través de pruebas automatizadas hasta una compilación lista para producción al final. Todo lo que se requiere en este punto es que un miembro del equipo implemente la versión actualizada manualmente, generalmente a intervalos regulares. Dado este enfoque en la automatización y la velocidad, CI/CD es la piedra angular del modelo DevOps.
Este video de Thoughtworks proporciona una explicación simplificada de la entrega continua:
Sin embargo, algunas organizaciones prefieren publicar actualizaciones tan pronto como pasan todos los casos de prueba. Esta es la principal diferencia entre la entrega continua y la práctica de implementación continua asociada.
Entrega continua frente a implementación continua
La entrega continua requiere aprobación manual antes de la implementación, mientras que la implementación continua implementará actualizaciones automáticamente una vez que la aplicación de casos de prueba haya pasado con éxito. En la práctica, si los cambios del desarrollador pasan todas las evaluaciones, pueden estar disponibles para el usuario final en cuestión de minutos.

La implementación continua es la próxima evolución de la canalización de CI/CD después de que una organización haya dominado la entrega continua. El objetivo principal de DevOps Automation es eliminar tantos procesos manuales como sea posible para que la implementación continua permita implementaciones fluidas y rápidas para satisfacer las necesidades cambiantes de los clientes.
Sin embargo, es posible que algunos clientes no deseen, o las regulaciones prohíban, actualizar constantemente su software. En este caso, la entrega continua permitirá que el equipo de desarrollo publique fácilmente el software a un ritmo acorde con las preferencias del cliente.
Esta es una de las ventajas del enfoque de entrega continua. Veamos más a continuación.
Benefíciese de la entrega continua
Un CD en combinación con un CI proporciona varios beneficios específicos para los equipos de desarrollo.
1. Encuentra errores más rápido.
El CD se basa en una fuerte estrategia de prueba, probando automáticamente la aplicación para el comportamiento esperado en el «mundo real» después de la implementación. Esto permite a los desarrolladores detectar errores antes de cargar el código en producción, donde puede causar interrupciones y frustraciones a los usuarios.
El CD no solo aumenta la satisfacción del cliente, sino que también permite que el equipo de desarrollo anticipe estos defectos en versiones futuras, mientras que un error que no interfiere con la aplicación nunca se descubre y, por lo tanto, nunca se soluciona.
2. Reduzca sus costos.
El CD reduce el costo de entregar software nuevo y actualizaciones al eliminar los procesos manuales, por lo que los desarrolladores pueden dedicar más tiempo a tareas de orden superior. La velocidad de la canalización de CI/CD también significa que se puede proporcionar más funcionalidad antes. Esto aumenta la productividad del equipo de desarrollo y libera ancho de banda para completar más proyectos sin contratar más ingenieros.
3. Mejorar la calidad.
El CD estandariza los requisitos de la aplicación, implementándolos en casos de prueba, lo que significa que el producto satisfará mucho mejor las necesidades de los usuarios.
El CD también permite a los equipos de desarrollo entregar el Producto Mínimamente Rentable (MVP) más rápido, de modo que el cliente pueda proporcionar comentarios directos sobre las áreas de mejora. La retroalimentación es fundamental para que los desarrolladores continúen brindando valor agregado a los clientes.
Este enfoque ágil suele ser mejor que una metodología en cascada en la que el cliente no verá el producto hasta que esté completamente terminado. En el momento de la entrega, es posible que descubran que no satisface sus necesidades, y todo el tiempo invertido en desarrollar un producto completo ahora es un costo irrecuperable.
4. Menos riesgo.
El primer objetivo de cualquier implementación de software es «no hacer daño». El segundo objetivo es entregar valor al cliente, pero no puede disfrutar de la interfaz de usuario mejorada, por ejemplo, si la aplicación deja de funcionar debido a una actualización.
Al estandarizar el proceso de lanzamiento e implementar la validación de pruebas para detectar errores antes de que entren en producción, el CD reduce el riesgo de cada implementación y brinda a los desarrolladores una mayor confianza en sus aplicaciones.
5. Aumentar la satisfacción de los empleados.
No es ningún secreto que las personas prefieren el trabajo de orden superior a las tareas manuales y repetitivas. Al implementar un flujo de trabajo de CD automatizado, la organización elimina las molestias de sus desarrolladores y les permite concentrarse en la estrategia y la optimización. Además, la velocidad de las canalizaciones de CD significa que el código de los ingenieros se implementa antes para que puedan ver el impacto de su trabajo y cómo ayuda a los clientes a lograr sus objetivos.
6. Entrega rápida.
El CD elimina los bloqueos durante el proceso de creación para que las actualizaciones estén listas para su implementación tan pronto como se verifiquen. Este desempeño permite que el equipo de ingeniería implemente de manera eficiente nuevas funciones para satisfacer las necesidades del cliente. Cuando surge un problema urgente, esta ventaja de velocidad es más beneficiosa, ya que permite a los desarrolladores publicar rápidamente correcciones de seguridad u otras.
Ahora que comprende los beneficios de la canalización de CD, echemos un vistazo a cómo construirla.
¿Cómo construir una tubería de suministro continuo?
La canalización de entrega continua amplía los flujos de trabajo y las herramientas ya implementadas para obtener la canalización de CI. Durante el proceso de CI, se compiló el código para crear la aplicación y se probó para verificar la funcionalidad y la calidad. Si la compilación de la aplicación falla o las pruebas unitarias fallan, el código se devuelve a los desarrolladores para que lo reparen y vuelvan a probar.
Ahora la aplicación está lista para pruebas más estrictas. Necesitará una solución para crear un área de preparación que refleje su entorno de producción. Los equipos de desarrollo generalmente recurren a los servicios en la nube para proporcionar un entorno de múltiples etapas para alojar aplicaciones y organizar el flujo de trabajo de prueba, ya que el alojamiento en la nube puede escalar para cumplir con los requisitos de procesamiento.

La tubería de CD puede tener puertas de calidad que definen criterios de éxito. Estos factores son los puntos de referencia que deben cumplir el rendimiento, la integración, la interfaz de usuario y otras pruebas antes de que la aplicación pase a la siguiente etapa. La inteligencia artificial puede ser útil para determinar la causa de un bloqueo y posibles soluciones.
Como parte de esta estrategia de prueba, querrá automatizar tantas pruebas y procesos como sea posible. Esto mejora tanto la velocidad como la posibilidad de error humano con procedimientos manuales, como ejecutar pruebas en un orden diferente. Cuando se trata de CD, todo debe ser estandarizado y repetible.
Finalmente, invierta en herramientas de observación y monitoreo, ya que la falla de una parte de la tubería puede causar el colapso de todo el proceso. Crear alertas automáticas y redundancia garantizará que el tiempo de inactividad de una herramienta de prueba no interrumpa las entregas al cliente.
Este video de Edureka analiza conceptos de CD y demostraciones de cómo crear una canalización de CD con Jenkins:
Apoye las necesidades de sus clientes con entrega continua.
CD es el siguiente paso en la automatización del proceso de desarrollo después de que el equipo haya dominado la canalización de CI. Según las necesidades del cliente y la organización, los equipos de DevOps pueden pasar de la entrega continua a la implementación continua y optimizar todo el flujo desde el código hasta el cliente. En este escenario, la entrega continua sigue siendo un paso hacia el objetivo final de las implementaciones automatizadas.
CD automatiza y estandariza su estrategia de prueba de aplicaciones para verificar que sus aplicaciones estén listas para satisfacer las necesidades de los usuarios del mundo real. Este proceso detecta errores más rápido, mejora la calidad del producto y reduce los costos de desarrollo, junto con muchos otros beneficios para los desarrolladores y sus clientes.








