Iniciar sesión / Registrar Cuenta

DevOps

¿Qué es la distribución continua?

Jump to section

La distribución continua es una práctica del desarrollo de software que utiliza la automatización para acelerar el lanzamiento del código nuevo.

En este proceso, los cambios que hace un desarrollador en una aplicación se envían a un repositorio de código o al registro de contenedores por medio de la automatización.

¿Cómo se relaciona la distribución continua con la CI/CD?

La distribución continua forma parte de la CI/CD, un método para distribuir software con frecuencia mediante la automatización de algunas de las etapas del desarrollo de las aplicaciones. 

La sigla "CI" en la expresión CI/CD hace referencia a la integración continua. Con ella, los nuevos cambios en el código de una aplicación se diseñan, prueban e incorporan con regularidad en un repositorio compartido. Gracias a esto se soluciona el problema de que se desarrollen demasiadas divisiones de una aplicación al mismo tiempo, que luego podrían entrar en conflicto entre sí.

La sigla "CD" en CI/CD puede hacer referencia a la implementación continua o a la distribución continua, las cuales describen formas de automatizar las etapas posteriores del canal.

¿Cuál es la diferencia entre la distribución continua y la implementación continua?

Aunque la distribución continua y la implementación continua son conceptos estrechamente relacionados, a veces se usan por separado para especificar qué tantas tareas se realizan a través de la automatización.

Por lo general, la distribución continua implica que los cambios de un equipo de desarrolladores en una aplicación automáticamente se someten a pruebas de errores y se cargan en un repositorio (como GitHub o un registro de contenedores), para que luego el equipo de operaciones pueda implementarlos en un entorno de producción en vivo. Es una solución al problema de la poca supervisión y comunicación entre los equipos comerciales y de desarrollo. Con ese fin, el propósito de la distribución continua es garantizar que la implementación del código nuevo se lleve a cabo con el mínimo esfuerzo.

Por otro lado, la implementación continua abarca algunos pasos adicionales en el proceso de lanzamiento del software nuevo. Generalmente, incluye el lanzamiento automático de los cambios que implementa el desarrollador desde el repositorio hacia la producción, para que los clientes puedan usarlos. Así ya no se sobrecarga a los equipos de operaciones con procesos manuales que retrasan la distribución de las aplicaciones. Este tipo de implementación aprovecha los beneficios de la distribución continua y automatiza la siguiente etapa del canal.

¿Qué es un canal de CI/CD?

Un canal de CI/CD consiste en una serie de pasos que deben ejecutarse para distribuir la versión nueva de un sistema de software. Cuando pone en práctica la integración/distribución continuas, establece un canal de CI/CD.

Los canales de CI/CD incorporan la supervisión y la automatización para optimizar el flujo de trabajo de desarrollo de las aplicaciones, sobre todo en las etapas de integración y de prueba, así como en la distribución y la implementación. 

Si bien cada uno de los pasos de un canal de CI/CD puede ejecutarse de forma manual, el verdadero valor de este radica en la automatización del ciclo de vida de la aplicación.

¿Cómo se relaciona la distribución continua con DevOps?

DevOps es un concepto que combina las prácticas de "desarrollo" y "operaciones", y es un modo de abordar la cultura, la automatización y el diseño de las plataformas para generar mayor valor empresarial y capacidad de respuesta, mediante la prestación ágil de servicios de alta calidad.

La distribución continua es una práctica de desarrollo de software específica, cuya aplicación suele estar relacionada con DevOps. Es probable que un enfoque de DevOps implique la creación de un canal de distribución continua.

DevOps describe los enfoques para agilizar los procesos con los que una idea (como una nueva función de software, una solicitud de mejora o una corrección de errores) pasa del desarrollo a la implementación en un entorno de producción en que puede generar valor para el usuario. 

Con DevOps, los desarrolladores, que generalmente realizan codificaciones en un entorno de desarrollo estándar, trabajan en estrecha colaboración con los equipos de operaciones de TI y de prueba para agilizar el diseño, las confirmaciones de cambios en el código, las pruebas de unidades y el lanzamiento de los sistemas de software, sin comprometer la confiabilidad.

Uno de los resultados principales de la implementación de DevOps es un canal de CI/CD que cuenta con el respaldo de los equipos de desarrollo y operaciones, los cuales trabajan juntos utilizando una metodología ágil

¿De qué forma la automatización de los canales respalda la distribución continua?

La automatización permite que la CI/CD acelere los procesos de desarrollo, implementación y prueba, y ayuda a mantener la calidad y a reducir los errores humanos. También puede respaldar la seguridad como parte de una estrategia de DevSecOps.

Hay herramientas que gestionan específicamente la integración (CI), otras que abordan el desarrollo y la implementación (CD), y algunas que se especializan en la realización de pruebas permanentes o en funciones relacionadas.

Una de las herramientas open source más conocidas para la CI/CD es el servidor de automatización Jenkins, cuyo diseño permite gestionar cualquier sistema, desde un simple servidor de CI hasta un centro de CD completo.

Otro proyecto open source que se utiliza con frecuencia es Tekton. Forma parte de Continuous Delivery Foundation y ofrece la capacidad de describir los canales de distribución de forma declarativa, utilizando conceptos de Kubernetes, así como de ejecutarlos en contenedores según se requiera.

Tekton es la base de OpenShift Pipelines, una solución de CI/CD para Red Hat® OpenShift®.

Los pilares de su canal de CI/CD

Red Hat Openshift

Plataforma de contenedores y Kubernetes para implementar aplicaciones nativas de la nube con mayor rapidez.

Red Hat Ansible Automation

La CI/CD debe codificarse de forma personalizada y funcionar con varios paquetes de software. Red Hat Ansible Automation Platform es un lenguaje de automatización open source con todas estas funciones en un solo producto.

Aumente el valor de Red Hat OpenShift implementando aplicaciones, gestionando múltiples clústeres y aplicando en ellos políticas según sea necesario.

La CI/CD tiene mucho más que ofrecer