Plugin de Eclipse para TFS

En un post anterior veíamos como era posible instalar y usar el plugin de Windows Azure para Eclipse, para poder desplegar aplicaciones Java en Windows Azure de una forma relativamente sencilla.

En este post os comentaré otro plugin que nos permite trabajar con Team Foundation Server de forma sencilla desde Eclipse, para cualquier tipo de aplicación, y teniendo una experiencia prácticamente igual a la que se puede tener desde Visual Studio.

Este plugin permite trabajar tanto con un TFS propio, como la versión en la nube que podéis llegar a usar de forma gratuita desde http://tfs.visualstudio.com/ ; gestor de fuentes, sistema de integración continua, workitems, informes etc… todo en cuestión de minutos y hasta 5 usuarios de forma gratuita!!

La instalación se realizar desde la opción de instalación de nuevo software, indicando el repositorio dónde éste se encuentra.

01-TFS

02-TFS

Una vez indicado el repositorio podemos ver el plugin y proceder con la instalación.

03-TFS

04-TFS

Una vez instalado podemos añadir a la perspectiva el Team Explorer, que como veréis es prácticamente idéntico al que os podéis encontrar en Visual Studio.

05-TFS

06-TFS

Desde esta ventana podréis indicar la dirección de vuestro TFS, os podéis conectar al proyecto que queráis y empezar a trabajar con los servicios que necesitéis…subir vuestro código fuente, crear vuestras builds de integración continua, añadir vuestras historias de usuario, tareas etc…

08-TFS

09-TFS

Windows Azure Command Line Tools

Una de las principales herramientas de interoperabilidad que tenemos son las herramientas de líneas de comandos de windows Azure, las cuáles están disponibles para Windows, Linux y MAC.

Esta herramienta la podemos descargar desde el portal de Windows Azure ( http://www.windowsazure.com/en-us/manage/downloads/ ) o desde el repositorio de GitHub https://github.com/windowsazure/azure-sdk-tools-xplat 

Esta herramienta nos va a permitir realizar diferentes labores administrativas sobre los servicios de Windows Azure; máquinas virtuales, websites, mobile services etc…todo desde línea de comandos y desde cualquier sistema operativo.

Esta herramienta está hecha en node.js y lo podemos instalar desde el package manager.

npm install azure-cli –g

Eso sí, importante revisar que tenemos la versión adecuada de node.js. Por ejemplo, la versión que se instala desde el software manager de Ubuntu 12.10 instala una versión que no cumple con los requisitos mínimos, por lo que es recomendable acudir a la máquina principal de node.js ( http://nodejs.org/ ) e instalar la última release disponible, en este momento, la v.0.8.17.

Una vez instalada la herramienta, podemos ver los diferentes commandos disponibles poniendo el nombre del nombre, “azure”.

01-cli

La sintaxis sigue el siguiente formato: (los comandos cogerlos a modo de referencia ya que se van añadiendo nuevas funcionalidades de forma periódica)

5633_SyntaxDiagram_png-550x0

Una vez instalada, si queremos empezar a trabajar con nuestra subscripción, será establecer las credencial de la cuenta o cuentas de Windows Azure que queremos administrar.

Para ello podemos invocar al comando azure account download.

Abriendo esta URL desde el navegador e introduciendo las credenciales de nuestra subscripción Windows Azure nos podemos descargar un fichero que contiene toda la información de seguridad necesaria para poder administrar la subscripción.

Una vez descargado el comando azure account import <file> nos permitirá importar las credenciales y empezar a administrar la subscripción.

02-cli

Una vez tenemos las credenciales, ya podemos usar la herramienta para ver nuestros servicios, crear nuevos servicios, modificar su estado etc….

Por ejemplo, podemos administrar nuestros web sites. Con el parámetro –h podemos ver la ayuda y los comandos disponibles.

05-cli

Si queremos crear un nuevo web site, podremos hacer azure site create. Si no indicamos más parámetros, la herramienta nos pedirá la información que falta, como el datacenter o el nombre del servicio.

03-cli

Si listamos los sites veremos el nuevo site.

04-cli

06-cli

y si te interesa saber más sobre interoperabilidad, te animo a que vengas al Cloud Tour http://www.plainconcepts.com/cloudtour/

Windows Azure Store

Windows Azure dispone de un montón de funcionalidades “de serie”, pero en más de una ocasión utilizamos herramientas hechas por terceros ya sea para obtener más servicios que los que ofrece la plataforma o para disponer de nuevo funcionalidad no existente en la plataforma.

El disponer de estas herramientas no es algo nuevo, pero lo que sí es nuevo es que ahora las tenemos integradas dentro del portal de administración. Podemos disponer de un catálogo de aplicaciones, comprarlas, usarlas etc…todo desde el portal.

A través del portal de administración podemos acceder a la opción “ADD-ONS”, la cuál nos dará acceso a un catálogo de aplicaciones hechas por terceros a las cuáles podemos acceder, ya sea de forma gratuita o de pago. 

01-AppStore

 

Podemos ver herramientas de monitorización con AppDynamics o NewRelic, servicios para trabajar con MySQL, MongoDB, SendGrid….como se puede ver en las siguientes pantallas.

02-AppStore

03-AppStore

04-AppStore

 

Comentar por último, comentar que este servicio todavía no está disponible para todas las subscripciones y es posible que te encuentren con un mensaje con este…

05-AppStore

Windows Azure y Java: Afinidad de sesión

Como veíamos en un post anterior es posible trabajar de forma sencilla con Windows Azure y Java empleando el plugin de Eclipse. Vimos cómo crear una aplicación Java y cómo desplegarla junto con las versiones del JDK y Tomcat que necesita la aplicación web.

Una caso con el que habitualmente te suelen encontrar desplegando aplicaciones Java, al menos con las que yo me he encontrado, es que se necesita afinidad de sesión…que si despliego la aplicación en múltiples servidores quiero que las diferentes peticiones que se hagan desde la misma máquina se hagan siempre usando el mismo servidor.

Abro el navegador, empiezo a navegar por la aplicación y todas las peticiones de la sesión se tienen que hacer siempre usando el mismo servidor….y ¿esto lo permite por defecto Windows Azure? NO, pero hay soluciones.

Cuando hay más de una instancia de un rol desplegado en Cloud Services Windows Azure se encarga de realizar de forma automática el balanceo de carga, pero no hace un balanceo por afinidad de sesión ni nos permite establecer la configuración de cómo queremos que se comporte, es una cosa transparente para nosotros.

Para este tipo de escenarios el plugin de Eclipse dispone de una opción que nos permite indicar si queremos disponer de afinidad de sesión (sticky sessions) en la aplicación que vamos a desplegar, “tan sencillo como marcar un check”.

13-Eclipse

¿Qué hace?

Pues disponer de afinidad de sesión usando el módulo ARR (Application Request Routing) de Internet Information Server, el cuál permite disponer de afinidad por sesión.

Cuando marcamos esta opción, el plugin modificar los ficheros de arranque del proyecto de Windows Azure para que se instale el módulo de ARR en las instancias que desplegamos. El módulo de ARR se puede instalar por línea de comandos de forma sencilla, utilizando el Microsoft Web Platform Installer.

Cuando no tenemos esta opción activada, cuando realizamos una petición a la aplicación el balanceador de Windows Azure decide el servidor que tiene que atender la petición y se la envía directamente al Tomcat que tenemos desplegado en la máquina, en el puerto que tengamos configurado.

Cuando activamos la opción, el módulo de ARR de IIS se pone por medio. El balanceador manda las peticiones al servidor que él considera, pero estas peticiones le llega al ARR y éste la redirecciona de nuevo al servidor Tomcat que toque teniendo en cuenta la afinidad de sesión.

Esto se consigue poniendo el IIS y el Tomcan el puerto diferentes, por ejemplo el IIS en el puerto 80 y el Tomcat en el 8080. Windows Azure manda todas las peticiones al puerto 80, el módulo de ARR decide qué servidor tiene que tratar la petición y lo redirecciona por el puerto 8080 para que le llegue al Tomcat…eso sí, el ARR en su lógica de decisión mantiene la afinidad de sesión.

Claro está, esto no es una cosa propia de aplicaciones Java, pero en este plugin de Eclipse está bastante bien solucionado, mejor incluso que Visual Studio dónde no tenemos esta opción.

Eso sí, si queremos hacer aplicaciones escalables, es mejor evitar siempre la afinidad de sesión, no es una buena práctica.

PD: y si te interesa saber más sobre interoperabilidad, te animo a que vengas al Cloud Tour http://www.plainconcepts.com/cloudtour/

Windows Azure, Java y Eclipse

Como ya he comentado en más de una ocasión Windows Azure es una plataforma abierta para trabajar con diferentes tecnologías y sistemas operativos, disponiendo de diferentes herramientas y SDKs para cada ocasión.

En este post quiero enseñaros una de las opciones que hay de interoperabilidad, que no es otra que el plugin de Eclipse para trabajar con Java y poder desplegar este tipo de aplicaciones en un Cloud Service, en la parte de plataforma como servicio de Windows Azure.

Para poder instalar este plugin en Eclipse es necesario tener instalado el Sdk de Windows Azure (1.8 o superior), el JDK 1.6 o superior y la versión de Eclipse para Java EE Developers.

Una vez que se tienen instalados estos prerequisitos la instalación del plugin resulta bastante sencillo, desde la opción de instalación de nuevo software, tal y como se ve en la primera imagen.

1-Eclipse

Para poder encontrar el plugin a instalar es necesario indicar el respositorio de software; http://dl.msopentech.com/eclipse

2-Eclipse

Una vez realizado este sencillos pasos ya podemos crear nuestras aplicaciones Java o abrir alguna de las que ya tengamos y empezar a desplegarlas en Windows Azure! Que como veréis, es un proceso bastante sencillo.

Para los que conozcáis Visual Studio y hayáis trabajo con él y Windows Azure, veréis que la experiencia de usuario es prácticamente igual.

Para esta demo lo primero que haremos es crear una proyecto web, un dynamic web project, dónde tendremos un JSP, nuestro “Hello World” en Java.

3-Eclipse

y creamos también un JSP para esta demo.

4-Eclipse

Con los pasos que hemos realizado hasta el momento tendríamos una aplicación Java normal y corriente, pero ahora hay que hacer los pasos necesarios para empaquetar esta aplicación en un formato que Windows Azure pueda entender.

Independientemente del lenguaje de programación en el que se trabaje, para poder desplegar una aplicación en un Cloud Services, es necesario empaquetar la aplicación en un formato que éste pueda entender.

El plugin de Eclipse, al igual que hace Visual Studio, nos permite de forma visual realizar todo este proceso…empaquetar la aplicación e indicar la configuración de despliegue; número de instancias, puertos, protocolos etc…Todo aquello que necesitemos.

Empaquetar la aplicación Java en el formato que necesita Windows Azure es bastante sencillo, empleando el plugin que hemos instalando anteriormente, el cuál veremos que nos ha añadido una barra con diferentes opciones y alguna que otra opción en los menús contextuales.

5-Eclipse

Por ejemplo, seleccionado el proyecto Java, desde el menú contextual tendremos la opción de empaquetar el proyecto para ser desplegado en Windows Azure, acción que creará un nuevo proyecto especial, propio de Windows Azure, el cuál es el encargado de empaquetar la solución y establecer la configuración que queramos.

15-Eclipse

La acción empaquetar también nos pedirá la versión del JSDK que queremos que se despliegue junto con mi aplicación, así como qué servidor queremos usar, en el ejemplo Tomcat. Esto es así, porque las máquinas de Windows Azure por defecto no tienen estos dos componentes y por tanto, es necesario que estos se incluyan e instalen junto con nuestra aplicación.

6-Eclipse

Como he comentado, esta acción generará un proyecto de Windows Azure con un contenido similar a este. En en este proyecto dónde se configurar el WAR que queremos desplegar, el JDK, el Servidor etc…lo que hace el plugin de Eclipse es que no tengamos que hacer nada o casi nada a mano, todo de forma visual desde asistentes y menús de propiedades.

7-Eclipse

Si seleccionamos las propiedades del rol podremos ver la configuración del mismo; ficheros que se deben incluir en el empaquetado, puertos, protocolos….

Por ejemplo, en esta pantalla podéis ver que los ficheros que incluirán…el JSDK, el servidor, el WAR de la aplicación y un bat que se encarga de la instalación del JSDK y servidor Tomcat.

8-Eclipse

Otra cosa que podemos llegar a configurar en el acceso remoto, cosa que considero importante siempre configurar, para que podamos conectarnos por RDP a las máquinas que desplegamos en Windows Azure. Esta configuración la podemos establecer desde las propiedades del proyecto de Windows Azure.

10-Eclipse

Una vez que tenemos esto, podemos usar la barra que nos ha instalado el plugin para primero, probar la aplicación en nuestro entorno local, y luego desplegar la aplicación en Windows Azure.

Desde el propio Eclipse podemos lanzar la aplicación y usar el entorno de emulación que tiene el SDK de Windows Azure para poder probar la aplicación en nuestro entorno local como si éste estuviera desplegado en Windows Azure.

Una vez que ya lo tenemos funcional en el entorno local, tendremos que desplegar la aplicación, ya sea de forma manual o directamente desde Eclipse.

Si queremos hacer un despliegue manual, podremos usar la opción de crear el empaquetado. Esta acción empaquetará los ficheros que hemos indicado con la configuración que hayamos establecido y nos dará dos ficheros; el fichero de definición del servicio y el fichero de configuración del servicio, los dos ficheros que necesito para tener la aplicación funcionando en Windows Azure.

12-Eclipse

Una vez los tengo generado, tendré que ir a la página de administración de mi subscripción Windows Azure ( http://windows.azure.com/), crear un Cloud Service y usar estos dos ficheros oara crear un despliegue.

16-Eclipse

17-Eclipse

y por último, otra opción que tenemos disponible es la opción de configurar en Eclipse las credenciales de la subscripción, desde las propiedades del proyecto.

9-Eclipse

Si configuro las credenciales, desde el menú contextual podré desplegar directamente la solución en la subscripción que tenga configurada, indicando en ese proceso el Cloud Service dónde desea hacer el despliegue.

11-Eclipse

Y con esto es todo, como veis, con la el plugin de Eclipse el despliegue de aplicaciones Java resulta bastante sencillo…

Eso sí…

¿Qué pasa si uso Eclipse en Linux o en MAC? ¿Puedo usar este plugin? NO, veremos alternativas…

¿Qué pasa si no uso Eclipse ni Visual Studio? ¿Puedo desplegar otro tipo de aplicaciones (PHP, Node…) en Cloud Services? SI, lo veremos…

¿Qué se despliegue con la aplicación el JDK y el Tomcat no hará que el tamaño del empaquetado sea muy grande? SI, pero también hay soluciones que veremos…

VM Depot: Catálogo open source de máquinas virtuales

VM Depot es una catálogo open source de máquinas virtuales preconfiguradas creado por la comunidad que pueden ser fácilmente desplegadas en Windows Azure. Estas máquinas vienen preconfiguradas con software, aplicaciones, herramientas de desarrollo etc…

Cualquier persona puede ver el catálogo de máquinas existentes y desplegar una máquina virtual en cuestión de minutos en su propia subscripción de Windows Azure, una maravilla!!

y claro está, lo mismo que puedes usar máquinas existentes, puedes crear tus propias imágenes contribuyendo al catálogo.

Este servicio ha sido creado por “Microsoft Open Technologies”, una subsidiaria de Microsoft, y podéis acceder al mismo a través de http://vmdepot.msopentech.com 

1-VMDepot

Ahora mismo ya hay diversas máquinas virtuales de algunos partners como Alt Linux, Basho, Bitnami o Hupstream.

2-VMDepot

Cualquier usuario puede pertenecer a la comunidad y hacer sus propios aportes. El proceso resulta bastante sencillo, desde el menú de publicar se indica todo lo necesario para poder hacer tus contribuciones:

image

y desplegar una existente, es tan fácil como generar el script de despliegue, que te la línea de comandos que tienes que lanzar para desplegar la imagen en tu subscripción.

4-VMDepot

y si quieres saber más sobre el servicio de máquinas virtuales, cómo trabajar con ellas, cómo administrarlas etc…pues igual te interesa acudir al Cloud Tour http://www.plainconcepts.com/cloudtour/

Cloud Tour

Después de las giras de SQL Server, HTML y Visual Studio, le ha tocado el turno a la nube, con una gira que organizamos desde Plain Concepts por cinco ciudades.

Las plataformas de Cloud Computing pueden llegar a ofrecer grandes beneficios a las aplicaciones desplegadas en ellas; ahorro de costes, escalabilidad, disponibilidad…

Durante las diferentes sesiones de este evento veremos cómo trabajar con Windows Azure como plataforma de Cloud Computing, haciendo especial especial hincapié en las diferentes opciones de interoperabilidad que existen y cómo es posible trabajar con lenguajes de programación como Java, Node.js o PHP e incluso desde diferentes sistemas operativos, Linux y MAC.

Agenda:

  • 09:30 Introducción a la plataforma
  • 10:30 IaaS – Linux, Máquinas y Redes Virtuales
  • 11:30 Café
  • 11:45 PaaS, trabajando con Java y Eclipse
  • 12:30 PHP y Azure Web Sites
  • 13:30 Comida
  • 14:30 Almacenamiento en la nube – SQL, NoSQL
  • 15:30 Big Data y Hadoop
  • 16:30 Desarrollo de backends para el desarrollo de aplicaciones móviles

Fechas y ciudades:

  • 30 de enero – Sevilla
  • 31 de enero – Madrid
  • 7 de febrero – Barcelona
  • 12 de febrero – Bilbao
  • 28 de febrero – Santiago

La agenda completa y registro lo podéis encontrar en http://www.plainconcepts.com/cloudtour/

Plain Concepts