Windows Azure como plataforma de despliegue

febrero 7, 2012 | In: Arquitectura, Cloud Computing, Despliegue

Windows Azure es la plataforma de servicios Cloud Computing de Microsoft. Proporciona servicios que van desde la contratación de capacidad de cómputo, almacenamiento de datos y bases de datos relacionales, hasta la federación de aplicaciones, distribución de contenidos a nivel mundial, servicios de identificación de usuarios, etc.

Los servicios proporcionados por Windows Azure respetan la filosofía del Cloud Computing, por lo que reflejan tanto sus ventajas como sus inconvenientes, que ya vimos en el post anterior. Según anuncia Microsoft, podrá ser utilizado a través de las tres capas clásicas de un entorno Cloud: IaaS, PaaS y SaaS; aunque la apuesta principal de Microsoft es la de explotarlo como entorno PaaS y es ahí donde esta plataforma ofrece más ventajas y servicios.

Si nos decidiésemos a utilizarlo como IaaS, y al ser cada servicio totalmente independiente de los demás, podremos utilizarlo como almacenamiento no relacional de datos, servicio de ejecución de aplicaciones, almacenamiento de datos relacional, como plataforma de virtualización.

Servicios en Azure

Servicios en Azure

Veamos algunas de estas posibilidades con más detalle.

Computación

Windows Azure es capaz de ejecutar aplicaciones, o Web Roles y Worker Roles (como se denominan en esta plataforma) en instancias de cómputo.

Es posible ajustar el número de instancias y el tamaño de las mismas en función de las necesidades, de manera manual, programada, o automáticamente si se emplean servicios de terceros o si se implementan métricas.

Únicamente se pagan aquellas aplicaciones que están desplegadas que están consumiendo capacidad de cómputo, y su precio, por horas, varía en función del tamaño de la instancia contratada.

Cuando el número de accesos por segundo a la aplicación desplegada aumenta, podrán levantarse nuevas instancias que cubrirán las necesidades demandadas, en cuyo caso Azure realiza el balanceo de carga automáticamente entre los distintos frontales, siempre y cuando nuestra aplicación esté preparada para ello.

Las instancias de Azure permiten ejecutar aplicaciones desarrolladas en numerosas tecnologías: .NET, Java, PHP, Node, Python…

Data Management

Windows Azure ofrece múltiples servicios para manejar datos, ya sea mediante sistemas relacionales o no. Todos los servicios ofrecen un SLA de 99,9% en las copias de seguridad.

Storage Tables

El servicio Storage Tables ofrece características NoSQL, para almacenar entidades de datos, empleando para ello el servicio Azure Storage. Es un modo apropiado para almacenar grandes cantidades de datos no estructurados, de forma económica. Las tablas pueden escalar hasta un volumen masivo de datos por encima de los 100 terabytes y son accesibles a través de APIs REST.

Storage BLOB

El servicio de almacenamiento BLOB (Binary Large Object) es un mecanismo sencillo para almacenar grandes cantidades de ficheros de cualquier tamaño, que contengan texto, datos, videos, etc. Permiten escalar de manera masiva y son accesibles a través de un API Rest.

El principal inconveniente de este servicio es que no proporciona un mecanismo nativo de acceso para mantenimiento y consulta manual de los ficheros, por lo que será necesario implementarlo e nuestra aplicación o acudir a servicios de terceros, si queremos realizar esta administración como haríamos con un sistema de ficheros tradicional.

SQL

Azure proporciona una completa base de datos relacional muy similar a SQL Server 2008 R2. Es la alternativa más cara para almacenamiento de datos, pero permite realizar consulta sobre datos estructurados asegurando un rendimiento elevado, por lo que suele emplearse de manera combinada con servicios de almacenamiento de tipo BLOB o Storage Table. Los servicios se proporcionan a través de un API Rest.

Azure proporciona servicios de sincronización de datos si la aplicación desplegada debe trabajar con múltiples Bases de datos, con SQL Data Sync.

Otros servicios

Azure ofrece muchos otros servicios que enriquecen la plataforma y facilitan la construcción de aplicaciones altamente escalables. Por ejemplo:

  • Servicios de Caché que mejoran la velocidad de respuesta de la aplicación en aquellos casos en los que sea posible.
  • Service Bus, una utilidad que permite conectar aplicaciones alojadas en una nube pública con aquellas alojadas en nube privada, de forma que puedan construirse nubes híbridas cuando una empresa lo necesite.
  • CDN: El servicio Content Delivery Network permite distribuir contenido en diversos centros de datos alrededor del mundo, acercando físicamente los datos a los usuarios finales, de modo que la transmisión sea óptima para el resultado deseado.
  • Identidad: Proporciona servicios de identidad digital mediante distintos proveedores, permitiendo autenticar usuarios en la plataforma.

Conclusión

Si bien Windows Azure es una plataforma reciente, y por lo tanto es aún inmadura en algunos sentidos (especialmente en el gran número de tareas que han de realizarse con frecuencia y que sin embargo no disponen de una herramienta apropiada, por lo que hemos de acudir a servicios de terceros o implementarlos nosotros mismos), es una alternativa muy adecuada para desplegar aplicaciones que deban ser ejecutadas en entornos cloud, siempre y cuando tengamos en cuenta que para maximizar el aprovechamiento de sus servicios es necesario que la aplicación se desarrolle conforme a las características de un entorno multi-tenencia y multi-instancia, así como otras limitaciones o restricciones impuestas por la propia plataforma.

Comments are closed.

Latest comments

  • None found