Herramientas CI/CD para construir la próxima generación de pipeline de entrega



Resultado de imagen para golden gate bridge

No es fácil construir una verdadera pipeline de CI / CD, pero las  herramientas adecuadas pueden hacerlo más manejable. Se explicará la diferencia  entre Integración Continua (CI), Entrega Continua (CD) e Implementación Continua, y revisaremos las 6 principales herramientas de CI / CD que pueden ayudarlo a construir su pipeline de entrega de software de próxima generación.

La construcción de una verdadera pipeline de CI / CD implica:

  • Automatizar transferencias entre equipos
  • Redacción de pruebas automatizadas unitarias, funcionales y de UI
  • Construir un entorno de prueba realista que pueda ser replicado y creado automáticamente
  • Optimizar los procesos de compilación para garantizar que pueda ejecutar compilaciones y pruebas en poco tiempo

Integración continua vs. Entrega continua vs. Implementación continua

Antes de comenzar, aclaremos tres términos clave: integración continua, entrega continua y , implementación continua:

¿Qué es la integración continua? La práctica de desarrollo de software de combinar los últimos cambios de código con la rama principal con la mayor frecuencia posible. Cada vez que se fusionan los cambios es una "integración".
¿Qué es la entrega continua? Una canalización de desarrollo en la que cada versión se puede implementar y lanzar potencialmente a los usuarios finales. Las pruebas automatizadas, manuales y de aceptación están integradas en la pipeline para que cuando una construcción salga de esta, esté lista para ser liberada. Debería ser una decisión comercial pura si lanzar una compilación o no.
¿Qué es la implementación continua? Al igual que la Entrega continua, solo cada compilación se envía a los usuarios finales. Las correcciones y los ajustes se realizan sobre una base de "avance", realizando cambios en la base de código e implementando inmediatamente nuevas iteraciones del software. Este enfoque extremo es practicado por grandes organizaciones de desarrollo como Google, Facebook y Twitter, cada una de las cuales implementa cientos o miles de compilaciones todos los días.

Las 6 mejores herramientas de CI / CD

Jenkins

Resultado de imagen para Jenkins
Jenkins es una de las herramientas de CI más antiguas y populares: una herramienta de código abierto multipropósito que ofrece una GUI, incluida una nueva llamada Blue Ocean , y una interfaz CLI. Jenkins es muy flexible debido a su ecosistema de miles de complementos (incluso puedes agregar el tuyo). Su arquitectura distribuye compilaciones y cargas de prueba en múltiples máquinas, y se sabe que se amplía con éxito a miles de compilaciones. Jenkins proporciona imágenes de Docker para ejecutar un servidor, así como agentes que pueden ejecutarse en servidores existentes.

Precio: de código abierto y gratuito, ofrecido como una solución alojada por la
plataforma CloudBees.

GitLab CI
Resultado de imagen para GitLab CI
GitLab es una familia de herramientas que toca casi todas las partes de la pipeline de desarrollo, con un administrador de repositorio Git de código abierto con todas las funciones en su núcleo. GitLab CI es un motor de CI / CD que se integra con GitLab y puede conectarse a proyectos utilizando la API de GitLab. Puede desencadenar compilaciones, ejecutar conjuntos de pruebas e implementar código con cada confirmación. GitLab puede automatizar secuencias de implementación complejas utilizando corredores escritos en Go. Puede ejecutar compilaciones en una VM, Docker Container o servidor de su elección.

Precio: Gratis para equipos pequeños, el precio comienza en $ 4 / usuario / mes

Travis CI
Resultado de imagen para Travis CI

Travis CI fue probablemente la primera solución de CI alojada, y también ofrece una versión local. Tiene una estrecha integración con Github, por lo que es más fácil comenzar. Las compilaciones de Travis se configuran agregando tareas de compilación al archivo .travis.yml. Admite una gran variedad de idiomas y se integra con muchas otras herramientas de compilación y objetivos de implementación. Al igual que las otras herramientas presentadas aquí, admite la ejecución de compilaciones en contenedores Docker y máquinas virtuales dedicadas.

Precios: Gratis para proyectos de código abierto o hasta 100 compilaciones, los planes pagos comienzan desde $ 69 por mes

TeamCity
Resultado de imagen para TeamCity
TeamCity está hecho por JetBrains, el creador de herramientas de desarrollo muy populares como IntelliJ IDEA Java IDE. Su versión gratuita ofrece una funcionalidad completa, pero se limita al número de configuraciones de compilación (100) y agentes de compilación (3) que se le permite tener.

TeamCity es un producto instalado que funciona en todas las plataformas populares y admite muchas herramientas y marcos. Al igual que Jenkins, tiene un gran ecosistema de complementos (aunque no tan grande). TeamCity está escrito en Java, pero ofrece una buena compatibilidad con .NET, lo que lo convierte en una alternativa al pesado TFS de Microsoft. Es un sistema de compilación inteligente que detecta automáticamente las tecnologías utilizadas en su aplicación para sugerir pasos de compilación. TeamCity le permite ejecutar su servidor y agentes en contenedores Docker, y ejecutar pasos de compilación individuales en contenedores separados.

Precios: gratis para hasta 100 configuraciones de compilación y 3 agentes de compilación, el servidor empresarial comienza en $ 1,999

Circle CI
Resultado de imagen para CircleCI
CircleCI se basa en contenedores que son máquinas virtuales Mac dedicadas (también es compatible con máquinas virtuales Linux o contenedores Docker). CircleCI ejecuta un contenedor de compilación de forma gratuita y le permite elegir cuántos contenedores desea ejecutar y cuántas compilaciones paralelas por contenedor. Es compatible con Java, Ruby on Rails, Python, Node, PHP y Scala.

Precio: Gratis para el primer contenedor, cada contenedor adicional $ 50 / mes

Go CD
Resultado de imagen para gocd logo

GoCD es una herramienta gratuita nacida para CD de la empresa ThoughtWorks. Utiliza el concepto de tuberías para permitirle modelar y automatizar fácilmente complejos procesos de construcción. También le permite ejecutar compilaciones mucho más rápido al paralelizar la ejecución de tareas. Go puede aprovisionar agentes dinámicamente mediante contenedores y proporciona complementos para Docker o Docker Swarm para permitirle ampliar los servicios de compilación a pedido.

Precios: gratis y de código abierto con soporte opcional de pago

Nuestro consejo: las herramientas son lo segundo, la cultura primero
CI / CD tiene algunos años y las herramientas han recorrido un largo camino. Como viste anteriormente, hay varias opciones para construir una pipeline sólida de entrega de software con todas las campanas y silbatos. Sin embargo, antes de comenzar a implementar herramientas y construir la infraestructura, asegúrese de que todos estén a bordo. ¿La gerencia realmente comprende las implicaciones de la entrega continua? ¿Están los clientes listos para ello? ¿Están todos los equipos de desarrollo a bordo? ¿Tiene la infraestructura de automatización de prueba para soportarlo? ¿Has descubierto cumplimiento, auditorías y seguridad?

Asegúrese de que todo esté en su lugar y que su organización esté alineada antes de incorporar las herramientas. Piense en una herramienta CI / CD como un arma poderosa, que puede ser peligrosa en manos de soldados no entrenados. Lleva a tus tropas al campamento de entrenamiento y verás lo poderosas que pueden ser las herramientas. 


Comentarios

Entradas populares de este blog

AWS SAM y AWS Lambda docker Container Image tutorial con PYTHON USANDO A...

Los unicas 4 herramientas que necesitas para volverte un master en Devops

Solucion: Docker Error: No such container: