{"id":96161,"date":"2020-10-08T19:42:48","date_gmt":"2020-10-08T17:42:48","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/bitva-jenkins-i-gitlab-ci-cd"},"modified":"2020-10-08T19:42:48","modified_gmt":"2020-10-08T17:42:48","slug":"bitva-jenkins-i-gitlab-ci-cd","status":"publish","type":"post","link":"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/bitva-jenkins-i-gitlab-ci-cd","title":{"rendered":"La batalla entre Jenkins y GitLab CI\/CD","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>En la \u00faltima d\u00e9cada se han logrado avances significativos en el desarrollo de herramientas de integraci\u00f3n continua (Continuous Integration, CI) y entrega continua (Continuous Delivery, CD). El desarrollo de tecnolog\u00edas de operaciones de desarrollo de software (Development Operations, DevOps) ha llevado a un r\u00e1pido aumento de la demanda de herramientas CI\/CD. Las soluciones existentes se mejoran continuamente, buscando mantenerse al d\u00eda con los tiempos, y se lanzan nuevas versiones, mientras que en el \u00e1mbito del control de calidad del software (Quality Assurance, QA) surgen constantemente nuevos productos. Con tal abundancia de opciones, la elecci\u00f3n de las herramientas adecuadas resulta ser una tarea complicada.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/ruvds\/blog\/522334\/\"><img decoding=\"async\" alt=\"La batalla entre Jenkins y GitLab CI\/CD\" src=\"\/wp-content\/uploads\/2020\/10\/6cf6dfa92ebec7d6e44776e9c9bfbb6d.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p>Entre todas las herramientas CI\/CD existentes, hay dos proyectos que, definitivamente, merecen la atenci\u00f3n de quienes buscan algo en este \u00e1mbito. Se trata de Jenkins y de la herramienta GitLab CI\/CD, que forma parte de la plataforma GitLab. Jenkins tiene m\u00e1s de <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/jenkinsci\/jenkins\">16000<\/a><\/noindex> estrellas en GitHub. El repositorio de GitLab en gitlab.com ha acumulado un poco m\u00e1s de <noindex><a rel=\"nofollow\" href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab\">2000<\/a><\/noindex> estrellas. Si comparamos la popularidad de los repositorios, descubriremos que Jenkins ha acumulado 8 veces m\u00e1s estrellas que la plataforma que incluye GitLab CI\/CD. Sin embargo, al elegir una herramienta CI\/CD, este no es el \u00fanico indicador a tener en cuenta. Hay muchos otros, y esto explica que en muchas comparaciones, Jenkins y GitLab CI\/CD est\u00e9n muy cerca uno del otro.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nTomemos, por ejemplo, los datos de la plataforma G2, que acumula rese\u00f1as sobre diversos productos y las calificaciones que les otorgan los usuarios. Aqu\u00ed, la calificaci\u00f3n promedio de <noindex><a rel=\"nofollow\" href=\"https:\/\/www.g2.com\/products\/jenkins\/reviews\">Jenkins<\/a><\/noindex>con base en 288 rese\u00f1as es de 4,3 estrellas. En cuanto a <noindex><a rel=\"nofollow\" href=\"https:\/\/www.g2.com\/products\/gitlab\/reviews\">GitLab<\/a><\/noindex> aqu\u00ed hay 270 rese\u00f1as, y la calificaci\u00f3n promedio de esta herramienta es de 4,4 estrellas. No nos equivocamos al afirmar que Jenkins y GitLab CI\/CD compiten en igualdad de condiciones. Es interesante notar que el proyecto Jenkins surgi\u00f3 en 2011 y desde entonces ha sido la herramienta preferida de los testers. Sin embargo, el proyecto GitLab CI\/CD, lanzado en 2014, ha alcanzado una posici\u00f3n muy alta gracias a las avanzadas capacidades que ofrece esta plataforma.<\/p>\n<p>Si hablamos de la popularidad de Jenkins en comparaci\u00f3n con otras plataformas similares, es importante destacar que al publicar un art\u00edculo en el que comparamos las plataformas Travis CI y Jenkins, realizamos una encuesta. En ella participaron 85 usuarios. Se les pidi\u00f3 a los encuestados que eligieran la herramienta CI\/CD que m\u00e1s les gusta. El 79% eligi\u00f3 Jenkins, el 5% eligi\u00f3 Travis CI, y el 16% indic\u00f3 que prefieren otras herramientas.<\/p>\n<p><img decoding=\"async\" alt=\"La batalla entre Jenkins y GitLab CI\/CD\" src=\"\/wp-content\/uploads\/2020\/10\/b66b5d3d5f27f3310c8bf0fc68f4c636.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Resultados de la encuesta<\/i><\/p>\n<p>Entre otras herramientas CI\/CD, GitLab CI\/CD fue la que m\u00e1s se mencion\u00f3.<\/p>\n<p>Si te tomas en serio DevOps, debes elegir las herramientas adecuadas, considerando las caracter\u00edsticas del proyecto, su presupuesto y otros requisitos. Para ayudarte a hacer la elecci\u00f3n correcta, vamos a realizar un an\u00e1lisis de Jenkins y GitLab CI\/CD. Esperamos que esto te ayude a tomar la mejor decisi\u00f3n.<\/p>\n<h2>Introducci\u00f3n a Jenkins<\/h2>\n<p>\n<img decoding=\"async\" alt=\"La batalla entre Jenkins y GitLab CI\/CD\" src=\"\/wp-content\/uploads\/2020\/10\/f7df92d1fb3f81f785fc59da82a943b7.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/www.jenkins.io\/\">Jenkins<\/a><\/noindex> es una herramienta CI\/CD ampliamente reconocida y flexible, dise\u00f1ada para automatizar numerosas tareas relacionadas con proyectos de software. Jenkins est\u00e1 completamente escrito en Java y se publica bajo la licencia MIT. Cuenta con un potente conjunto de caracter\u00edsticas orientadas a la automatizaci\u00f3n de tareas relacionadas con compilaci\u00f3n, prueba, despliegue, integraci\u00f3n y lanzamiento de software. Esta herramienta se puede utilizar en diversos sistemas operativos, incluidos macOS, Windows y muchas distribuciones de Linux, como OpenSUSE, Ubuntu y Red Hat. Existen paquetes de instalaci\u00f3n de Jenkins dise\u00f1ados para diferentes sistemas operativos, y esta herramienta se puede instalar en Docker y en cualquier sistema que tenga JRE (Java Runtime Environment).<\/p>\n<p>Los desarrolladores de Jenkins han creado otro proyecto, Jenkins X, que est\u00e1 dise\u00f1ado para funcionar en un entorno de Kubernetes. Jenkins X integra Helm, el servidor Jenkins CI\/CD, Kubernetes y otros herramientas destinadas a crear canalizaciones CI\/CD que sigan las mejores pr\u00e1cticas de DevOps. Por ejemplo, aqu\u00ed se utiliza GitOps.<\/p>\n<p>Entre las ventajas de Jenkins se puede a\u00f1adir que sus scripts est\u00e1n muy bien estructurados, son claros y f\u00e1ciles de leer. El equipo de Jenkins ha creado alrededor de 1000 complementos enfocados en facilitar la interacci\u00f3n de Jenkins con diversas tecnolog\u00edas. En los scripts se pueden utilizar sistemas de autenticaci\u00f3n, lo que permite, por ejemplo, conectarse a diferentes sistemas cerrados.<\/p>\n<p>Durante el funcionamiento del conveyor de Jenkins, se puede observar lo que ocurre en cada uno de sus pasos, as\u00ed como si las diferentes etapas del trabajo se han completado exitosamente o no. Se puede monitorear todo esto sin necesidad de utilizar una interfaz gr\u00e1fica, aprovechando las capacidades de la terminal.<\/p>\n<h2>Caracter\u00edsticas de Jenkins<\/h2>\n<p>\nEntre las caracter\u00edsticas m\u00e1s destacadas de Jenkins se encuentran la facilidad de configuraci\u00f3n, un alto nivel de automatizaci\u00f3n de diversas operaciones y una excelente documentaci\u00f3n. En el contexto de las tareas de DevOps, Jenkins se considera una herramienta bastante confiable, y generalmente no es necesario vigilar el proceso de procesamiento del proyecto de manera cercana. Esto no ocurre con otras herramientas de CI\/CD. Hablemos de algunas de las principales capacidades de Jenkins.<\/p>\n<h3>\u258d1. Gratuito, c\u00f3digo abierto, soporte para m\u00faltiples plataformas<\/h3>\n<p>\nJenkins puede operar en plataformas macOS, Windows y Linux. Tambi\u00e9n puede funcionar en un entorno Docker, lo que permite la ejecuci\u00f3n uniforme y r\u00e1pida de tareas automatizadas. Adem\u00e1s, esta herramienta puede ejecutarse como un servlet en contenedores que admiten Java, como Apache Tomcat y GlassFish. La instalaci\u00f3n de Jenkins est\u00e1 bien <noindex><a rel=\"nofollow\" href=\"https:\/\/www.jenkins.io\/doc\/book\/installing\/\">documentada<\/a><\/noindex>.<\/p>\n<h3>\u258d2. Ecosistema de plugins desarrollado<\/h3>\n<p>\nEl ecosistema de plugins de Jenkins es considerablemente m\u00e1s avanzado en comparaci\u00f3n con los ecosistemas de m\u00f3dulos adicionales de otras herramientas de CI\/CD. Actualmente, existen m\u00e1s de 1500 plugins para Jenkins. Estos plugins est\u00e1n destinados a resolver una amplia gama de tareas, permitiendo automatizar diversos proyectos. La gran variedad de m\u00f3dulos gratuitos significa que quienes utilizan Jenkins no tienen una necesidad urgente de adquirir costosos plugins de pago. Existe la posibilidad de <noindex><a rel=\"nofollow\" href=\"https:\/\/www.lambdatest.com\/support\/docs\/jenkins-with-lambdatest\/\">integraci\u00f3n<\/a><\/noindex> Jenkins con numerosas herramientas de DevOps.<\/p>\n<h3>\u258d3. Instalaci\u00f3n y configuraci\u00f3n sencillas<\/h3>\n<p>\nJenkins es bastante f\u00e1cil de instalar y configurar. Adem\u00e1s, el proceso de actualizaci\u00f3n del sistema tambi\u00e9n est\u00e1 dise\u00f1ado de manera muy conveniente. Nuevamente, vale la pena mencionar la calidad de la documentaci\u00f3n, ya que se pueden encontrar respuestas a diversas preguntas relacionadas con la instalaci\u00f3n y configuraci\u00f3n de Jenkins.<\/p>\n<h3>\u258d4. Comunidad amigable<\/h3>\n<p>\nComo se mencion\u00f3 anteriormente, Jenkins es un proyecto de c\u00f3digo abierto, cuya ecosistema incluye una gran cantidad de complementos. Alrededor de Jenkins se ha formado una amplia comunidad de usuarios y desarrolladores que ayudan en el desarrollo del proyecto. La comunidad es uno de los factores que contribuyen al crecimiento de Jenkins.<\/p>\n<h3>\u258d5. Disponibilidad de REST API<\/h3>\n<p>\nAl trabajar con Jenkins, se puede utilizar REST API, lo que ampl\u00eda las capacidades del sistema. La API para el acceso remoto al sistema se presenta en tres formatos: XML, JSON con soporte para JSONP y Python. <noindex><a rel=\"nofollow\" href=\"https:\/\/www.jenkins.io\/doc\/book\/using\/remote-access-api\/\">Aqu\u00ed<\/a><\/noindex> p\u00e1gina de documentaci\u00f3n que revela detalles sobre el uso de REST API de Jenkins.<\/p>\n<h3>\u258d6. Soporte para la ejecuci\u00f3n paralela de tareas<\/h3>\n<p>\nJenkins admite la paralelizaci\u00f3n de tareas de DevOps. Se puede integrar f\u00e1cilmente con las herramientas correspondientes y recibir notificaciones sobre los resultados de la ejecuci\u00f3n de tareas. La ejecuci\u00f3n de pruebas de c\u00f3digo se puede acelerar mediante la organizaci\u00f3n de la construcci\u00f3n paralela del proyecto utilizando diferentes m\u00e1quinas virtuales.<\/p>\n<h3>\u258d7. Soporte para trabajar en entornos distribuidos<\/h3>\n<p>\nJenkins permite organizar construcciones distribuidas utilizando varias computadoras. Esta capacidad es aplicable en grandes proyectos y utiliza un esquema de funcionamiento donde existe un servidor principal de Jenkins y varias m\u00e1quinas subordinadas. Las m\u00e1quinas subordinadas pueden utilizarse en situaciones donde es necesario organizar pruebas de proyectos en diferentes entornos. Estas capacidades distinguen favorablemente a Jenkins de otros proyectos similares.<\/p>\n<h2>Introducci\u00f3n a GitLab<\/h2>\n<p>\n<img decoding=\"async\" alt=\"La batalla entre Jenkins y GitLab CI\/CD\" src=\"\/wp-content\/uploads\/2020\/10\/aa89f462b8378c8efefef142ff0ca6be.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/about.gitlab.com\/\">GitLab CI\/CD<\/a><\/noindex> se puede considerar como una de las herramientas m\u00e1s nuevas y m\u00e1s queridas por los ingenieros de DevOps. Esta herramienta gratuita de c\u00f3digo abierto est\u00e1 integrada en el sistema de control de versiones de GitLab. La plataforma GitLab tiene una versi\u00f3n community que admite la gesti\u00f3n de repositorios, herramientas para el seguimiento de problemas, organizaci\u00f3n de revisiones de c\u00f3digo y mecanismos orientados a la creaci\u00f3n de documentaci\u00f3n. Las empresas pueden instalar GitLab localmente, conectando este sistema con Active Directory y servidores LDAP para organizar autorizaci\u00f3n y autenticaci\u00f3n seguras de los usuarios.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/3quCZ7ZMg0Y\">Aqu\u00ed<\/a><\/noindex> video tutorial que te ayudar\u00e1 a aprender c\u00f3mo crear pipelines CI\/CD utilizando las capacidades de GitLab CI\/CD.<\/p>\n<p>Inicialmente, GitLab CI\/CD se lanz\u00f3 como un proyecto independiente, pero en 2015, este conjunto de herramientas se integr\u00f3 en GitLab 8.0. Un servidor GitLab CI\/CD separado puede soportar m\u00e1s de 25000 usuarios. Con estos servidores se pueden crear sistemas que se caracterizan por su alta disponibilidad.<\/p>\n<p>GitLab CI\/CD y el proyecto principal GitLab est\u00e1n escritos en Ruby y Go. Se publican bajo la licencia MIT. GitLab CI\/CD, adem\u00e1s de las capacidades ordinarias de las herramientas CI\/CD, tambi\u00e9n soporta funciones adicionales relacionadas, por ejemplo, con la programaci\u00f3n de trabajos.<\/p>\n<p>Integrar GitLab CI\/CD en un proyecto es muy sencillo. Al usar GitLab CI\/CD, el proceso de manejo del c\u00f3digo del proyecto se divide en etapas, cada una de las cuales puede constar de varias tareas que se ejecutan en un orden espec\u00edfico. Las tareas son ajustables.<\/p>\n<p>Las tareas pueden ejecutarse en paralelo. Despu\u00e9s de configurar la secuencia de etapas y tareas, el pipeline de CI\/CD est\u00e1 listo para operar. Se puede supervisar el progreso observando el estado de las tareas. Como resultado, usar GitLab CI\/CD es muy conveniente, quiz\u00e1s m\u00e1s que otras herramientas similares.<\/p>\n<h2>Caracter\u00edsticas de GitLab CI\/CD y GitLab<\/h2>\n<p>\nGitLab CI\/CD es una de las herramientas de DevOps m\u00e1s populares. El proyecto se distingue por su documentaci\u00f3n de calidad, y sus capacidades son f\u00e1ciles y agradables de usar. Si a\u00fan no est\u00e1s familiarizado con GitLab CI\/CD, la siguiente lista de caracter\u00edsticas de esta herramienta te dar\u00e1 una idea general de lo que se puede esperar de ella. Cabe destacar que muchas de estas caracter\u00edsticas est\u00e1n relacionadas con la plataforma GitLab en s\u00ed, en la que se integra GitLab CI\/CD.<\/p>\n<h3>\u258d1. Popularidad<\/h3>\n<p>\nGitLab CI\/CD es una herramienta relativamente nueva que ha encontrado una amplia aplicaci\u00f3n. GitLab CI\/CD ha llegado a ser una herramienta de CI\/CD extremadamente popular, utilizada para pruebas automatizadas y despliegue de software. Es f\u00e1cil de configurar. Adem\u00e1s, es una herramienta de CI\/CD gratuita integrada en la plataforma GitLab.<\/p>\n<h3>\u258d2. Soporte para GitLab Pages y Jekyll<\/h3>\n<p>\nJekyll es un generador de sitios est\u00e1ticos que se puede utilizar en el marco del sistema GitLab Pages para crear sitios basados en repositorios de GitLab. El sistema toma los materiales fuente y genera un sitio est\u00e1tico listo utilizando esos materiales. Se puede gestionar la apariencia y las funcionalidades de tales sitios editando el archivo <code>_config.yml<\/code>, utilizado por Jekyll.<\/p>\n<h3>\u258d3. Capacidades de programaci\u00f3n de proyectos<\/h3>\n<p>\nGracias a la planificaci\u00f3n de las etapas de los proyectos, se mejora la facilidad para rastrear problemas y agruparlos. Esto permite gestionar la organizaci\u00f3n de las tareas del proyecto y planificar su realizaci\u00f3n en una fecha espec\u00edfica.<\/p>\n<h3>\u258d4. Escalado autom\u00e1tico de CI runners<\/h3>\n<p>\nEl escalado autom\u00e1tico de los runners, responsables de ejecutar tareas espec\u00edficas, permite ahorrar significativamente en costos de alquiler de potencia de servidores. Esto es muy importante, especialmente en entornos donde se realizan pruebas de proyectos en paralelo. Adem\u00e1s, es crucial para grandes proyectos compuestos por varios repositorios.<\/p>\n<h3>\u258d5. Herramientas para el rastreo de problemas<\/h3>\n<p>\nLas potentes capacidades de GitLab para el rastreo de problemas han llevado a que muchos proyectos de c\u00f3digo abierto utilicen esta plataforma. GitLab CI\/CD permite realizar pruebas paralelas de diferentes ramas de c\u00f3digo. Los resultados de las pruebas se pueden analizar f\u00e1cilmente en la interfaz del sistema. Esto distingue favorablemente a GitLab CI\/CD de Jenkins.<\/p>\n<h3>\u258d6. Restricci\u00f3n de acceso a los repositorios<\/h3>\n<p>\nLa plataforma GitLab admite la restricci\u00f3n de acceso a los repositorios. Por ejemplo, a quienes colaboran en un proyecto en un repositorio determinado se les pueden asignar permisos que correspondan a sus roles. Esto es especialmente relevante para proyectos corporativos.<\/p>\n<h3>\u258d7. Activa comunidad de soporte<\/h3>\n<p>\nAlrededor de GitLab se ha formado una activa comunidad que contribuye al desarrollo de esta plataforma y sus herramientas, en particular - GitLab CI\/CD. La profunda integraci\u00f3n de GitLab CI\/CD y GitLab facilita, entre otras cosas, la b\u00fasqueda de respuestas a las preguntas que surgen al trabajar con GitLab CI\/CD.<\/p>\n<h3>\u258d8. Soporte para trabajar con diferentes sistemas de control de versiones<\/h3>\n<p>\nGitLab CI\/CD es un sistema que puede trabajar no solo con el c\u00f3digo alojado en los repositorios de GitLab. Por ejemplo, el c\u00f3digo puede almacenarse en un repositorio de GitHub, y el pipeline de CI\/CD puede organizarse en base a GitLab usando GitLab CI\/CD.<\/p>\n<h2>Comparaci\u00f3n entre Jenkins y GitLab CI\/CD<\/h2>\n<p>\nJenkins y GitLab CI\/CD son herramientas muy buenas, cada una de las cuales puede garantizar el funcionamiento adecuado de un pipeline de CI\/CD. Sin embargo, al compararlas, se puede ver que, aunque se parecen en muchos aspectos, tienen algunas diferencias.<\/p>\n<p><strong>Caracter\u00edsticas<\/strong><br \/>\n<strong>Jenkins<\/strong><br \/>\n<strong>GitLab CI\/CD<\/strong><\/p>\n<p>C\u00f3digo abierto o cerrado<br \/>\nC\u00f3digo abierto<br \/>\nC\u00f3digo abierto<\/p>\n<p>Instalaci\u00f3n<br \/>\nRequerido.<br \/>\nNo es necesario, ya que es una funci\u00f3n integrada de la plataforma GitLab.<\/p>\n<p>Caracter\u00edsticas \u00fanicas<br \/>\nSoporte para plugins.<br \/>\nIntegraci\u00f3n profunda en el sistema de control de versiones.<\/p>\n<p>Soporte<br \/>\nNo disponible.<br \/>\nDisponible.<\/p>\n<p>Instalaci\u00f3n y configuraci\u00f3n<br \/>\nNo presenta dificultades<br \/>\nNo presenta dificultades<\/p>\n<p>Despliegue aut\u00f3nomo del sistema<br \/>\nEsta es la \u00fanica forma de utilizar el sistema.<br \/>\nEs compatible.<\/p>\n<p>Creaci\u00f3n de pipelines CI\/CD<br \/>\nCompatible, utiliza Jenkins Pipeline.<br \/>\nEs compatible.<\/p>\n<p>Monitoreo del rendimiento de aplicaciones<br \/>\nNo disponible.<br \/>\nDisponible.<\/p>\n<p>Ecosistema<br \/>\nExisten m\u00e1s de 1000 plugins.<br \/>\nEl sistema se desarrolla dentro de GitLab.<\/p>\n<p>API<br \/>\nSoporta un sistema de API avanzado.<br \/>\nOfrece API para una integraci\u00f3n m\u00e1s profunda en los proyectos.<\/p>\n<p>Soporte para JavaScript<br \/>\nDisponible.<br \/>\nDisponible.<\/p>\n<p>Integraci\u00f3n con otras herramientas<br \/>\nSoporta la integraci\u00f3n con otras herramientas y plataformas (Slack, GitHub).<br \/>\nNumerosos medios para la integraci\u00f3n con sistemas externos, especialmente con GitHub y Kubernetes.<\/p>\n<p>Control de calidad del c\u00f3digo<br \/>\nSoportado \u2014 a trav\u00e9s del plugin SonarQube y otros plugins.<br \/>\nEs compatible.<\/p>\n<p><\/p>\n<h2>Diferencias entre Jenkins y GitLab CI\/CD<\/h2>\n<p>\nHabiendo descrito y comparado Jenkins y GitLab CI\/CD, centr\u00e9monos en las diferencias entre estas herramientas DevOps. Conocer estas diferencias permitir\u00e1 a quienes prefieren una de estas herramientas sobre la otra.<\/p>\n<ul>\n<li>GitLab CI\/CD puede controlar completamente los repositorios Git. Se refiere al manejo de ramas de los repositorios y algunas otras capacidades. Por otro lado, Jenkins, aunque tambi\u00e9n puede trabajar con repositorios, no ofrece el mismo nivel de control que GitLab CI\/CD.<\/li>\n<li>Jenkins es un proyecto de c\u00f3digo abierto gratuito. Quien lo elige, lo despliega por su cuenta. En cambio, GitLab CI\/CD est\u00e1 incluido en la plataforma GitLab, siendo una soluci\u00f3n lista para usar.<\/li>\n<li>GitLab CI\/CD apoya herramientas de gesti\u00f3n de tareas avanzadas que funcionan a nivel de proyectos. Este aspecto de Jenkins est\u00e1 menos desarrollado.<\/li>\n<\/ul>\n<p><\/p>\n<h2>Jenkins y GitLab CI\/CD: fortalezas y debilidades<\/h2>\n<p>\nAhora tiene una idea general de Jenkins y GitLab CI\/CD. Para que conozca mejor estas herramientas, analicemos sus fortalezas y debilidades. Esperamos que ya haya tomado una decisi\u00f3n sobre cu\u00e1l herramienta necesita. Confiamos en que esta secci\u00f3n le permitir\u00e1 autoevaluarse.<\/p>\n<h3>\u258dFortalezas de Jenkins<\/h3>\n<p><\/p>\n<ul>\n<li>Gran cantidad de plugins.<\/li>\n<li>Control total sobre la instalaci\u00f3n de la herramienta.<\/li>\n<li>Depuraci\u00f3n sencilla de los runners.<\/li>\n<li>Configuraci\u00f3n sencilla de nodos.<\/li>\n<li>Despliegue simple de c\u00f3digo.<\/li>\n<li>Un muy buen sistema de gesti\u00f3n de credenciales.<\/li>\n<li>Flexibilidad y versatilidad.<\/li>\n<li>Soporte para varios lenguajes de programaci\u00f3n.<\/li>\n<li>El sistema es intuitivamente comprensible.<\/li>\n<\/ul>\n<p><\/p>\n<h3>\u258dDesventajas de Jenkins<\/h3>\n<p><\/p>\n<ul>\n<li>Pueden surgir dificultades al usar complementos.<\/li>\n<li>En proyectos peque\u00f1os, el tiempo necesario para configurarlo por s\u00ed mismo puede ser injustificadamente alto.<\/li>\n<li>Falta de informaci\u00f3n anal\u00edtica general sobre las cadenas CI\/CD.<\/li>\n<\/ul>\n<p><\/p>\n<h3>\u258dVentajas de GitLab CI\/CD<\/h3>\n<p><\/p>\n<ul>\n<li>Buena integraci\u00f3n con Docker.<\/li>\n<li>Escalado simple de runners.<\/li>\n<li>Ejecuci\u00f3n paralela de tareas dentro de las etapas del pipeline CI\/CD.<\/li>\n<li>Uso de un modelo de grafo ac\u00edclico orientado para configurar las relaciones entre tareas.<\/li>\n<li>Alto nivel de escalabilidad gracias a la posibilidad de ejecuci\u00f3n paralela de runners.<\/li>\n<li>Facilidad para a\u00f1adir tareas.<\/li>\n<li>Resoluci\u00f3n simple de conflictos.<\/li>\n<li>Sistema de seguridad confiable.<\/li>\n<\/ul>\n<p><\/p>\n<h3>\u258dDesventajas de GitLab CI\/CD<\/h3>\n<p><\/p>\n<ul>\n<li>Para cada tarea hay que describir y cargar\/exportar artefactos.<\/li>\n<li>No se pueden probar los resultados de la fusi\u00f3n de ramas antes de la fusi\u00f3n real.<\/li>\n<li>Al describir las etapas del pipeline CI\/CD, no se pueden definir a\u00fan fases separadas.<\/li>\n<\/ul>\n<p><\/p>\n<h2>Resultados<\/h2>\n<p>\nTanto Jenkins como GitLab CI\/CD tienen fortalezas y debilidades. La elecci\u00f3n depende de las necesidades y caracter\u00edsticas del proyecto concreto. Cada una de las herramientas CI\/CD discutidas hoy tiene caracter\u00edsticas particulares, aunque est\u00e1n dise\u00f1adas para resolver la misma tarea. Jenkins es una herramienta aut\u00f3noma, mientras que GitLab CI\/CD es parte de una plataforma destinada a la colaboraci\u00f3n en c\u00f3digo.<\/p>\n<p>Al elegir un sistema CI\/CD, es importante considerar no solo sus capacidades, sino tambi\u00e9n los costos asociados y la familiaridad de los ingenieros DevOps con las herramientas.<\/p>\n<p>\u00bfQu\u00e9 herramientas CI\/CD utilizas?<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"http:\/\/ruvds.com\/ru-rub?utm_source=habr&amp;utm_medium=article&amp;utm_campaign=perevod&amp;utm_content=bitva_jenkins_i_gitlab_ci_cd#order\"><img decoding=\"async\" alt=\"La batalla entre Jenkins y GitLab CI\/CD\" src=\"\/wp-content\/uploads\/2020\/10\/cc25a9353b43773d11028a7a2caf96f1.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"http:\/\/ruvds.com\/ru-rub\/news\/read\/123?utm_source=habr&amp;utm_medium=article&amp;utm_campaign=perevod&amp;utm_content=bitva_jenkins_i_gitlab_ci_cd\"><img decoding=\"async\" alt=\"La batalla entre Jenkins y GitLab CI\/CD\" src=\"\/wp-content\/uploads\/2020\/10\/efaafe7301c2f6a2fb00a22e7a0fa41a.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><br \/>\n<br \/>Fuente: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/ruvds\/blog\/522334\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0435 \u0434\u0435\u0441\u044f\u0442\u0438\u043b\u0435\u0442\u0438\u0435 \u0434\u043e\u0441\u0442\u0438\u0433\u043d\u0443\u0442\u044b \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0443\u0441\u043f\u0435\u0445\u0438 \u0432 \u0441\u0444\u0435\u0440\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u043d\u0435\u043f\u0440\u0435\u0440\u044b\u0432\u043d\u043e\u0439 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438 (Continuous Integration, CI) \u0438 \u043d\u0435\u043f\u0440\u0435\u0440\u044b\u0432\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f (Continuous Delivery, CD). \u0420\u0430\u0437\u0432\u0438\u0442\u0438\u0435 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0439 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0438 \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0430\u0446\u0438\u0438 \u041f\u041e (Development Operations, DevOps) \u043f\u0440\u0438\u0432\u0435\u043b\u043e \u043a \u0431\u044b\u0441\u0442\u0440\u043e\u043c\u0443 \u0440\u043e\u0441\u0442\u0443 \u0441\u043f\u0440\u043e\u0441\u0430 \u043d\u0430 CI\/CD-\u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b. \u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e \u0443\u043b\u0443\u0447\u0448\u0430\u044e\u0442\u0441\u044f, \u0441\u0442\u0440\u0435\u043c\u044f\u0441\u044c \u0438\u0434\u0442\u0438 \u0432 \u043d\u043e\u0433\u0443 \u0441\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c, \u0432\u044b\u0445\u043e\u0434\u044f\u0442 \u0438\u0445 \u043d\u043e\u0432\u044b\u0435 \u0432\u0435\u0440\u0441\u0438\u0438, \u0432 \u043c\u0438\u0440\u0435 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044f [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":96162,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-96161","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0412 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0435 \u0434\u0435\u0441\u044f\u0442\u0438\u043b\u0435\u0442\u0438\u0435 \u0434\u043e\u0441\u0442\u0438\u0433\u043d\u0443\u0442\u044b \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0443\u0441\u043f\u0435\u0445\u0438 \u0432 \u0441\u0444\u0435\u0440\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u043d\u0435\u043f\u0440\u0435\u0440\u044b\u0432\u043d\u043e\u0439 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438 (Continuous Integration, CI) \u0438 \u043d\u0435\u043f\u0440\u0435\u0440\u044b\u0432\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f (Continuous Delivery, CD).\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/bitva-jenkins-i-gitlab-ci-cd\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"es_ES\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0411\u0438\u0442\u0432\u0430 Jenkins \u0438 GitLab CI\/CD | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0412 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0435 \u0434\u0435\u0441\u044f\u0442\u0438\u043b\u0435\u0442\u0438\u0435 \u0434\u043e\u0441\u0442\u0438\u0433\u043d\u0443\u0442\u044b \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0443\u0441\u043f\u0435\u0445\u0438 \u0432 \u0441\u0444\u0435\u0440\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u043d\u0435\u043f\u0440\u0435\u0440\u044b\u0432\u043d\u043e\u0439 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438 (Continuous Integration, CI) \u0438 \u043d\u0435\u043f\u0440\u0435\u0440\u044b\u0432\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f (Continuous Delivery, CD).\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/bitva-jenkins-i-gitlab-ci-cd\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-10-08T17:42:48+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-10-08T17:42:48+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Batalla entre Jenkins y GitLab CI\/CD | ProHoster","description":"En la \u00faltima d\u00e9cada se han logrado avances significativos en el desarrollo de herramientas de integraci\u00f3n continua (Continuous Integration, CI) y entrega continua (Continuous Delivery, CD).","canonical_url":"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/bitva-jenkins-i-gitlab-ci-cd","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"es_ES","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0411\u0438\u0442\u0432\u0430 Jenkins \u0438 GitLab CI\/CD | ProHoster","og:description":"\u0412 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0435 \u0434\u0435\u0441\u044f\u0442\u0438\u043b\u0435\u0442\u0438\u0435 \u0434\u043e\u0441\u0442\u0438\u0433\u043d\u0443\u0442\u044b \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0443\u0441\u043f\u0435\u0445\u0438 \u0432 \u0441\u0444\u0435\u0440\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u043d\u0435\u043f\u0440\u0435\u0440\u044b\u0432\u043d\u043e\u0439 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438 (Continuous Integration, CI) \u0438 \u043d\u0435\u043f\u0440\u0435\u0440\u044b\u0432\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f (Continuous Delivery, CD).","og:url":"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/bitva-jenkins-i-gitlab-ci-cd","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-10-08T17:42:48+00:00","article:modified_time":"2020-10-08T17:42:48+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"96161","title":null,"description":null,"keywords":null,"keyphrases":{"focus":[],"additional":[]},"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 10:51:00","updated":"2026-08-11 12:50:09","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts\/96161","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/comments?post=96161"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts\/96161\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/media\/96162"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/media?parent=96161"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/categories?post=96161"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/tags?post=96161"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}