Plataformas CI / CD: cómo elegir el sistema de entrega e integración continua adecuado para su negocio

Las plataformas de integración y entrega continuas son fundamentales para el éxito de su equipo de desarrollo. Estas son las mejores plataformas de CI / CD para consultar.

Imagen: scyther5, Getty Images / iStockphoto

La integración continua y la entrega continua se han convertido en pilares en la escena del desarrollo en los últimos años, lo que las convierte en casi un requisito para la mayoría de los flujos de trabajo de desarrollo. En los últimos años, han aparecido nuevos actores en el mercado y han traído nuevos flujos de trabajo y plataformas para permitir pasos adicionales, pruebas automatizadas e incluso implementación automatizada en la mezcla.

VER: Kit de contratación: desarrollador de JavaScript (TechRepublic Premium)

En este artículo, explicaremos qué es la integración y entrega continuas, discutiremos lo que significa CI / CD para su empresa y desarrolladores, y echaremos un vistazo a las principales plataformas para la integración y entrega continuas.

¿Qué es CI / CD?

Contenido imprescindible para desarrolladores

En el ciclo de vida del desarrollo de software, los desarrolladores insertan código en un sistema de control de versiones distribuido como GitHub, GitLab, Bitbucket o alguna otra plataforma en un sistema autohospedado u otro sistema. Una plataforma de integración continua se encuentra en medio de esto, en busca de cambios introducidos en el DVCS y ejecuta compilaciones en la base del código cuando se cumplen ciertos desencadenantes. Los desencadenantes de integración continua podrían basarse en empujes de código individuales a una rama en particular, la combinación de código de una solicitud de extracción o en un cronograma basado en el tiempo (compilaciones nocturnas, compilaciones semanales, etc.).

El aspecto de entrega continua de CI / CD permite a los equipos de software obtener compilaciones de manera fácil y segura en entornos de producción al compilar código, probar el código y luego llevar esos artefactos de compilación al entorno de producción. Con la entrega continua, las compilaciones generalmente se activan manualmente o en un programa basado en el tiempo, se ejecutan conjuntos de pruebas y se informan los resultados si hay algún problema con el código; luego, los artefactos están disponibles para su envío a un entorno de producción.

VER: ¿Qué es CI / CD? (PDF gratuito) (TechRepublic)

Los sistemas de integración continua suelen ser plataformas alojadas, pero también pueden ser sistemas autohospedados para clientes empresariales; estas plataformas se integran con las plataformas DVCS más populares, incluido GitHub. Ser remoto significa que las compilaciones se pueden activar de manera consistente y no requieren que las máquinas de desarrollo local se configuren con claves secretas de API o que estén vinculadas de otra manera con compilaciones en ejecución.

¿Cuáles son los beneficios de utilizar una plataforma CI / CD?

Cuando tiene un sistema CI / CD en su lugar, los desarrolladores ejecutan automáticamente los conjuntos de pruebas, lo que garantiza que cada combinación de una solicitud de extracción haya pasado las pruebas, lo que permite que varios desarrolladores manejen el proceso de compilación y la entrega a producción de manera más eficiente. Todas estas cosas, en última instancia, conducen a un código menos defectuoso y pueden resultar en menos tiempo perdido en tareas de desarrollo de software rudimentarias cuando ese tiempo se puede gastar mejor en el proceso de desarrollo en sí.

CI / CD es un aspecto importante de cualquier flujo de trabajo de desarrollo de software moderno y libera a los desarrolladores para que no se preocupen por implementar flujos de trabajo de compilación en sus máquinas de desarrollo o tengan que preocuparse por las acciones de compilación; todo se puede hacer automáticamente.

¿Cuáles son las plataformas CI / CD más populares?

Jenkins

Imagen: Jenkins

