bamboo - memoria

17
Ampliación de Ingeniería del Software 2013/2014 MIGUEL ÁNGEL MARTÍN ROMERO

Upload: miguel-angel-romero

Post on 09-Nov-2015

77 views

Category:

Documents


1 download

DESCRIPTION

Bamboo - Memoria

TRANSCRIPT

  • 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 / / 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