¿Qué es la entrega continua?
Aquí, podrá seguir el análisis del equipo de Tailspin sobre cómo puede ayudarles una canalización de entrega continua (CD) con su próxima versión.
El equipo de Tailspin empieza a sentirse más satisfecho por lo que respecta al proceso de compilación. Tienen un proceso automatizado que se ejecuta en Azure Pipelines, lo que significa que el entorno de compilación es estable. Amita puede reconocer inmediatamente cuándo necesita probar un artefacto. Encuentra menos errores porque Andy y Mara han empezado a agregar pruebas unitarias y pruebas de calidad del código. Todo va sobre ruedas. Se comprobará con el equipo.
Reunión matutina
El equipo se encuentra en la sala de reuniones a la espera de Irwin, el administrador de productos, que dice que quiere hablar con ellos. Están deseando informarle de su progreso. Pero, cuando Irwin entra en la sala, no parece contento. Empieza a hablar de inmediato.
Irwin: —Me he reunido esta mañana con el equipo administrativo. Quieren saber por qué tardamos tanto en publicar nuestros juegos y sitios web. Nuestros competidores más cercanos publican características y juegos nuevos mucho más rápido que nosotros. Necesitamos acelerar el proceso. No le estoy alertando solo a usted. Estoy alertando a todos los equipos. ¿Qué podemos hacer para ayudar al equipo a acelerar la implementación?
Andy: —Quizás esto parezca algo repentino, pero ha habido progreso con esta cuestión. Hemos estado automatizando la compilación de nuestros sitios web. Es posible que este sea el momento de aplicar esta automatización también a nuestro proceso de publicación de versiones.
Irwin: —¿Cómo lo haríais?
Mara: —Hemos creado una canalización de compilación automatizada mediante Azure Pipelines. Compila un artefacto que Amita puede probar. También podríamos compilar una canalización de entrega continua (CD).
Irwin: —¿Qué es una canalización de CD?
Mara comienza a explicárselo, pero el teléfono de Irwin los interrumpe. Irwin lee un mensaje de texto, murmura algo y suspira.
Irwin: —Lo siento, he de atender un asunto urgente. Me tengo que ir. ¿Qué os parece si acabáis de definir este proceso de CD y me informáis en cuanto lo hayáis hecho?
Andy mira al equipo.
Andy: —¿Un café?
Andy y el resto del equipo se dirigen a la cafetería para elaborar un plan.
¿Qué es la entrega continua?
El equipo se reúne a la hora del café para averiguar cómo configurar un flujo de trabajo de entrega continua.
Andy: Mara, ¿puedes decirnos lo que sepas sobre la entrega continua?
Mara: —Para mí, la CD y DevOps son inseparables. Recordad que definimos DevOps como la unión de personas, procesos y productos para permitir la entrega continua de valor a los usuarios finales.
La CD es un conjunto de procesos, herramientas y técnicas que permiten la entrega rápida, de confianza y continua del software. Por lo tanto, la CD no consiste solo en la configuración de una canalización, aunque esa parte es importante. La CD consiste en la configuración de un entorno de trabajo en el que:
- Tengamos un proceso de confianza y repetible para publicar e implementar software.
- Automaticemos tanto como sea posible.
- No dejamos de hacer algo que nos parece difícil o doloroso; en su lugar, lo hacemos con mayor frecuencia para que se determine cómo realizar la rutina.
- Lo mantengamos todo en el control de código fuente.
- Estemos todos de acuerdo en que listo significa publicado.
- Generemos calidad en el proceso. La calidad nunca sea una opción añadida.
- Todos seamos responsables del proceso de publicación de versiones. Ya no trabajemos en silos.
- Siempre intentemos mejorar.
Ya hemos puesto en práctica muchas de estas ideas y todos estamos de acuerdo en que han mejorado nuestra forma de trabajar. La CD es una extensión de lo que ya hemos empezado a aplicar.
¿Por qué es necesaria la entrega continua?
La CD ayuda a los equipos de software a entregar actualizaciones de software de confianza a sus clientes con gran rapidez. También ayuda a garantizar que tanto los clientes como las partes interesadas obtengan las últimas características y correcciones rápidamente.
Continuemos escuchando al equipo mientras hablan de ello.
Andy: —Gracias, Mara. Necesitamos la CD porque, como sabemos, el mundo ha cambiado. Las nuevas características se publican más rápido. Las actualizaciones y las correcciones de errores deben estar disponibles de inmediato. No es solo nuestra administración la que quiere que aceleremos la publicación de nuestras versiones. La administración simplemente reacciona a las peticiones de nuestros clientes. Si los clientes no pueden obtener lo que quieren de nosotros, lo buscarán en otro lugar.
Tim: Estoy de acuerdo. Estoy impaciente por empezar.
Andy: —Gracias a todos. Voy a proponer que Mara y yo pongamos en común una prueba de concepto simple (POC). Creo que todo será mucho más fácil de entender si veis una canalización de CD en acción.
Amita: —Buena suerte a los dos.
El equipo deja que Andy y Mara detallen la operación.
¿Qué diferencias hay entre la entrega continua y la publicación mediante el botón derecho del ratón?
Muchas herramientas de desarrollo proporcionan maneras de publicar la aplicación directamente en algún entorno de destino, como Microsoft Internet Information Services (IIS) o Azure. Por ejemplo, puede publicar una aplicación de ASP.NET Core en Azure con Visual Studio. A veces, se hace referencia a este proceso como publicación con el botón derecho del ratón.
Es una excelente manera de compilar rápidamente un prototipo. Por ejemplo, puede publicar mediante este procedimiento su aplicación en Azure para compartir una idea nueva con el equipo. Pero esta técnica tiene limitaciones.
La entrega continua proporciona una manera coherente de que el equipo pruebe, implemente y supervise continuamente su aplicación cada vez que se registre código. Al publicar la aplicación con el botón derecho del ratón, no hay ninguna garantía de que el código se haya probado correctamente ni de que se comporte según lo esperado en el uso real.
En este breve vídeo, Abel Wang, asesor para la nube de Microsoft, explica más detalles.
¿Qué diferencias hay entre la entrega continua y la implementación continua?
En la comunidad de DevOps, es posible que oiga los términos entrega continua e implementación continua. ¿Significan ambos lo mismo? En este breve vídeo, Abel explica la diferencia.
¿Qué herramientas de entrega continua puedo usar?
Una vez finalizada la reunión, Andy y Mara planean los pasos siguientes. Usan Azure Pipelines para compilar su software. Quieren tener en cuenta qué herramientas, incluida Azure Pipelines, están disponibles para ayudarles con su proceso de publicación de versiones.
Mara: —¿Por dónde quieres empezar?
Andy: En primer lugar, tenemos que acordar qué herramienta de administración de versiones usaremos. Asegurémonos de que la herramienta que elijamos cumpla con las siguientes condiciones:
- Admite nuestro sistema de control de versiones.
- Se puede implementar en varios entornos para que podamos probar y validar nuestro trabajo.
- Permite definir fácilmente las tareas de implementación.
- Es fácil de ampliar.
Mara: —Azure DevOps se integra con otras soluciones de CD y de integración continua (CI). Existen muchas soluciones y no invertimos en ninguna de ellas. Si lo hiciéramos, tendría sentido usar esa en cuestión. Entre los sistemas de CI y CD populares, se incluyen Jenkins, CircleCI, GitLab, Travis CI y Azure Pipelines.
Estas herramientas son similares, pero cada una de ellas tiene ventajas particulares. Algunas son de código abierto, otras, gratuitas y otras, de pago. También proporcionan integraciones incorporadas con otras herramientas de software.
Por ejemplo, Jenkins es de código abierto. Tiene muchos complementos y muchas compañías la usan. Puede ejecutar CircleCI en la nube o de forma local. Creo que necesitaríamos personalizarla. GitLab es una aplicación única para todo el ciclo de vida de desarrollo del software. Es posible que sea más grande de lo que queremos ahora. Podemos seguir usando Azure Pipelines.
Este es un breve vídeo en el que Abel habla sobre el uso de los procedimientos recomendados de DevOps para implementar código en Azure.
Mara: —Voto por seguir usando Azure Pipelines.
Andy: —Estoy de acuerdo. Azure Pipelines nos ha ido muy bien hasta ahora y así no tenemos que aprender a usar otra tecnología.
Mara: —Perfecto. Comencemos por los detalles de la canalización.
Andy y Mara pasan a una sala de conferencias para planear su canalización de CD.