Windows Azure nos da la posibilidad de trabajar con almacenamiento relacional en la nube.
Uno de los factores diferenciales de la
plataforma Azure que estamos estudiando en este
manual, con respecto a otras
alternativas de computación en la nube
es la posibilidad de trabajar con almacenamiento
relacional. Microsoft, recogiendo
el feedback de la comunidad, decidió
apostar por un SQL Server en la nube
que nos permita trasladar nuestros desarrollos
ya realizados a Azure con un simple
cambio en la cadena de conexión.
Pese a que SQL Azure cuenta con algunas
limitaciones (ver tabla 2) con respecto
a su versión tradicional, puede satisfacer
plenamente las necesidades de la mayoría
de los proyectos.

La curva de aprendizaje de SQL Azure
es mínima, y podemos utilizar SQL
Server Management Studio (SSMS) para
su administración, mientras que nuestros
desarrollos accederán a los datos
mediante el mismo código ADO.NET.
Para obtener los datos del servidor y
poder realizar las conexiones pertinentes,
debemos recurrir al portal de gestión de
SQL Azure y
pulsar en el apartado "DataBase". Pese
a todo, no nos resultará inmediato conectarnos
mediante SSMS, que nos mostrará
un mensaje de error al tratar de conectar
con el servidor. El problema no es otro
que el hecho de que SQL Azure tiene
cerradas por defecto todas las puertas de
acceso. Para solventar esta situación, volvemos
al apartado "Database" del portal
y en él seleccionamos la pestaña "Firewall
Settings"; añadimos una nueva regla
en el cortafuegos indicando nuestra dirección
IP y esperamos unos minutos a que
la regla se replique.
Una vez solventado el escollo de la
seguridad, nos encontraremos con otro
error derivado del hecho de que SSMS
espera conectarse a un servidor de SQL Server tradicional, no compatible al 100%
con SQL Azure, lo que puede provocar
algunas incompatibilidades con herramientas
de administración como el propio
SSMS. Para sortear este último escollo,
cancelamos la ventana de conexión y
pulsamos el botón "Nueva consulta". De
nuevo se visualizará la ventana de conexión,
en la que pulsamos el botón "Opciones"
e indicamos, en la pestaña "Propiedades
de Conexión", el nombre de la
base de datos con la que deseemos trabajar.
En nuestro caso, al no haber creado
ninguna, indicaremos la base de datos
master. Pese a no disponer de toda la
potencia de gestión de SSMS, podremos
ahora ejecutar sentencias de Transact-
SQL contra nuestra base de datos en la
nube. Es importante destacar que estos
primeros problemas de compatibilidad
ya se encuentran solventados en el recientemente
publicado SQL Server 2008 R2.
Nota: Será de vital importancia optimizar
las consultas y los accesos a la
base de datos, ya que es importante
recordar que en el entorno de la
nube pagamos por su uso; ¡los
SELECT * siempre son más caros!
Por último, es importante destacar
que existen dos versiones de SQL Azure:
la Web Edition, de 1 Gb de capacidad, y
la Business Edition, de 10 Gb. Si necesitamos
superar los 10 Gb de información
relacional, deberemos hacer uso de más
de un servidor de bases de datos. Pese a
todo, en el pasado MIX de Las Vegas se
anunció, con disponibilidad inmediata,
una nueva edición de 50 Gb.
Un amplio horizonte
de posibilidades
En la actualidad, Azure ya ofrece algunos
otros interesantes servicios en producción,
además de los que hemos mencionado hasta
ahora, así como otros servicios de
momento disponibles en evaluación:
- AppFabric (no confundir con el Fabric
Controller). Se trata de un conjunto de
potentes servicios orientados a las
comunicaciones, como el Service Bus,
que mediante una implementación del
patrón Enterprise Service Bus nos permite
registrar y exponer servicios entre
diferentes redes a través de dispositivos
de control de accesos como firewalls
o NAT, o el Access Control, con
el que podremos exponer dichos servicios
de forma segura.
- Windows Azure Drive. Es un servicio
que nos da acceso a una API NTFS,
mediante la cual podemos hacer uso
de un espacio de disco permanente, implementado con Windows Azure
Page Blob. No está pensado para que
lo utilicemos como almacenamiento
de datos, pues para eso ya tenemos las
herramientas de Storage y SQL Azure,
sino que está orientado a facilitarnos
la migración de desarrollos existentes
que hacen uso de recursos locales (por
ejemplo, archivos locales de configuración).
Cuenta con un límite de 1 TB
de información por page blob. Actualmente
se encuentra en fase beta.
- Codename Dallas. Es un servicio de
datos (DaaS) que nace con la idea de
englobar fuentes de datos para que
puedan ser consumidas por programadores
e information workers. Nosotros
también dispondremos de la posibilidad
de proveer nuestra información
creando servicios propios, que podremos
publicar para que sean consumidos
por terceros. Este producto se
encuentra en CTP, pero para que nos
hagamos una idea y clarificar el concepto,
entre los servicios actuales se
encuentran NASAMars Orbital Images
y UNESCO UIS Data.
Un buen modo de estar al dia con
relacion a la aparacion de nuevos servicios
y utilidades alrededor de Azure
es el portal
PinPoint de Microsoft
o el
centro de desarrollo para Azure en MSDN.
Conclusiones
La conclusión más importante que podemos
extraer acerca del tema de este
manual sobre Windows Azure
es el empeño que ha puesto Microsoft
en no hacer traumático el camino de nuestras
aplicaciones hacia la nube, que en
muchos casos puede producirse con un
simple cambio en la cadena de conexión.
Por añadidura, nos ofrece una plataforma
de despliegue profesional asequible tanto
para nuestro día a día como para los servicios
destinados a ser los nuevos casos de
éxito de la red; todo ello de una forma sencilla,
y aislándonos de la problemática de
gestión de servidores y comunicaciones.
¿Y tú? ¿Cuánto vas a tardar en subirte
a la nube?