Tip: Herramientas de monitorización de Windows Azure

Cómo monitorizar Azure? Qué herramienta es la máquina adecuada? y permite PaaS, IaaS, SQL Database etc…son las típicas preguntas que surgen cuando desplegamos en Windows Azure.

El nuevo portal ofrece más información que el anterior, pero generalmente resulta insuficiente para muchas aplicaciones, lo que hace que se tengan que valorar otras herramientas.

monitorizacionazure

Aunque System Center permite realizar muchas de estas tareas, es una herramienta que un muchos casos excede enormemente las necesidades que tenemos en cuanto a monitorización, siendo una herramienta demasiada completa y cara para lo que suelen necesitar muchas empresas que están desplegando en Windows Azure. Ojalá ofrezcan este servicio en la nube!!

Dos las herramienta que más me ha gustado bastante, no son las únicas, son AppDynamics y NewRelic.

Ambas herramientas se basan en la instalación de un agente dentro de la máquina, que recoge toda la información de monitorización y diagnóstico de la misma y la centraliza para que ésta pueda ser accesible a través de una consola web de administración.

addiagram

En la página oficial de Windows Azure podéis encontrar información detallada sobre cómo es posible hacer uso de NewRelic, cómo conseguir una cuenta, el coste y cómo poder desplegar su agente para disponer de toda la información de monitorización y diagnóstico.

Del mismo modo podéis encontrar información sobre AppDynamics en su web bastante detallada.

newrelic_app

Añadir un Cloud Service a una red virtual

Como todos seguro que ya sabéis desde junio una de las grandes novedades de la plataforma son la posibilidad de desplegar máquinas virtuales dentro de Windows Azure. Para los que no lo conozcáis, resumiendo y simplificando un poco podemos decir que es un Hyper-V en la nube, dónde podemos desplegar cualquier tipo de sistema operativo, Microsoft o Linux.

 

12.3

Así mismo, otra de las grandes novedades es la posibilidad de crear redes virtuales entre las máquinas que tenemos desplegadas en la plataforma o incluso entre servidores que tengamos en la nube con servidores que tengamos en un entorno local, posibilitando escenarios de nube híbrida con un potencia descomunal.

Generalmente me estoy encontrando que muchos asocian las redes virtuales sólo con la posibilidad de crear máquinas virtuales, como si sólo se pudiese crear este tipo de red entre máquinas virtuales…pues no! las redes virtuales están tanto para IaaS como para PaaS, es decir, tanto para máquinas virtuales como para cloud services.

Es más que posible que esta confusión viene del hecho de que Visual Studio, ni ningún otro IDE, permite configurar de forma visual la red virtual en la que queremos incluir un determinado despliegue de Cloud Services. Si queremos que una aplicación desplegada en un Cloud Services se una a una red virtual, tendremos que modificar el XML de configuración del servicio de forma manual.

<NetworkConfiguration>
  <VirtualNetworkSite name="NetworkName" />
  <AddressAssignments>
    <InstanceAddress roleName="Web">
      <Subnets>
        <Subnet name="SubNetName" />
      </Subnets>
    </InstanceAddress>
  </AddressAssignments>
</NetworkConfiguration>

Tip: Omitir las tareas de arranque en el entorno de desarrollo

Una de las tareas típicas que hacemos cuando trabajamos con Cloud Services dentro de Windows Azure es hacer uso de las tareas de arranque (Startup tasks) para instalar o configurar todo aquello que necesitamos en la máquina que crea por nosotros el servicio, para que nuestra aplicación pueda funcionan sin problemas.

    <Startup>
      <Task commandLine="startup.cmd" executionContext="elevated" taskType="simple"></Task>
    </Startup>

Pero claro, es más que posible, que queremos que estas tareas no se lances cuando estemos probando la aplicación en el entorno local de simulación, sólo cuando despleguemos la aplicación en Windows Azure. Bueno, pues la verdad que es bastante sencillo controlar si se está en el entorno local, aquí os dejo cómo sería.

En el fichero de definición del servicio, haremos la siguiente modificación:

 

<Task executionContext="elevated" commandLine="startupstartup.cmd">
    <Environment>
      <Variable name="EMULATED">
        <RoleInstanceValue xpath="/RoleEnvironment/Deployment/@emulated" />
      </Variable>
    </Environment>
  </Task>

y dentro de fichero cmd añadiremos una comprobación para que si estamos en el entorno de emulación no ejecutemos el script:

if "%EMULATED%"=="true" goto :EOF

Así, tan sencillo.

LightSwitch HTML Client Preview 2!

Bueno, ya tenemos aquí una versión de la versión HTML de LightSwitch, una herramienta que me parece bastante interesante para ciertos escenarios, sobre todo en aplicaciones orientadas a datos dónde hay muchos mantenimientos.

image

Yo he usado la versión anterior, tanto la de Silverlight como preview de HTML,  y la verdad que la idea me parece bastante interesante y lograda, ya que además de permitirte crear mantenimiento de forma prácticamente instantánea, te ofrece mecanismo para poder extenderlo de forma fácil y sencilla, ya sea a nivel estético o a nivel funcional.

La nueva versión, ya era hora, permite instalarse sobre Visual Studio 2012 RTM, la anterior sólo estaba disponible desde un VHD que te ofrecían para descarga, lo que lo convertí en un pequeño coñazo.

Podéis descargaros la versión desde aquí.

Además de la posibilidad de instalar junto con Visual Studio, la gran novedad es que permite desplegar directamente la aplicación dentro de SharePoint 2013, como una aplicación “autohosted”. Esta característica de SharePoint me parece muy interesante, ya que permite desplegar aplicaciones en SharePoint aplicaciones de forma bastante sencilla, ya que ésta funcionan de manera independiente a SharePoint, hosteadas en Windows Azure, pero aún así pueden estar completamente integradas con un portal de SharePoint.

Si quieres probar esto y no tienen montado un SharePoint te recomiendo darte de alta en la versión preview de Office 365 y así puedes probar esta funcionalidad con la versión online de SharePoint.

Aquí tenéis un paso a paso de cómo hacer una aplicación LightSwitch y cómo desplegarla en SharePoint 2013. Con LightSwitch todavía no lo he probado, pero he probado a desplegar otro tipo de aplicaciones y la verdad que resulta bastante sencillo.

8688_PortalSite_thumb_503D6A4B

2742_SurveyApp_thumb_60D56539

y aunque no menos importante, sobre todo si has trabajado con la versión preview anterior, incluye unas cuántas mejoras interesantes que harán nuestro trabajo con esta herramienta mucho más placentera:

  • Mejoras en el intellisense de JavaScript.
  • Se ha añadido muchas más puntos dónde poder añadir nuevos código para controlar los eventos típicos de una aplicación.
  • Integración con jQuery Mobile ThemeRoller para personalizar los temas.
  • Nuevo control para tener listas estilo “Tile”s.
  • Posibilidad de desplegar en Windows Azure Web Sites.
  • ….

Bueno, ya tenemos otro juguete para probar!!

Pucela Tech Day

El próximo día 1 de diciembre Vicenç Garcia, Asier Marques y yo estaremos en Valladolid dándolo todo! Por qué Valladolid y un sábado? Esa será la historia que podremos contar cuando estemos comiendo un lechazo en Pucela después del evento!!

Si os gusta la temática que hemos propuesto, espero veros allí.

La información completa y registro la podéis encontrar aquí.

La agenda:

10:00 – 10:50 Servicios REST por Asier Marques de Simettric

REST se está estableciendo como la opción más importante y comentada para construir servicios web y web APIs en aplicaciones de Internet.

Con esta charla agnóstica de tecnologías conoceremos los aspectos clave para construir una buena API REST, utilizando las posibilidades que nos ofrece el protocolo HTTP para ello.

· 11:00 – 11:50 Montando un escenario de integración continúa por Vicenç Garcia e Ibon Landa de Plain Concepts

Durante esta sesión se mostrará de forma práctica cómo es posible montar un escenario de integración continua dónde se pueda construir el software cada vez que se realiza alguna modificación y pasar las pruebas de forma automatizada, a la vez que se hace uso de una plataforma de Cloud Computing para desplegarla durante el proceso.

Durante la sesión se empleará Azure WebSites como plataforma de Cloud Computing dónde desplegar las aplicaciones, plataforma que permite trabajar con GitHub, TFS Service, Bitbucket o CodePlex para crear escenarios de integración continua.

· 12:00 – 12:50 Pruebas unitarias en JavaScript con Jasmine por Vicenç Garcia de Plain Concepts

Las pruebas unitarias son una de las técnicas de ingeniería del software que mayor aceptación están logrando entre los desarrolladores en los últimos tiempos. Escribir buenas pruebas unitarias es labor casi imposible en la realidad sin apoyarse en un framework que permita aislar nuestras pruebas de dependencias externas.

En esta sesión veremos cómo usar Jasmine para hacer pruebas unitarias de nuestro código JavaScript.

o ¿Por qué mocking?

o ¿Cómo usar Jasmine?

o ¿Mocking con Jasmine?

o ¿Cómo usar Jasmine con Visual Studio?

o ¿Cómo integrar las pruebas de Jasmine dentro de mi proceso de integración continua?

· 13:00 – 13:50 Desarrollo de backends para el desarrollo de aplicaciones móviles por Ibon Landa de Plain Concepts

Aplicaciones para Android, Windows Phone, iPhone, iPad, Windows 8… casi todas tienen en común que generalmente necesitan de servicios de backend para ciertas funcionalidades; almacenamiento, notificaciones push, envíos de SMS, seguridad con diferentes proveedores de identidad etc…

Durante esta sesión hablaremos de Mobile Services, una tecnología que permite disponer de forma rápida y sencilla de servicios de backend que pueden ser utilizados desde cualquiera de los dispositivos mencionando anteriormente, ya que además de ofrecer un API REST de uso dispone de SDKs propios de cada plataforma que simplifica su utilización.