Windows Azure 2.0

MeetWindowsAzure_logoLlevo casi un año con ganas de escribir este post. En Septiembre del año pasado, en Redmond, tuvimos una reunión con Scott Guthrie en la que nos avanzó la estrategia de Windows Azure para los próximos meses. Lo más prioritario era facilitar el uso de la plataforma proporcionando cuentas gratuitas  sin miedo a cargos sorpresa en la tarjeta de crédito y un proceso de alta en pocos clicks. También se quería hacer la plataforma más interoperable (Node.js, PHP, etc), mejorar el soporte de Java y aumentar la potencia de SQL Azure (BBDD de 150GB y SQL Federation). Todo esto se presentó en Diciembre de 2011. El siguiente paso en esa estrategia son las novedades que acabamos de presentar el pasado Jueves y que supone la mayor actualización de Windows Azure desde que salió su primera versión hace poco más de 2 años. Trataré de recopilar aquí un resumen de lo presentado que puede valer al menos cómo guía para luego ampliar información en los temas que más interesen a cada uno.

NUEVOS SERVICIOS:

Windows Azure Virtual Machines

Con Virtual Machines Microsoft pasa a ofrecer Infraestructura-como-Servicio (IaaS) además del servicio de Plataforma-como-Servicio (PaaS) que ya existía en Windows Azure y que ahora pasa a llamarse Cloud Services ( el nombre anterior era hosted services o servicios hospedados) . Virtual Machines permite disponer de máquinas virtuales con discos persistentes. Esto nos permite instalar o migrar cualquier aplicación sin necesidad de costosas migraciones. Además se utiliza el formato VHD de discos virtuales por lo que tengo portabilidad de mis máquinas virtuales pudiendo ejecutarla la misma máquina en Windows Azure o en mi propio servidor. Por poner solo algún ejemplo, ahora voy a ser capaz de instalar un Controlador de Dominio de Directorio Activo, un SQL Server completo, un portal de SharePoint Server 2010, esa aplicación desarrollada hace 10 años y que no sabía como migrar al cloud o mi aplicación Linux favorita. Los sistemas operativos compatibles y disponibles en la galería de imágenes son:

Windows Server

- Windows Server 2008 R2

- Windows Server 2008 R2 + SQL Server 2012 Eval

- Windows Server 2012 RC

Linux

- OpenSUSE 12.1

- CentOS 6.2

- Ubuntu 12.04

- SUSE Linux Enterprise Server 11 SP2

Virtual Machines se puede gestionar desde la preview del nuevo Portal de Gestión, de forma programática a través de su API HTTP REST o utilizando Powershell. Se puede empezar a probar Virtual Machines solicitando acceso a la preview desde este enlace (será necesario antes iniciar sesión con nuestra cuenta de Windows Live ID). Si disponemos de varias suscripciones asociadas a un mismo Windows Live ID, deberemos ir antes al “Centro de cuentas” y seleccionar una de ellas. Virtual Machines se factura en modo pago por uso (hora de máquina encendida) y durante la fase de preview tendrá un coste reducido.

Quiero dejar claro que habitualmente PaaS ofrece un nivel mayor de eficiencia, automatización y ahorro de costes por lo que si estamos desarrollando una nueva aplicación yo recomendaría siempre evaluar Cloud Services y sólo usar Virtual Machines si nuestra aplicación no encaja en el modelo PaaS (Linux, migraciones complejas, aplicaciones de terceros, etc.).

Windows Azure Web Sites

Web Sites es un nuevo servicio que también entra dentro de la categoría de PaaS. Supone un paso más respecto a Cloud Services y, entre otras cosas, nos permite desplegar aplicaciones sin preocuparnos de desplegar instancias asociadas a estas aplicaciones ya que se despliegan en servidores compartidos ya provisionados previamente. Es un servicio elástico que simplifica al máximo el despliegue de aplicaciones. Entre otras, ofrece estas posibilidades:

- Desarrollar aplicaciones .NET, PHP o Node.js y conectarlas con SQL Database o MySQL (ofrecido ahora también como servicio por la gente de ClearDB). Todo ello sin necesidad de instalar ningún framework como ocurría hasta ahora con PHP por ejemplo.

- Facilita al máximo el despliegue con integración nativa con Team Foundation Service, Git y FTP. Para desarrollo rápido de sitios webs, también está ahora integrado con Microsoft WebMatrix.

- Desplegar las aplicaciones web open source más populares como WordPress, Drupal, Joomla!, Umbraco o DotNetNuke siguiendo un sencillo asistente.

Lo que me encanta del concepto de Web Sites es que puedes empezar desplegando tu aplicación web por un coste mínimo (durante la fase de preview se pueden desplegar hasta 10 sitios web con un coste de 0€) y, si más adelante, tu aplicación necesita escalar a miles de usuarios puedes pasar a una instancia dedicada de Cloud Services literalmente con un click. No he visto un servicio similar hasta la fecha. Más detalles sobre los costes de Web Sites en este enlace.

Windows Azure Virtual Network

Básicamente este servicio nos ofrece la posibilidad de crear redes virtuales privadas para nuestras máquinas en Windows Azure y, opcionalmente además, conectar esa red con nuestra red local utilizando un router (Cisco, Juniper, etc.) con soporte de protocolo IPSEC como gateway de VPN. Este servicio es indispensable cuando necesito gestionar direcciones IP privadas para mis máquinas virtuales en Windows Azure o incluso quiero gestionar mi propio DNS. Por la parte de conectividad, Virtual Network posibilita el concepto de “nubes híbridas” que será el que más veamos en grandes empresas en las que un estrategia cloud siempre pasa por desplegar algunos servicios en la nube pero conectados con sus sistemas corporativos alojados en su red local.

Se puede ya probar Virtual Networks entrando en el portal de Windows Azure, luego en “Gestión de cuentas” y seleccionando el enlace de acceso a las nuevas funcionalidades. Virtual Networks no tiene coste durante la fase de preview.

Windows Azure Media Services

Media Services es una plataforma extensible y multi-tenant diseñada para gestionar toda la cadena de valor de una solución multimedia online. Ofrece una serie de componentes con los que gestionar todo el flujo de una solución de contenidos digitiales: codificación en distintos formatos, protección de contenidos, streaming a múltiples dispositivos, estadísticas, etc. Media Services es gratuito durante la fase de preview pero limitado al procesamiento de 1 terabyte de datos (video, audio) al mes. Más detalles sobre los componentes incluidos en la preview en este post y sobre el modelo de precios en este enlace.

Soporte para UDP

Especialmente interesante en algunos escenarios, se ha actualizado el stack de red para soportar el protocolo UDP adicionalmente a HTTP y TCP que se soportaban hasta ahora.

MEJORAS EN SERVICIOS EXISTENTES:

Sql Reporting

Tras unos meses en beta, SQL Reporting está ahora en producción. Es una solución de Business Intelligence que permite publicar informes en el cloud y opcionalmente embeberlos también dentro de cualquier aplicación. El servicio es gratuito hasta el próximo 1 de Agosto. A partir de esa fecha se factura por horas de instancia (cada hora de instancia permite generar hasta 200 informes). Más información sobre el modelo de precios en este enlace.

Caching

Hasta la fecha disponíamos de un caché compartido en el que podíamos guardar cualquier objeto serializable y gestionar la sesión de ASP.NET. Ahora se añade un nuevo modelo de caché en modo preview que permite desplegarlo en instancias dedicadas (Worker Roles) o en los propios web roles de nuestra aplicación. Este modelo es muy interesante cuando tenemos requisitos de rendimiento y tamaño de caché que superan los límites del caché compartido. Se añaden también nuevas capacidades como notificaciones, regiones y tags que ya estaban presentes en AppFabric Caché para Windows Server. Además de soportar el AppFabric Cache Server API, soporta también el protocolo Memcached por lo que cualquier aplicación que haga uso de este caché puede ahora utilizar Windows Azure Caching sin necesidad de ningún cambio en el código. En esta página hay detalles adicionales sobre este nuevo servicio.

Storage

Por defecto todas las cuentas de almacenamiento tienen redundancia geográfica en 2 datacenters (se mantienen siempre 3 copias en el datacenter principal y otras 3 copias en un segundo datacenter de la misma región). Ahora es posible desactivar este servicio obteniendo descuentos importantes (por encima del 25% en pago por uso).  Este almacenamiento sigue teniendo alta disponibilidad y siempre 3 copias de la información dentro del mismo datacenter. Adicionalmente, ahora se pueden utilizar Shared Access Signature (SAS) para Tablas y Colas. Se pueden leer detalles adicionales en este enlace.

Nuevo Portal de Gestión

Basado en HTML5, este nuevo portal es accesible desde cualquier sistema operativo, dispositivo o navegador. Permite gestionar todos los servicios (en la fase de preview gestiona Cloud Services, Virtual Machines, Web Sites, Virtual Network, SQL Database y Storage) desde una única consola web. Un aspecto muy útil es que con el nuevo portal es posible monitorizar directamente los servicios mostrando gráficas en tiempo real (es preciso configurarlas antes). En las pruebas que he realizado es rápido y sencillo de utilizar. Sólo resaltar que si utilizáis varias suscripciones simultáneamente, tendréis que seleccionar la suscripción adecuada antes de acceder a este nuevo portal a diferencia de lo que ocurre con el anterior portal. El portal accede al API HTTP REST de Windows Azure por lo que todas las acciones que se pueden hacer desde él también pueden ser automatizadas atacando directamente este API. Para simplificar la tarea, con el nuevo SDK se ofrecen scripts de Powershell (Windows) y Bash (para Mac y Linux).

Reducción de precios

Los precios de las transacciones del Storage y de la CDN se reducen en un 90%. Los servicios de Virtual Machines tendrán un coste reducido durante la etapa de preview y ya hemos hablado también de la nueva opción de Storage sin redundancia geográfica con descuentos de más del 25%. Hay un detalle completo de todos los nuevos precios en esta página.

Mejoras en los SDKs y soporte para múltiples lenguajes

Todos los SDK existentes han experimentado varias mejoras (sobre todo el de .NET) y se añade un nuevo SDK para Python pasando este lenguaje a estar soportado oficialmente en Windows Azure. Adicionalmente se ofrecen SDKs para Windows, Mac y Linux en aquellos lenguajes que los soportan.

  • Windows Azure SDK para .NET

- Soporte para IISExpress para desarrollo local.

- Soporte para instalaciones side-by-side con SDKs anteriores. En un mismo PC podemos trabajar con proyectos con el SDK 1.6 por ejemplo y otros con el 1.7 (el actual).

- Soporte para LocalDB en el emulador.

- Soporte para el nuevo Caché Dedicado.

- Mejoras en el Visual Studio Server Explorer que ahora soporta Service Bus, Virtual Machines y RDP.

- Actualizaciones en las librerías de Storage, Service Bus y Shared Caching.

  • Java

- Nuevo Windows Azure SDK para Java incluyendo ahora librerías para Table Storage.

- Nuevo plugin de Windows Azure para Java en CTP con muchas mejoras:

  • Nuevo wizard de despliegue con plantillas para Tomcat, GlassFish OSE 3, Jetty y JBoss.
  • Nuevo asistente para publicar directamente una aplicación a Windows Azure desde Eclipse.
  • Instalación de las librerías Java necesarias y del driver JDBC 4.0 para SQL Server.
  • Nuevo componente de integración con Access Control Service.
  • Windows Azure SDK para PHP

- Nuevas librerías cliente para Storage, Service Bus y Service Runtime.

  • Windows Azure SDK para Node.js

- Nuevas librerías cliente para el Service Runtime.

  • Windows Azure SDK para Python

- Soporte para Django

- Soporte para IPhyton

- Librerías cliente para Windows, Mac y Linux y cmdlets para PowerShell.

 

Y ALGUNAS COSAS MÁS:

Es prácticamente imposible condensar en un único post todas las novedades. Además de todo lo anterior, se ha actualizado significativamente el hardware de los servicios de almacenamiento y red, hay mejoras en los servicios de Identidad, hay soporte para más de 40 nuevos países, un nuevo runtime de Service Bus y mucho, mucho más.

Mi recomendación, si todavía no la tienes, ábrete una cuenta gratuita en WindowsAzure.com y empieza a probar todos estos servicios. Seguro que te lleva algún tiempo Sonrisa

ACTUALIZACIÓN (13/6/2012): Más detalles sobre las mejoras en Java.