Bamboo vs Jenkins: ¿Qué herramienta de CI/CD usar?
On octubre 7, 2021 by adminHoy en día es imposible hablar de desarrollo de software sin hablar de DevOps, y la Integración Continua y la Entrega Continua son puntos importantes a tener en cuenta, ya que sus mejores prácticas pueden resultar en mejores planes de despliegue, menos errores en tus lanzamientos y una retroalimentación más rápida de tus procesos.
¿Cuál es la mejor manera de tener actualizaciones constantes y lanzar versiones fiables? ¿Qué herramientas debería utilizar? Estas preguntas llevan a muchos equipos a buscar una comparación entre Bamboo y Jenkins; al fin y al cabo, ¿no es esa la razón por la que estás en esta página?
Echaremos un vistazo en profundidad a Bamboo y Jenkins de Atlassian y definiremos algunos de los diferenciadores como herramienta de Integración Continua.
Integración Continua de Bamboo
En 2007, Atlassian anunció la primera versión de Bamboo para saltar a este nicho emergente del mercado. Lo que Bamboo aporta es una poderosa combinación de organización, flexibilidad, fácil interfaz gráfica de usuario y metodologías de CI/CD para ofrecer una gran experiencia mientras creas tus planes de construcción y despliegue. El objetivo principal de Atlassian Bamboo es ayudar a que tu entrega de software sea flexible y fuerte (casi irrompible) como un bambú.
Bamboo tiene lugar desde el código hasta el despliegue:
Aquí puedes ver cómo organizar tus builds a través de una estructura bien definida. En Bamboo creas planes (de construcción o de despliegue), luego estableces Etapas, Trabajos y Tareas – todo muy flexible y fácil de configurar a través de la UI.
Dentro de tu Plan, puedes tener múltiples Etapas. Según la documentación de Atlassian, cada Etapa:
- «Tiene un solo Trabajo por defecto, pero puede utilizarse para agrupar múltiples Trabajos,
- Procesa sus Trabajos en paralelo, en múltiples agentes (cuando estén disponibles),
- Debe completar con éxito todos sus Trabajos antes de que la siguiente etapa del plan pueda ser procesada,
- Puede producir artefactos que pueden estar disponibles para ser utilizados por una Etapa posterior.»
Debajo de las Etapas, tienes los Trabajos, que son un grupo de Tareas (sus elementos centrales a ejecutar). Según la documentación de Atlassian, un Job:
- «Procesa una serie de una o más Tareas que se ejecutan secuencialmente en el mismo agente,
- Controla el orden en que se realizan las Tareas,
- Recoge los requisitos de las tareas individuales del Trabajo, para que estos requisitos puedan coincidir con las capacidades del agente,
- Define los artefactos que la construcción producirá,
- Sólo puede utilizar artefactos producidos en una Etapa anterior,
- Especifica cualquier etiqueta con la que el resultado de la construcción o los artefactos de la construcción serán etiquetados.»
Bamboo se fortalece con su integración incorporada con otras herramientas de Atlassian, como Jira Software y Bitbucket Server. Puedes obtener visibilidad sobre los cambios de código, los resultados de la compilación y los detalles de los despliegues en todas las plataformas.
Para un uso intensivo, puedes aprovechar los agentes de compilación remotos, incluidos los agentes de compilación elásticos (Amazon EC2), de modo que tengas compilaciones distribuidas en varios servidores, reduciendo el tiempo de espera.
Las características principales incluyen:
- Integración de Jira Software y Bitbucket Server para la visibilidad de extremo a extremo en la implementación de la liberación, la calidad y el estado.
- Envíe un flujo continuo de construcciones a los entornos de prueba y libere automáticamente las construcciones a los clientes.
- Gestión de agentes de construcción elástica que le permite escalar la capacidad de construcción mediante la conexión de servidores en su red utilizando Amazon EC2. Puede visualizar los requisitos del sistema para cada compilación con la función de matriz de agentes, lo que le permite asignar las compilaciones a los agentes adecuados.
- Fusión automatizada entre ramas de Git y Mercurial.
- Solo con el nombre de la rama, puede detectar, compilar, probar y fusionar ramas de forma automática para desplegar el código de forma continua en los servidores de producción o de preparación.
- El soporte y los recursos están disponibles para los equipos empresariales. «
Los detalles técnicos sobre las plataformas soportadas incluyen:
- Bamboo se ejecuta en Java (actualmente soporta Java 1.8)
- OS soportados: Microsoft Windows, Linux, Solaris, y MacOS / OSX
- Bases de datos soportadas: Mysql, Postgres, SQL Server y Oracle
- Navegadores web compatibles: Firefox, Chrome, Safari, Microsoft Edge e IE 11
- Repositorio de fuentes: GIT, Mercurial, Subversion y Perforce
- Docker para Mac / Linux (17 o posterior)
Integración continua Jenkins
Lanzada por primera vez en 2004 (antes llamada Hudson), Jenkins es una de las herramientas de CI más populares que existen. Siguiendo la misma idea de Bamboo, aborda las metodologías de CI/CD para permitir a los equipos construir, probar y desplegar software de calidad.
Jenkins es una aplicación gratuita de código abierto. Tiene una enorme comunidad que ayuda a mantener y mejorar la aplicación y su ecosistema. Una de sus ventajas es que cuenta con cientos de plugins, que permiten a los clientes dar forma a Jenkins para satisfacer casi cualquier proceso de CI/CD deseado.
Este es un ejemplo de un escenario que se puede lograr con Jenkins:
Las características principales incluyen:
- «Integración continua y entrega continua.
- Fácil instalación.
- Fácil configuración.
- Cientos de plugins
- Extensible a través de su arquitectura de plugins
- Puede distribuir fácilmente el trabajo a través de múltiples máquinas, ayudando a conducir construcciones, pruebas y despliegues a través de múltiples plataformas.
Jenkins también tiene características incorporadas como scripting directamente en la interfaz de usuario para crear/actualizar tareas/pipelines. Existe una versión en la nube.
Aquí hay un ejemplo de un Jenkinsfile
usando la sintaxis de Declarative Pipeline (las definiciones se pueden encontrar en el enlace anterior).
Los detalles técnicos sobre las plataformas soportadas incluyen:
- OS soportados: Microsoft Windows, Linux, Solaris y MacOS
- Navegadores web compatibles: Firefox, Chrome, Safari, Microsoft IE 11
- Repositorio de fuentes: CVS y Subversion, soporte incorporado para Git, y también se integra con un gran número de otros sistemas de control de versiones a través de plugins.
- Se puede instalar como un Docker Container
Bamboo vs. Jenkins: La comparación
Ambas aplicaciones son muy potentes y ofrecen una serie de características:
BAMBOO |
JENKINS |
|
---|---|---|
Construyeen los flujos de trabajo de bifurcación de Git |
soportados |
x |
Built-en el despliegue Proyectos |
soportados |
x |
Integración en Jira Software |
soportados |
x |
Integración-en la integración de Bitbucket Server |
soportada |
x |
APIs REST |
soportada |
soportadas |
Automatización de pruebas |
soportadas |
a través de plugins |
Facilidad de permisos de grado empresarialpermisos de grado |
soportados |
mediante plugins |
G2Crowd ha creado una comparación basada en las opiniones de los usuarios para los siguientes puntos:
BAMBOO |
JENKINS |
|
---|---|---|
Cumple los requisitos | 8.8 | 8,9 |
Facilidad de uso | 8,5 | 7,8 |
Facilidad de instalación | 7.5 | 7,8 |
Facilidad de administración | 8,2 | 7.8 |
Calidad de la asistencia | 8,2 | 7,6 |
Como ambas herramientas tienen el mismo objetivo y ambas ofrecen un servicio de alta calidad, ¿cómo puede saber qué herramienta es la mejor para usted? Ten en cuenta algunos puntos:
- Jenkins es una herramienta de código abierto, mientras que Bamboo es una herramienta comercial. Jenkins es un proyecto apoyado por su comunidad global, y Bamboo tiene su propio equipo dedicado a su desarrollo.
- Bamboo tiene un enfoque más fácil de usar que Jenkins – ya que normalmente, las aplicaciones de código abierto están más preocupadas por otras características.
- Jenkins tiene un gran número de plugins para permitir a los clientes alcanzar sus objetivos, mientras que Bamboo viene con la mayoría de las características incorporadas y cuenta con cientos de plugins disponibles en Atlassian Marketplace.
- Bamboo se integra perfectamente con la suite de Atlassian, ofreciendo una gran experiencia si ya estás usando Jira Software y Bitbucket.
- Jenkins y Bamboo tienen una gran documentación online, ofreciendo a los clientes la opción de investigar y encontrar una solución antes de llegar al soporte para obtener ayuda.
- Bamboo tiene un gran soporte profesional disponible para los clientes con licencia, así como documentación online y ayuda de la comunidad de Atlassian. Jenkins tiene soporte de la comunidad y se puede obtener soporte profesional de Cloudbees.
- Bamboo es una herramienta de pago y el precio depende de su uso, basado en cuántos agentes remotos necesitará. Jenkins es una herramienta gratuita.
Es una decisión bastante difícil de tomar, pero podemos ayudarte con esta decisión. Como Atlassian Platinum Solution Partners, podemos mostrarte todas las ventajas de usar Bamboo y cómo puede mejorar tu equipo de desarrollo para sacar el máximo partido a la integración continua con las herramientas de Atlassian. Tanto si tu equipo de desarrollo es pequeño como si se trata de una operación gigantesca con cientos de compilaciones en cola, estamos seguros de que Bamboo puede ayudar a que el software se entregue más rápido y con mayor calidad.
¿Quieres probar Bamboo? Ponte en contacto con el equipo de Valiantys, que puede ayudarte con las licencias y el despliegue.
Deja una respuesta