Documentos de Académico
Documentos de Profesional
Documentos de Cultura
2013/2014
ndice
* Introduccin
* Caractersticas
* Instalacin
* Elementos
* Agentes
* Integracin con JIRA
* Bamboo VS Jenkins
* Bibliografa
Introduccin
Bamboo es una herramienta de automatizacin que ayuda a los equipos de desarrollo
a construir, probar, desplegar, e implementar sus proyectos mediante la entrega
continua. La construccin, pruebas e implementacin de la aplicacin con frecuencia,
ayudan a capturar errores antes, y en ltima instancia, aumenta la productividad de los
desarrolladores.
En Bamboo se pueden definir procesos de construccin manuales cuando se necesite,
parametrizar los builds para simplificar la construccin sobre diferentes versiones de
cdigo y permite el despliegue en distintos entornos.
Ventajas:
Caractersticas
Instalacin
Plataformas soportadas
S.O.
Microsoft Windows
Linux/Solaris
Apple Mac OS X
Servidores de aplicaciones
Apache tomcat
Repositorios fuentes
Mercurial
Subversion
Git
Perforce
CVS
Java
Oracle JDK
OpenJDK
Bases de datos
MySQL
PostgreSQL
Microsoft SQL Server
Oracle
HSQLDB
Directorio inicial Bamboo - Este es el directorio donde Bamboo almacenar sus datos
de configuracin. Si el directorio que especifica no existe, Bamboo crear el directorio
cuando se lance. El valor por defecto es:
C :/ Documents and Settings / <current-user> / Bamboo home
Iniciar Bamboo
En un terminal, ejecutar este comando:
Elementos
La unidad bsica de Bamboo se llama Plan.
Tareas
Las tareas son los bloques de construccin bsicos de los builds automatizados de
Bamboo. En Las tareas se puede:
Por el contrario, las tareas que son independientes entre s, se pueden poner
en Jobs separadas por lo que se ejecutan en paralelo.
Jobs
Los Jobs contienen una lista de las tareas que se ejecutan en agentes de
compilacin. Estos agentes pueden estar en la misma mquina que el servidor de
Bamboo(agentes locales), en una mquina diferente de la red (agentes remotos), o en
el Amazon Elastic Compute Cloud (agentes elsticos).
Los Jobs dentro de un Stage determinado se ejecutarn en paralelo, siempre y cuando
haya agentes disponibles para ejecutarlos.
De lo contrario, las tareas se ejecutan de una en una sin ningn orden en
particular. Bamboo no iniciar la ejecucin de Jobs en la siguiente etapa hasta que
todos los trabajos en la etapa actual se han completado con xito.
Etapas
Los Stages permiten controlar el flujo de ejecucin de trabajos. Proporcionan una
forma de encapsular los Jobs independientes que se pueden ejecutar en paralelo, es
decir, una manera de garantizar que las tareas con dependencias se realizan en el
orden que se especifique.
Los Stages hacen ms sencillo dividir la automatizacin de builds en mltiples pasos
como la compilacin, prueba y despliegue. Esto puede ser usado para asegurar que las
pruebas de integracin costosas slo se ejecutan despus de que pasan una rpida
ejecucin de pruebas unitarias.
Los Jobs en la siguiente fase no comenzarn a ejecutarse hasta que todos se hayan
completado con xito en la etapa anterior.
Cualquier Stage se puede definir que se ejecute de forma manual. Con esto se puede
configurar una nica compilacin, sin llegar a la implementacin en la produccin de
cada build.
Bamboo construir todas las etapas precedentes, y luego detendr la construccin en
la etapa manual y enviar las notificaciones correspondientes.
Plan
Un Plan define todo el proceso de construccin. Es un contenedor para todas las
etapas, sus trabajos y tareas. Cuando se crea un Plan, creamos una clave nica, se
indica el repositorio donde se extrae el cdigo, se construye cada entrega, los
intervalos programados, etc.
En el Plan se establecen los valores predeterminados globales como los permisos,
notificaciones, criterio de construccin y variables.
Incluye una caracterstica llamada Plan Branches. Bamboo recibe los nuevos branches
de nuestro repositorio y crea el Plan Branches automticamente (Git y Mercurial).
Agentes
Los Agentes son las mquinas que realizan los pasos de construccin. Cualquier
mquina que se pueda conectar a Bamboo puede servir como un agente.
Los agentes estn ligados a los jobs, por lo que todo el job se ejecuta en el mismo
agente.
Como los agentes son las mquinas que ejecutan los builds, estos tienen una mayor
disposicin para ejecutar la construccin en paralelo.
Para agregar un agente local, Administration > Build Resources > Agents, El nuevo
agente heredar todas las capacidades del servidor de Bamboo (JDK, Maven, etc ..), y
se pueden configurar otras nuevas en la parte inferior de la pgina.
Los agentes remotos tienen la vigencia del hardware que est dentro de su red, pero
no el del mismo servidor que su propia instancia de Bamboo.
Para agregar un agente remoto, Administration > Build Resources > Agents y hacer
click en el botn Install Remote Agent.
Los agentes elsticos son agentes remotos que se ejecutan en instancias de Amazon
EC2. Bamboo puede solicitar agentes elsticos cuando los necesitamos y
automaticamente cerrarlos cuando detectan inactividad.
Para dar de alta agentes elsticos se introducen las credenciales de la cuenta de AWS
en Administration > Elastic Bamboo > Configuration.
Cuando una build se rompe, Bamboo nos proporciona una serie de los logs de la
compilacin y los resultados de los test, a partir de los cuales tenemos que crear las
incidencias correspondientes.
Mediante la gestin de despliegue es posible, no solo mantener control sobre el
estado del proyecto a travs de la integracin continua sino que adems realiza
despliegues en distintos entornos.
Enlazado con JIRA puede automatizar la construccin y despliegue desde la versin de
proyecto en JIRA.
Bamboo nos permite, directamente desde la build y a partir de los proyectos y tipos de
incidencia que tengamos en JIRA, crear y asignar tareas a los usuarios de nuestro
sistema. Seleccionamos nuestro proyecto, tipo de incidencia, y aadimos una
descripcin a partir de los logs y tests de la build.
Bamboo VS Jenkis
Tanto Jenkins como Bamboo soportan mltiples herramientas de construccin que
estn disponibles hoy en da, como Maven , Ant , Make, etc. Bamboo permite ambos,
Maven2 y Maven3 . Tambin podemos ejecutar varios proyectos con diferentes
versiones de Maven, al mismo tiempo. Jenkins tambin tiene el mismo apoyo, donde
podemos especificar diferentes repositorios Maven locales para diferentes
formaciones. Esta es una importante ventaja que estas herramientas
proporcionan. Otro punto a tener en cuenta es que slo tenemos que dar la ubicacin
del repositorio fuente del proyecto al crear una nueva compilacin, a continuacin,
tanto Jenkins como Bamboo buscarn los archivos fuente. Estas dos herramientas dan
apoyo a casi todas las VCS disponibles, como Git , Subversion , etc Tambin podemos
especificar algunos parmetros adicionales en la definicin de una nueva construccin,
tales como la memoria java heap, parmetros opcionales maven (MVN_OPTS), de
modo que podamos asignar y cumplir los requisitos.
Bamboo tiene una interfaz de usuario ms agradable en comparacin con Jenkins,
pero estas dos herramientas proporcionan casi la misma funcionalidad. Algunas de las
ventajas que podemos encontrar es que, dado que Bamboo es un producto de
Atlassian, la integracin de seguimiento de incidencias con JIRA y la herramienta de
cobertura de cdigo, se hace fcil con Bamboo. Jenkins tiene un conjunto de plugins
para crear dashboard como vista para cada construccin. Podemos aadir varios
gadgets para este panel, que puede mostrar las estadsticas de una acumulacin o una
agregada particular para todas las generaciones.
Bamboo dispone de despliegues automticos con Tomcat y scripts, con la opcin de
configurar cada paso del pipeline usando la interfaz grfica. Facilidad para la
configuracin de los agentes de build. Divide la ejecucin de los jobs en etapas
(stages), lo que facilita an ms la gestin del flujo de tus builds. Detecta
automticamente las nuevas ramas en el repositorio y replica los planes y los conecta a
la nueva lnea.
Por ltimo, bajo mi punto de vista, estas dos herramientas son semejantes cuando se
comparan entre s en la funcionalidad inteligente. La eleccin depender de la
necesidad y los requisitos en cuestin.
Bibliografia
https://quickstart.atlassian.com
https://confluence.atlassian.com
http://es.wikipedia.org/wiki/Atlassian
https://www.atlassian.com