Vous êtes sur la page 1sur 17

Ampliacin de Ingeniera del Software

2013/2014

MIGUEL NGEL MARTN ROMERO

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:

Aadir "puertas" a la canalizacin, que supone un control total de cuando se ejecutan


los siguientes pasos.

Utilizacin de un esquema de la integracin continua en todas sus ramas activas,


evitando errores nuevos que se introduzcan en la lnea de cdigo principal.

Enlace con JIRA cuando se construye en Bamboo (y viceversa)

Integracin con herramientas de 3 parte para despliegue.


Todas estas cosas se combinan para hacer de la Integracin Continua con bamb, ms
fcil de configurar y administrar.

Caractersticas

Sistema automatizado para los procesos de construccin y de prueba, no


dependiendo de un entorno local especfico.
Despliegue automtico a un servidor, como App Store o Google Play.
Optimiza el rendimiento de construccin a travs de paralelismo.
Cuando una build se rompe, es posible notificar va correo electrnico,
mensajera instantnea, RSS, tu propio IDE o mediante radiadores de
informacin.
Usa Wallboards para propagar la informacin proporcionando herramientas e
informacin que permitan tomar decisiones a tiempo.
Muestra informacin detallada sobre los errores y cambios incluidos mediante
trazas en la construccin, errores en los tests y diferencias en el cdigo.

El esquema muestra la arquitectura de cmo trabaja Bamboo. Los desarrolladores


(developers) envan los commits a un repositorio fuente (source repository). El
servidor de integracin continua (Bamboo), trae el cdigo fuente del repositorio y lleva
a cabo la compilacin, corre los test, genera los paquetes y genera el proceso de
construccin. En el servidor web, despliega la aplicacin.

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

Comprobar versin de Java


En smbolo del sistema, ejecutar el siguiente comando:
Java -version

La versin de Java debe ser 1.6.0 o superior.

Comprobar que Windows puede encontrar Java


Bamboo utiliza la variable de entorno JAVA_HOME para encontrar Java. Aadir la
variable de entorno al sistema.

Descargar la versin ms reciente de Bamboo

Iniciar el instalador de Windows de Bamboo para iniciar el asistente de instalacin.

El programa de instalacin requiere que se especifique dos carpetas:

El directorio de destino - Este es el directorio donde se instalarn los archivos de la


aplicacin de Bamboo. El valor por defecto es:
C :/ Archivos de programa / Bamboo

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

Se debe especificar una variable de entorno 'BAMBOO_HOME' que especifica la ruta


absoluta a BAMBOO_HOME. Bamboo comprobar si se ha definido una variable de
entorno.

Instalar los servicios de Bamboo

Iniciar Bamboo
En un terminal, ejecutar este comando:

Acceder a la instancia de Bamboo corriendo por el navegador web utilizando el puerto


8085
http://localhost:8085/

En el primer acceso, pedir la key de evaluacin que es administrada cuando nos


registramos en atlassian.

Elementos
La unidad bsica de Bamboo se llama Plan.

Los planes se componen de una o varias etapas, que se ejecutan en secuencia.

Las etapas se componen de uno o ms Jobs, que se ejecutan en paralelo.

Los trabajos se componen de una o ms tareas, que se ejecutan en secuencia.

Tareas
Las tareas son los bloques de construccin bsicos de los builds automatizados de
Bamboo. En Las tareas se puede:

Revisar el cdigo fuente.

Ejecutar secuencias de comandos y comandos en lnea

Invocar el motor de generacin, como MSBuild, Ant, Maven

Analizar su cdigo y generar informes.

Implementar el cdigo utilizando un script o una variedad de herramientas de


cdigo abierto.

Las tareas se ejecutan en secuencia dentro de su trabajo.

Al agrupar tareas mltiples en un nico trabajo, se asegura de que Bamboo se


ejecutar en el orden que especifique.

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.

Los agentes locales se ejecutan en la misma mquina. Su configuracin de baja


sobrecarga hace ms eficiente la ejecucin de Jobs 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.

Integracin con JIRA


Ventajas:

Permite centrarse en la programacin, creando incidencias de JIRA desde


cualquier pgina de resultados de compilacin en Bamboo.
Enlaza automticamente los asuntos con las configuraciones si se incluye una
clave de emisin JIRA en los comentarios.
Simplifica las tareas de administracin de Bamboo utilizando JIRA como
repositorio de usuarios de Bamboo.
Marca una versin "liberada" en JIRA y pone en marcha la versin final
desplegandola en Bamboo.

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

Vous aimerez peut-être aussi