Tl; dr. Jenkins si tiene un presupuesto limitado y solo necesita una integración continua simple; Bamboo, si tiene un poco más de dinero para gastar y desea hacer una entrega / implementación continua.
Utilicé a Jenkins durante muchos años, y aún lo recomendaría a cualquiera para quien la Integración Continua simple sea suficiente. Donde comencé a toparme con las limitaciones de Jenkins fue en el punto en el que quería evolucionar más allá de la Integración Continua hacia la Entrega Continua.
En 2013, la vista de Jenkins de las tuberías era absolutamente horrible … nunca fue fácil ver la estructura de una tubería de un vistazo; lo mejor que obtendrías es una representación visual después de que se haya ejecutado. Además, aunque podría expandirse con relativa facilidad, no había una manera igualmente fácil de volver a incorporarse, un componente clave de las tuberías de entrega continua. Luego vino el plugin experimental “Flow”, un proyecto de MIT con soporte informal que le permitió “codificar” tuberías en secuencias de comandos de estilo groovy. Personalmente, me encantó esto, pero ninguno de nuestros desarrolladores estaba dispuesto a dominarlo, por lo que terminamos teniendo que formar un equipo de “autores de canalizaciones” para respaldar al equipo de desarrollo. Gran trabajo si puedes conseguirlo, supongo.
A finales de 2014, asistí a una presentación del mismo Kohsuke en Cloudbees Jenkins y, he aquí, uno de los puntos de venta de esta versión tan cara de Jenkins fue el “Workflow Plugin” que se parecía mucho al “Flow Plugin”. Yo había utilizado anteriormente. Nuevamente, el diseño es tal que usted diseña la tubería en un guión maravilloso, pero solo obtiene una representación visual * después * de ejecutar dicha tubería. Peor aún, con todo el dinero de esta licencia, el 95% del producto de Jenkins que usaríamos era el mismo producto OpenSource que puede obtener gratis … con todos sus defectos. Aún depende en gran medida de los complementos desarrollados y mantenidos por los aficionados … el soporte para dichos complementos es extremadamente variable, y no hay garantía de que los complementos sean compatibles entre sí. Tuvimos muchos problemas en los que queríamos actualizar el núcleo, pero descubrimos que algunos complementos se rompieron … o incluso necesitábamos actualizar un único complemento para obtener una solución, solo para encontrar que la actualización rompió varias características en los otros complementos de los que dependíamos .
Ahora, Bamboo no es en absoluto perfecto, y tiene una serie de limitaciones, pero sus beneficios clave (en mi opinión y experiencia) son:
- Interfaz de usuario sencilla e intuitiva de arrastrar y soltar para diseñar tuberías, basada en las mismas tareas, trabajos y principios de la entrega continua. Ventilar hacia fuera / adentro es trivial.
- Deshabilitar / reordenar temporalmente una Etapa, Trabajo o Tareas es trivial. Los trabajos se pueden arrastrar / soltar entre Etapas, Las etapas y Las tareas se pueden arrastrar / soltar para reordenar, con advertencias emergentes si lo que está a punto de hacer no tiene sentido.
- También es posible encadenar tuberías, aunque no sea tan resbaladizo como GoCD; sin embargo, admitiré fácilmente que este es uno de los puntos más débiles de Bamboo.
- Un administrador de implementación independiente, en el que puede administrar fácilmente los entornos de implementación, hacer un seguimiento de lo que ha liberado y dónde, y la trazabilidad completa desde un lanzamiento de regreso a los compromisos Git y los problemas de JIRA que incluye.
- Detecta automáticamente nuevas sucursales y las construye. Incluso es posible (aunque a través de un complemento muy económico) que la misma tubería se comporte de manera diferente en una construcción de rama.
- Los artefactos de construcción se gestionan automáticamente a través de cada ejecución de canalización, hasta el despliegue; No es necesario escenificar artefactos en un repositorio externo.
- La integración con otros productos de Atlassian es, como usted esperaría, muy superior a otras combinaciones que pueda imaginar.
Realmente queríamos que los desarrolladores de sistemas estuvieran encantados de usarlo, con un mantenimiento mínimo. 2 años después, todavía tengo que escuchar una crítica de bambú. Donde hemos encontrado limitaciones, hemos encontrado a Atlassian extremadamente útil en soluciones de sugerencias.
Yo todavía no he experimentado Jenkins 2.0, pero he recibido comentarios mixtos de otros profesionales independientes. También tengo en cuenta que el Radar de tecnología de Thoughtworks clasifica a Jenkins (incluido 2.0) “Hold”, que significa “Continuar con precaución”. La explicación de por qué suena ciertamente cierta para mí: Technology Radar | Tendencias de las tecnologías emergentes para 2016 | ThoughtWorks
Finalmente … ¿seguiría eligiendo Bamboo, dados los excelentes recién llegados recientes a la escena de la entrega continua? Posiblemente no; sin embargo, cualquier herramienta de reemplazo no debe requerir una torre de marfil separada de “Administradores de construcción” que actúa como un cuello de botella en el proceso de desarrollo.