• El Professional Developer Conference (PDC) es un evento anual que organiza Microsoft desde 1991 para la comunidad de desarrolladores y arquitectos de TI. Es una estupenda oportunidad para obtener una perspectiva completa del futuro en las tecnologías Microsoft, acceder a nuevos recursos y compartir experiencias con ingenieros de la compañía y con otros profesionales del sector.


  • Los Centros de Innovación son una iniciativa promovida por Microsoft en colaboración con sus socios de negocio y los gobiernos autonómicos para impulsar la innovación local y el desarrollo de la industria del software. En España existen actualmente cinco centros (Cataluña, Navarra, Castilla y León, Cantabria y Aragón) y tres más se inaugurarán próximamente (dos en el País Vasco y uno en Baleares).

Servicios de almacenamiento en la nube de Windows

Como era de esperar, poco a poco se van desgranando las posibilidades que se ofrecen con esta nueva revolución llamada Windows Azure.

Para resumir, se puede decir que Windows Azure, es una plataforma que alojada en los Microsoft data Centers y que se puede ver como un Sistema Operativo encargado de gestionar no solo un servidor, sino servidores conectados de forma transparente ofreciendo además un conjunto de servicios.

Uno de estos servicios es esencial para el funcionamiento de la plataforma, y es el “Cloud Storage Service”. ¿Y por qué es esencial? Como hemos dicho, Windows Azure se trata de un Sistema Operativo, y si pensamos en los SO tal y como los conocemos, una de sus funcionalidades principales es permitirnos almacenar documentos, en nuestro disco duro, con seguridad, rapidez, etc, etc.

clip_image002

Así pues, los servicios de almacenamiento de la nube nos van a permitir guardar datos en la nube, y acceder a ellos, sin tener necesidad de saber donde se han almacenado físicamente.

¿Qué tipos de datos podemos guardar en la nube?

Nos vamos a encontrar tres tipos:

– Blobs

– Tablas

– Queues

Como vemos a continuación, las operaciones tanto de almacenamiento, como de lectura pueden llevarse a cabo a través del protocolo REST, así como con clases .NET y LINQ.

clip_image004

Blobs

Nos permite almacenar hasta 50GB en cada Blob! ¡Ahí es nada! Y vamos a poder asociar metadata con cada uno de ellos (video, imágenes, música, documentos, etc).

Como vemos en la imagen, vamos a encontrarnos, que en este nuevo entorno, tenemos conceptos ya familiares. Por ejemplo, un container en un Blob, es el equivalente a una carpeta en nuestro disco, y cada blob, se correspondería a un fichero.

Para “subir” tal cantidad de información a la nube… hace falta paciencia o bien implementar un mecanismo de fragmentación, que subiendo piezas (Blocks) de un documento (a través de la operación PutBlock) termina consolidando las mismas en un solo blob cuando la subida haya finalizado (operación PutBlockList).

En las siguientes imágenes, se ve como se suben bloques y la lista de los mismos:

clip_image006

clip_image008

Y para leerlas se usaría el interface Get y para borrarlos, el interface Delete, resumiendo… REST.

Tablas

Ofrece un almacenamiento estructurado, y está compuesta por un conjunto de “entidades” y propiedades asociadas.

Vamos a poder crear millones de entidades (filas en cada tabla) y Terabytes de datos.

Uno puede imaginar que detrás hay un cluster de servidores Sql, pero según comentaba Brad Calder se trata de un servicio creado desde 0 con esta idea distribuida como premisa principal.

Como cosas interesantes, hay dos propiedades que son obligatorias incluir en cada Entidad. PartitionKey que nos ofrece versionado de Entidades y RowKey que indica la versión de la entidad. Para entenderlo, mejor veamos la imagen.

clip_image010

Aparte de estas dos entidades, podemos tener hasta 255 propiedades en cada entidad.

Para trabajar con ellos tenemos REST y como se ve en la imagen clases .NET.

clip_image012

Por ahora, en la CTP, se indexa solo por las propiedades PartitionKey y RowKey, pero en el futuro habrá otros índices.

Colas

Ofrece un mecanismo fiable para el envío de mensajes en el contexto de una aplicación entre varios servicios. El ejemplo típico de uso de las colas, es el mostrado en la imagen:

clip_image014 Un servicio almacena un mensaje que es procesado en el background por otros procesos.

No hay límites en el número de mensajes, pero eso si, no pueden superar los 8KB. En caso de superarlo, ya tenemos que usar Blobs o Tablas para almacenarlos.

La semántica de almacenamiento y recuperación es la siguiente:

Enqueue (QueueName, Message): Como imaginamos almacena el mensaje en la cola QueueName.

Dequeue (QueueName, Invisibility Time T): Podemos suponer lo que hace dequeue, pero… ¿Qué es esto de invisibility time? Simplemente, es un timeout, tiempo durante el cual, el mensaje está invisible en la cola, pero no está disponible para otros servicios, si el timeout se supera, el mensaje vuelve a estar disponible. La filosofía detrás es que si el servicio que ha recogido el mensaje falla antes de acabar, el mensaje no es procesado, por eso es importante la siguiente operación: Delete.

– Delete (QueueName, MessageID): Borra un mensaje de la cola, e indica a la cola, que este mensaje ha sido procesado correctamente, se podría decir que es un commit en una transacción. Solo aclarar que el MessageID es devuelto por la sentencia Dequeue.

Re

Etiquetas de Technorati: ,,

sumen

Hemos visto como vamos a poder almacenar datos en la nube a través de estos servicios, Datos cuya escalabilidad está garantizada por los miles de servidores disponibles en esta plataforma y la disponibilidad garantizada pues se crean tres réplicas de los datos.

Pero no pensemos que este servicio es el único para almacenar datos. Como en un Sistema Operativo tradicional, almacenamos datos en nuestro disco, en ficheros, pero también podemos querer almacenar datos en una Base de Datos por las ventajas que ofrece. Aquí ocurre lo mismo, pero en el caso de querer almacenar en una Base de Datos, tendremos que dirigir nuestros pasos hacia los Sql Data Services (SDS).

Anuncios

Una respuesta

  1. […] Como decíamos, todo esto es accesible a través de REST y clases .NET, de una forma muy parecida a la ya introducida en el blog sobre Servicios básicos de almacenamiento en Windows AzureTM. […]

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: