Windows Azure Evolution
Nuestra gran plataforma de cómputo en la nube es lo más alejado de algo estático. Todos los días está evolucionando para ofrecer más y más ventajas. De hecho esa es una de las grandes características de la nube: poca fricción al cambio.
Quiero recopilarles en este post todas las novedades que ha presentado la plataforma desde Marzo de este año. Estas novedades están disponibles en el update de abril del SDK 1.4 de Windows Azure.
1. Web Deployment Integration
Alguna vez ha montado un sitio en Azure a pruebas y observó que había un pequeño bug y ha querido corregirlo en caliente rápidamente para ver si la corrección es adecuada? Hasta hace un tiempo en Windows Azure esta era una tarea complicada que implicaba re-empaquetar la aplicación para subirla nuevamente a la nube de Windows Azure usando bien fuese el portal administrativo o el API de Administración del Servicio a veces solo para probar una pequeña modificación. Con la actualización de la versión 1.4 del SDK esto queda resuelto gracias a la herramienta de Web Deployment.
Esta herramienta es una extensión de IIS que contiene esencialmente un conjunto de utilidades y un framework administrado para simplificar el despliegue, administración y migración de aplicaciones Web, sitios y hasta servidores completos. Tanto desarrolladores como profesionales de IT se pueden beneficiar de estas utilidades no solo prácticas en Windows Azure sino en todo lado donde existan IIS desplegados. De hecho es un paquete de descarga gratuito que se maneja como una extensión de IIS que no tendrá costo. En Windows Azure ya está incluida.
· Permite tanto actualizar sitios en vivo, como con paquetes comprimidos con las fuentes del mismo.
· Es compatible con PowerShell y línea de comandos.
· Puede sincronizar solo datos que hayan cambiado.
· Puede detectar dependencias perdidas durante la sincronización.
o Muchas otras características avanzadas que generalmente no se manejan en Azure, pero sí en despliegues de IIS tradicionales. Más detalles aquí.
Aunque esta característica ha sido muy esperada, debemos notar que dada la naturaleza de Windows Azure hay algunas limitaciones:
· El Web Deploy solo sirve con una instancia de Windows Azure
· Con Web Deploy se omite la creación del paquete. Así que los cambios hechos a las páginas no son durables. Esto quiere decir que si por algún motivo la instancia se reinicia, esta volvería al estado anterior antes de hacer Web Deploy.
Se puede obtener el plugin con la última versión del SDK que se puede descargar de aquí. Información detallada de cómo usarlo se encuentra aquí.
2. Novedades en AppFabric
Primero, una nueva versión del AC (Control de Acceso – Manejo de la autenticación de usuarios) en Windows Azure con mejoras en los procesos de Single-Sign-On y la integración con directorios empresariales e identidades Web.
Además, Servicio de Cache!!! Este es un servicio de almacenamiento de datos de aplicación en memoria totalmente distribuido que acelera el performance de las aplicaciones en Windows Azure y SQL Azure permitiendo mantener datos en memoria y permitiendo omitir la necesidad de obtener los datos físicamente del storage o la base de datos.
El cache es frecuentemente usado para mantener los datos que más se consultan en memoria; más cercanos a la aplicación como tal reduciendo la sobrecarga en la base de datos, así como eliminando efectos de latencia de red innecesarios.
Los desarrolladores ASP.NET pueden usar el servicio de Cache sin modificaciones, ya que el manejo de estado de sesiones, aplicaciones y output caching se puede transferir a APPFabric a través de sencillos cambios en la configuración de proveedores.
Las capacidades de cache también están directamente disponibles a través de una simple API para obtener un uso más flexible y personalizado. En tiempo de ejecución, el servicio de Cache distribuye transparentemente los datos de sesión o de output a través de la infraestructura elástica de Windows Azure.
Dado que es un servicio en todo el sentido de la palabra, AppFabric Caching tiene un modelo de aprovisionamiento bastante simple (no hay que instalar infraestructura y menos ajustarla o administrarla, dado que todo esto se hace automáticamente a través del servicio. Solo hay dos cosas para configurar: Qué datos se almacenaran y qué tanto caché se necesita. A medida que las necesidades de la aplicación crezcan o decrezcan, es posible cambiar dinámicamente el tamaño del cache elástico basado en estas necesidades.
Cómo se compra?
Se proveen seis diferentes opciones para el tamaño de la memoria en caché:
· 128 MB cache por $45.00/mes
· 256 MB cache por $55.00/mes
· 512 MB cache por $75.00/mes
· 1 GB cache por $110.00/mes
· 2 GB cache por $180.00/mes
· 4 GB cache por $325.00/mes
Para los usuarios que quieran probar el servicio, lo pueden hacer gratuitamente hasta el primero de agosto de 2011. Igualmente en el sitio de ofertas de Windows Azure podremos encontrar algunos paquetes que incluyen gratuitamente hasta 128MB de memoria en caché al mes por ejemplo para suscriptores MSDN.
Se pueden comprar diversos paquetes de cache para terminar con tamaños distintos a los ofrecidos por defecto. Los precios se suman indistintamente. El tamaño de un paquete de cache también se puede actualizar. Si se hace más grande, los datos permanecen intactos. Si se reduce, los datos que menos recientemente hayan sido accedidos son eliminados del cache.
La facturación del servicio se hace mensualmente, pero los cargos son calculados diariamente. Por ejemplo si compramos 128MB de cache a un costo de $45/mes y lo usamos 10 días y luego lo actualizamos a 256 ($55/mes) por los restantes 20 días, pagaríamos un total de: 45/(10/30) + 55/(20/30) = $51.67.
Qué se puede almacenar?
· Objetos CLR
· Filas de tablas del storage de Azure
· XML
· Datos Binarios
Se puede acceder al cache directamente a través de la sencilla interfaz creada para .NET o en ASP.NET a través del proveedor de cache tras una sencilla configuración.
Cuál es la cuota del servicio?
En la siguiente tabla muestro las condiciones máximas que ofrece el servicio. Es de anotar que estas condiciones están sujetas a revisión en un futuro:
3. Windows Azure Traffic Manager (CTP)
Esta característica nos permite administrar y distribuir el tráfico a nuestros servicios hosteados en Windows Azure bien sea cuando los tenemos en un mismo data center o repartidos por todo el mundo. Es así como a través de la definición de unas políticas de balanceo de carga disponibles gracias a Windows Azure Traffic Manager podemos mejorar el performance e incrementar la disponibilidad de estos servicios mientras les balanceamos su tráfico.
Dichas políticas se definen a través de los siguientes criterios:
· Performance: El tráfico es redirigido al servicio hosteado más cercano en términos de latencia de red.
· Round Robin: El tráfico es distribuido equitativamente en todos los servicios.
· Failover: El tráfico es enviado a un servicio primario y, si el servicio cae, se pasa al siguiente servicio disponible en una lista.
Entonces asignamos a cada política un nombre DNS y le asociamos los servicios requeridos. El balanceador de carga responde a los requerimientos al nombre DNS que tiene la política asignada, con la dirección de uno de los servicios asociados que satisfaga los criterios de la política. El Traffic Manager está monitoreando constantemente los servicios para asegurar que están online y no enviará tráfico a los servicios no disponibles.
4. Video con Smooth Streaming optimizado para el Content Delivery Network (CDN)
Esta capacidad permite a los desarrolladores distribuir video para clientes creados con Silverlight o sobre iOS y también Android Honeycomb, sin necesidad de desarrollar ningún software adicional ni menos administrarle o configurarle. Los desarrolladores pueden lograr esto, subiendo sus videos codificados para IIS Smooth Streaming a una cuenta de almacenamiento de Windows Azure que tenga la CDN habilitada. La CDN escala de acuerdo a lo requerido, de manera que los desarrolladores no necesitarán gastar tiempo configurando servidores o preocupándose acerca de la capacidad o picos en la demanda. Para más detalles de la CDN, lea esto.