Azure

Azure: Calculadora de precios

Una de las preguntas más comunes que he visto por los foros y cuando cuento que es Azure es, ¿pero cuanto cuesta esto?.

Hasta ahora teníamos una calculadora, no muy intuitiva con la que poder calcularlo, pero ahora Microsoft ha mostrado su evolución la cual podréis encontrar en http://www.microsoft.com/windowsazure/pricing-calculator/

Ahora será mucho más sencillo ver las previsiones de gasto con Windows Azure.

image

Azure: La escalabilidad como bandera

Después de un par de formaciones y de investigar un poco, Azure se va convirtiendo en algo más tangible, por lo menos para mi entendimiento, y la verdad es que me esta sorprendiendo gratamente.

Lo primero, creo para entender el concepto es ver unos videos, que me parecen muy interesantes, ya que permiten ver el esfuerzo que esta haciendo Microsoft para mantener una infraestructura propia y con los servicios que quieren prestar.

En este otro video vemos una animación de como es por centro y el funcionamiento del contenedor (por alguna extraña razón no se puede insertar en el blog).

http://www.microsoft.com/showcase/en/us/details/84f44749-1343-4467-8012-9c70ef77981c

 

¿Qué es Azure?

Windows Azure es un entorno de “Cloud Computing” basado en Internet, es decir, un Sistema Operativo basado en Internet.  Una plataforma para el desarrollo de aplicaciones .net en la “nube”, todo ello apoyado en data centers repartidos por todo el mundo.

No es el típico alquiler de servidores, virtuales o no, en data centers que ya todos conocemos, realmente alquilas la plataforma (PaaS) donde tu alojas la aplicación web (Windows Azure), los datos (SQL Azure) y los ficheros (Azure Storage), todo ello como servicios independientes entre sí y ahí reside su alta escalabilidad.

Partiendo como base de que Azure Storage permite cientos de Terabytes por cada “elemento storage” y que puedes crear tantos como necesites, podemos hablar de una capacidad “ilimitada” de almacenamiento para lo que necesitemos.

Actualmente SQL Azure permite base de datos de hasta 50 Gb., supongo que irán ampliando según se vayan adaptando al mercado, ya que ha ido creciendo desde 1 Gb y 10 Gb. que había como límite al iniciarse el servicio como beta, aunque existe la posibilidad de realizar particiones en la base de datos cuando sobrepasemos dicha capacidad, teniendo a nuestra disposición la creación de tantas base de datos como necesitemos, estamos hablando también de una escalabilidad increíble.

Hasta aquí todo “normal”, cualquiera podría pensar que es cuestión de ampliar los servidores propios e igualaríamos todo los expuesto, sí, aunque ahí que matizar que todo lo que se alberga en Azure esta por triplicado, es decir existen 3 copias idénticas en distintos servidores de todo, por temas de seguridad y redundancia, y que el sistema de control detecta un fallo en el disco duro, servidor, red de ese rack automáticamente replica todo lo que contenía en otros “espacios” para que siempre existan esas 3 copias, que también podríamos reproducir en nuestras instalaciones, con todo el coste inicial del despliegue de hardware/software que tendríamos que realizar.

Ahora, lo que más me ha sorprendido es Windows Azure, que aunque se basa en Windows 2008 R2 podríamos considerar como que no es un Windows al uso, ya que no podemos instalar cualquier cosa, sino más bien una plataforma donde soltamos nuestra aplicación web, que utilizará, o no, SQL Azure y Azure Storage para realizar las gestiones oportunas, pero con la flexibilidad de duplicar, y ahí esta la gran ventaja de la escalabilidad de Azure, la instancia de Windows Azure, de 1 a N simplemente pulsando un botón.

 

¿Y cual es el potencial de todo esto?

Imaginemos una aplicación empresarial, una aplicación web, servicio web (WCF ó SOAP) o cualquier otro sistema que tiene diferentes necesidades de uso en función de la hora o día de la semana.

Dicha aplicación utilizará SQL Azure para almacenar toda la información relacional y Storage Azure para el resto de información y ficheros (pdf’s, videos, gestión documental, etc…) que se utilizarán desde nuestra aplicación, que trabaja en la instancia Windows Azure y que durante el fin de semana podemos tener exclusivamente una única instancia para que responda las peticiones de los pocos usuarios que puedan trabajar desde casa, pero que desde el lunes a partir de las 7 de la mañana podemos levantar 10 ó N instancias, en pocos minutos exactamente iguales a la primera, para dar soporte a cientos de clientes que trabajarán hasta las 10 de la noche, donde volvemos a rebajar el número de instancias a 1 o 2, y todo esto pulsando un botón o programando todo esto según diferentes parámetros para que las N instancias se creen/destruyan en función del uso de los procesadores y/o memoria.

Podríamos ajustar mucho más este tema, ya que durante la hora de la comida, habría menos personal utilizando la aplicación, por la tarde posiblemente también habría menos uso que durante la mañana, y seguir optimizando los recursos que ofrecemos en función de la carga.

Esto ya si que es complicado de realizar (que no imposible), y sobre todo mantener, dentro de las propias instalaciones.

Y sobretodo, lo más interesante, creo yo, es por costes, ya que Azure solamente cobra por el tiempo que tenemos levantadas las instancias, es decir que si sólo tenemos 2 horas una instancia levantada, solo pagaremos por esas 2 horas.

 

Espero hayáis entendido lo que os he querido transmitir, ya que algunos conceptos son algo complicados de explicar, pero espero vuestros comentarios por si surgen dudas.

Y os dejo una pregunta…. ¿Te imaginas la posibilidad de tomar la decisión de contratar 10.000 cores para completar en días una tarea que normalmente hubiera tardado años y que sólo hay que realizar una vez?

 

Tenéis mucha más información en http://msdn.microsoft.com