Jenkins es una plataforma CI / CD de código abierto que se basa en Java y es, con mucho, una de las opciones más populares. Tiene una arquitectura de complementos que significa que es infinitamente expandible para satisfacer casi cualquier necesidad de CI / CD que pueda tener para su flujo de trabajo de desarrollo de software. Puede crear software web, software nativo y proyectos de software móvil en él, y es capaz de ejecutarse en casi cualquier arquitectura de servidor, incluidos Windows, Linux y macOS. También se puede ejecutar desde un contenedor Docker, si se prefiere.

Jenkins tiene un legado extenso, admite muchas configuraciones y es muy flexible; sin embargo, requiere un poco más de tiempo de configuración y refinamiento de lo que muchos equipos de software pueden disfrutar. Si está dispuesto a dedicar el tiempo y el esfuerzo de la configuración inicial de Jenkins, puede resultar un sistema sostenible que puede hacer casi cualquier cosa que necesite por el costo de simplemente operar un servidor dedicado. El mantenimiento continuo es otro costo que también debe incluirse en cualquier configuración de Jenkins que pueda implementar.

Si está ejecutando y operando una plataforma de sistema de compilación para una aplicación centrada en la seguridad, entonces tener una opción autohospedada como Jenkins significa que puede controlar más estrictamente la canalización de CI / CD en lugar de depender de un servicio alojado de terceros.

Esta plataforma es gratuita y se puede descargar e instalar desde el sitio web de Jenkins. Con cualquier producto gratuito como Jenkins, siempre debe tener en cuenta la configuración inicial, el mantenimiento necesario y los costos del servidor asociados con la ejecución de su propia instancia del software; Dependiendo de sus necesidades y uso, estos costos podrían superar a un producto alojado y disponible comercialmente como los otros que cubro en esta guía.

¿Qué empresas y usuarios podrían beneficiarse más del uso de Jenkins?

Jenkins es una plataforma excelente para empresas y usuarios que prefieren ejecutar su propia plataforma CI / CD localmente en su propio equipo debido a la seguridad o los precedentes legales, que prefieren administrar su propia pila de hardware y software, o si el software se está construyendo y probando en la plataforma CI / CD tiene requisitos específicos de pila de hardware / software.

Acciones de GitHub

Imagen: GitHub

GitHub Actions es una plataforma CI / CD más nueva de Microsoft que se integra estrechamente con su plataforma DVCS alojada en GitHub y GitHub Enterprise. Las acciones de GitHub están integradas en cada página del repositorio como una pestaña y se pueden configurar y ejecutar fácilmente de forma remota y se incluyen automáticamente en su cuenta alojada en GitHub.com o en sus cuentas empresariales en el sitio.

Con una plataforma alojada empresarial de GitHub, puede controlar más estrictamente su canal de compilación y no preocuparse por los riesgos de seguridad que afectan a las aplicaciones y sistemas que se alojan públicamente en línea. Las acciones de GitHub son compatibles con los corredores de Linux, macOS, Windows y ARM (los corredores son plataformas en las que se puede compilar código).

Debido a que GitHub Actions está estrechamente integrado con DVCS, puede hacer cosas adicionales que Jenkins y otras plataformas de CI / CD no pueden. Las acciones de GitHub también pueden ejecutar sus conjuntos de pruebas de código automáticamente cuando se realizan solicitudes de extracción y se pueden agregar como una verificación para garantizar que una combinación solo pueda ocurrir si una prueba se ha ejecutado y pasado correctamente.

El precio de las acciones de GitHub comienza en el nivel gratuito para las cuentas de GitHub alojadas y luego aumenta según los minutos de compilación utilizados y el almacenamiento necesario. Consulta la guía de precios de Acciones de GitHub para obtener más información sobre cómo calcular los precios según las necesidades del proyecto.

¿Qué empresas y usuarios podrían beneficiarse más del uso de Acciones de GitHub?

