Crea, ejecuta y gestiona aplicaciones con IBM Bluemix
Patricia Carmona Noticias 14/04/2016
A la hora de desarrollar, los programadores suelen utilizar herramientas que les faciliten o automaticen el trabajo, intentando abstraerse de cualquier tarea que interrumpa su trabajo o buscar alternativas para evitar tareas tediosas.
Con la intención de ayudar a los programadores, IBM ha creado IBM Bluemix, una plataforma en la nube basada en estándares abiertos para crear, ejecutar y gestionar aplicaciones. Con Bluemix, los desarrolladores pueden centrarse en crear una excelente experiencia del usuario con opciones de cálculo flexibles mediante una gran selección de herramientas, servicios y APIs creadas tanto por IBM como por terceros de renombre.
IBM DevOps Services
Dentro de las herramientas que integra IBM Bluemix existe una plataforma con una serie de utilidades básicas para gestionar proyectos: IBM DevOps Services.
Esta herramienta posee en su interior repositorios de código, un sistema de gestión y seguimiento de tareas o la opción de configurar un despliegue automático para el proyecto. Además, estos servicios poseen total integración con IBM Bluemix, permitiendo utilizar todo su potencial en las aplicaciones desarrolladas.
En este post se resumen las diferentes opciones que cualquier usuario puede encontrar dentro de IBM DevOps Services, así como un pequeño ejemplo de funcionamiento. Para conocer más acerca de como trabajar con esta herramienta, puedes consultar la pagina de tutoriales de IBM para la misma.
Creación de un proyecto
Para poder trabajar con IBM DevOps Services es necesario tener una cuenta de Bluemix, que se puede crear en la propia página web de la herramienta.
Para crear el proyecto hay varias opciones. Puedes crear un proyecto importándolo desde uno existente en Github o crear un nuevo proyecto desde cero. En el segundo caso, los nuevos proyectos pueden alojarse en Github o en Bluemix, que tiene la opción de crear proyectos Git o Jazz SCM. Finalmente, hay que rellenar los datos del proyecto (si es privado, donde se aloja, habilitar opciones de Scrum). Una vez completado, es el momento de empezar a gestionar el proyecto y agregar contenido.
Trabajo en equipo
Otra de las funcionalidades que tiene IBM DevOps es el llamado Track and Plan, una herramienta que permite administrar el trabajo en equipos de forma ágil.
Al entrar dentro de esta herramienta, el usuario puede encontrar un dashboard configurable en el que se muestra un resumen del estado actual del proyecto: sprint actual, velocidad del equipo, hitos futuros, etc.
La creación de tickets es sencilla. Dentro de la vista de tickets, se rellena el campo de texto y las diferentes opciones (tipo, prioridad, descripción o a quien se le asigna) y se pulsa en crear.
Los diferentes tickets creados se pueden asignar a un sprint o al backlog. Para crear un sprint hay que acceder a Planificación del Sprint y pulsar Editar Sprints. Dentro de la ventana de edición se pueden agregar todos los sprints deseados, configurando la duración y el nombre de los mismos.
Una vez creado el sprint, es el momento de empezar a modificar el mismo, agregando tickets desde el backlog a los diferentes sprints creados, asignando tareas en función de la prioridad.
Para conocer más en detalle el funcionamiento de esta herramienta, puedes leer un tutorial más detallado en https://hub.jazz.net/tutorials/trackplan/.
Añadiendo contenido
Una vez explicado cómo se gestiona el trabajo utilizando IBM DevOps, llega el momento de trabajar y empezar a escribir código.
Dentro de la herramienta hay un pequeño editor integrado, que permite realizar cambios simples de forma rápida, accesible desde la opción Edit Code del proyecto. Este IDE permite desarrollar sin necesidad de instalar nada para la gran mayoría de formatos soportados actualmente por Bluemix. Puedes ver más en detalle las opciones que ofrece en tutorial del editor.
De igual forma, también es posible trabajar con otros IDEs en función de las preferencias del usuario, interaccionando con DevOps services y Bluemix mediante consola instalando las herramientas de Bluemix Live Sync. En un tutorial de IBM se explica cómo trabajar con estas herramientas.
Además, si utilizas Eclipse como IDE, IBM ha desarrollado una serie de plugins para trabajar de forma sencilla con todas las diferentes utilidades existentes en IBM DevOps. Más adelante se explica cómo configurar y que ofrecen estos plugins.
Despliegue automático
Una vez creada la primera versión funcional de la aplicación, el objetivo es que ésta se ejecute en la nube y si el despliegue de la aplicación se hace de forma automática, facilitará el trabajo a los desarrolladores. IBM DevOps incluye la opción de realizar integración continua de los proyectos accediendo a la opción Build and Deploy del proyecto. A continuación se detalla la configuración para un proyecto implementado utilizando Java con Maven.
El primer paso es crear un paso de compilación dentro de la opción Build and Deploy pulsando el botón de añadir etapa. En este primer paso, la entrada utilizada será el repositorio de código sobre el que estamos trabajando. A continuación, hay que agregar un trabajo de compilación de tipo Maven. Como directorio de trabajo hay que poner la ruta del repositorio donde se encuentra nuestro fichero de configuración (pom.xml).
Para poder desplegar, hay que agregar varias configuraciones dentro del código del proyecto. Dentro del fichero de Maven (pom.xml) es necesario habilitar el plugin para la generación del war, agregando el plugin y su configuració como puede verse en el gist de ejemplo.
También hay que agregar el fichero manifest.yml que contiene la configuración del servidor de Bluemix sobre el que vamos a desplegar. Puedes encontrar más información en el tutorial sobre manifiestos de IBM y una plantilla base en este gist.
Una vez creadas ambas configuraciones dentro del repositorio, hay que crear la etapa de despliegue. Esta etapa tendrá como entrada el artefacto de compilación del paso anterior, obteniendo como resultado nuestra aplicación desplegada en el servidor que configuremos, que en nuestro caso es un servidor CloudFoundry dentro de IBM Bluemix.
Una vez hemos creado estas dos etapas, se puede comprobar que funcionan y que, tras finalizar, podemos utilizar nuestra aplicación en la nube.
Si dentro del proyecto existen test, IBM DevOps posee una opción para ejecutarlos y detener el despliegue en caso de fallo. Para ello, hay que habilitar en el trabajo de compilación tanto el informe de pruebas (con la ruta en la cual se está generado el fichero con los resultados de los test) como la detención de trabajo en caso de fallo.
Si quieres conocer más sobre las posibilidades que ofrece esta funcionalidad, puede consultar el tutorial de IBM en https://hub.jazz.net/tutorials/basicbuild/.
Trabajando con Eclipse
Anteriormente se ha comentado que Eclipse integra plugins para permitir trabajar con IBM DevOps directamente, sin necesidad de acceder a la herramienta web. Los dos plugins más importantes son IBM eclipse tools for bluemix y WebSphere Liberty.
Estos dos plugins agregan nuevas pestañas a nuestro IDE, las cuales nos permitirán acceder a estos servicios. De todas ellas, las más importantes son:
-Team Artifacts: nos permite visualizar los diferentes proyectos que tenemos configurados dentro de Eclipse y acceder a los repositorios, utilizar Track and Plan y demás utilidades para trabajo en equipo.
-Pending Changes: permite visualizar los diferentes repositorios importados y trabajar con ellos, así como enviar los cambios al repositorio y con ello desplegar la aplicación.
-Work Items: para buscar y trabajar sobre los tickets de Track and Plan.
-Servers: permite gestionar los diferentes servidores creados. Con los plugins se puede trabajar directamente con los servidores de IBM Bluemix y WebSphere (Liberty entre otros).
Esta pestaña permite realizar despliegues directamente en IBM Bluemix sin necesidad de utilizar el servicio de despliegue de IBM DevOps. Para ello, necesitamos crear un servidor
Conclusión
Como se ha visto a lo largo de este post, tanto IBM Bluemix como IBM DevOps Services en concreto ofrecen una gran cantidad de utilidades para facilitar el trabajo a los programadores. IBM DevOps ofrece además un conjunto de herramientas utilizadas día a día en una sola plataforma, sin necesidad de configuraciones complicadas para interaccionar entre ellas.
Si quieres conocer más sobre lo que puede ofrecer usar tanto IBM DevOps como Bluemix puedes visitar la web de DevelopersWork de IBM que contiene múltiples enlaces a contenido sobre estas plataformas, así como tutoriales para empezar a trabajar con Bluemix usando diferentes lenguajes de programación como Java, NodeJS o PHP.