GitHub Actions es una excelente opción si su empresa ya se ha comprometido a usar GitHub como su DVCS, tiene todo su código almacenado en GitHub y no le importa que su código se esté compilando y probando de forma remota en los servidores de GitHub (aunque una cuenta empresarial es disponible si prefiere ejecutar en su propio hardware usando GitHub Enterprise). GitHub puede manejar las pilas de hardware / software más comunes (como macOS, Windows y Linux), pero si necesita una pila de software / hardware personalizada que GitHub no admite, es posible que deba optar por otra solución para CI / CD.

Si es una organización sin fines de lucro, GitHub tiene precios especiales que puede aprovechar y que otras plataformas de CI / CD pueden no ofrecer.

CircleCI

Imagen: CircleCI

CircleCI es conocido por su facilidad de uso para comenzar a funcionar con un sistema de construcción de integración continua. La empresa ofrece alojamiento en la nube o alojamiento empresarial local e integración con GitHub, GitHub Enterprise y Bitbucket para el proveedor de DVCS.

CircleCI promociona su soporte 24/7 para clientes empresariales, además de extensiones e integraciones reutilizables llamadas «orbes» que lo ayudan a comenzar a trabajar más rápido con los sistemas de compilación continua y le permiten personalizar sus entornos de compilación de una manera que pueda ‘ t con otras plataformas a menos que usted mismo se aloje.

CircleCI puede trabajar con compilaciones para Docker, Linux, macOS, Android, Windows o corredores autohospedados en una plataforma de su elección. Al igual que las acciones de GitHub, CircleCI tiene un nivel gratuito que cuenta con 6000 minutos de compilación por mes en Docker, Windows o Linux (incluido Arm); Si necesita compilar en macOS, deberá actualizar al nivel de rendimiento de $ 15 por mes que incluye minutos de compilación ilimitados y compatibilidad con macOS. Para obtener más detalles, lea la guía de precios de CircleCI.

¿Qué empresas y usuarios podrían beneficiarse más del uso de CircleCI?

CircleCI es una excelente opción si ya está integrado con GitHub o Bitbucket y prefiere un modelo de precios más sencillo en lugar de cobrar por minutos de compilación como otras plataformas alojadas. CircleCI también se integra con los corredores más comunes como macOS, Windows y Linux; además, proporciona una licencia empresarial si prefiere integrarse con su propio hardware e infraestructura. Al igual que las acciones de GitHub, si necesita compilar y probar en una pila de hardware o software específica, es posible que CircleCI no funcione para usted; en cambio, es posible que necesite una solución alternativa como Jenkins.

Presenta comparaciones de Jenkins, GitHub Actions y CircleCI

Característica

Jenkins

Acciones de GitHub

CircleCI

Precios

Disponible de forma gratuita

Linux 0,008 USD / min
macOS $ 0.08 / min
Ventanas $ 0.016 / min

Planes gratuitos a $ 15 por mes y opciones empresariales disponibles

Apoyo disponible

No

Hospedaje autohospedado o local

Admite entornos de construcción

Docker y cualquier plataforma que pueda instalar Jenkins con un entorno Java

Linux, macOS, Windows, Arm y contenedores

Docker, Linux, macOS, Windows, GPU y Arm

¿Qué plataforma de CI / CD debería elegir?

Jenkins, GitHub Actions y CircleCI son las opciones de plataforma CI / CD más sólidas de la industria en este momento, y realmente no puede equivocarse con ninguna de ellas. Cada una de estas plataformas CI / CD tiene ventajas y desventajas según lo que necesite su equipo de desarrollo. Estos paquetes presentan una miríada de opciones disponibles, desde autohospedado hasta basado en la nube y una variedad de plataformas compatibles.

Para una mayor longevidad y un uso sin complicaciones, recomiendo optar por una solución basada en la nube como GitHub Actions o CircleCI, pero para una solución más consciente de la seguridad o hágalo usted mismo, Jenkins es inmejorable.

Ver también