•  
 

¿Qué es Azure?

Azure es la plataforma de Microsoft para computación en la nube (cloud computing). Cloud computing es el procesamiento basado en web, donde recursos compartidos, software e información son provistos a computadoras y otros dispositivos a demanda a través de Internet. Es un nuevo paradigma basado en computación distribuida (grid computing), Internet y virtualización, que brinda altísimos niveles de servicio y escalabilidad. Los principales líderes de la industria de TI ya cuentan con sus soluciones y plataformas para la nube: Microsoft, IBM, Amazon, Google, etc.

La plataforma Microsoft Azure provee una solución tipo PaaS (Platform As A Service) la cual provee no sólo el hardware sino también el software de base sobre el cual publicar las aplicaciones (e.g. sistema operativo y sus actualizaciones, .NET Framework, Internet Information Server, SQL Azure) permitiendo que los desarrolladores se enfoquen en la solución de negocio que se desea construir, olvidándose del stack de tecnologías que se encuentra por debajo.

Si bien la plataforma Azure permite el desarrollo de virtual de cualquier tipo de aplicaciones basadas en Internet, está especialmente recomendada para aquellas soluciones que requieran altos niveles de escalabilidad (aumentar/disminuir fácilmente y a demanda los recursos utilizados) y/o de elasticidad (absorber picos de demanda), altos niveles de servicio o SLA (Service Level Agreement), baja inversión inicial (pues implica un modelo de arrendamiento mensual de los recursos consumidos sin incurrir en compra de hardware ni software), mucho poder de cómputo (ya sea permanente o por períodos) o mucho almacenamiento, entre otros.

Asimismo, Azure permite la construcción de aplicaciones distribuidas con componentes en la nube así como con componentes en servidores locales (on-premises). Esto permite una variedad de escenarios de implementación de soluciones en la nube. Por ejemplo, contar con un componente de interfaz gráfica (GUI) en la nube implementado como un sitio web en ASP.NET que recibe pedidos de usuarios, los procesa (también en la nube) pero que almacena en una base de datos SQL Server ubicada en los servidores propios de una organización.

Características de una Solución en Azure

Los elementos que componen una solución sobre la plataforma Azure dependerán de factores como el escenario de distribución mencionado anteriormente. Sin embargo, los siguientes componentes típicamente están presentes en una solución sobre Azure:

  • Web Roles: permiten alojar aplicaciones web (e.g. ASP.NET, MVC) brindando los servicios de Internet Information Server (IIS). Típicamente los componentes de interfaz gráfica (GUI) se diseñan como uno o varios web roles.
  • Worker Roles: permite alojar aplicaciones de propósito más general, sin necesidad de contar con los servicios de IIS. Típicamente los procesamientos pesados en segundo plano se realizan en worker roles y se comunican con web roles mediante mensajes asincrónicos (a través del componente Queues de Azure Storage).
  • VM Roles: permite alojar una máquina virtual con una imagen de un Windows Server 2008.
  • Azure Storage: brinda tres servicios diferentes de almacenamiento: Blobs (para almacenar datos binarios de gran tamaño), Tables (para almacenar datos estructurados no-relacionales) y Queues (cola de mensajes para comunicación asincrónica). Además, estos servicios de almacenamiento ha sido específicamente diseñados para soportar grandes cantidades de datos, por lo que permiten la escalabilidad de las aplicaciones desde el punto de vista de los datos.
  • SQL Azure: es la versión para la nube del motor de base de datos SQL Server. En el contexto de Azure es la única forma de guardar datos relacionales en una aplicación, dado que las Tables del Azure Storage no lo son.


A continuación se presenta, a modo de ejemplo, una posible arquitectura para una aplicación que requiera un fuerte procesamiento (en este caso en paralelo):

Como se observa en la figura anterior, la solución cuenta con un Web Role (implementado como un sitio web ASP.NET) que actúa como front-end atendiendo las peticiones de los usuarios y las reenvía en forma asincrónica (de forma de no bloquear la interfaz gráfica) mediante Queues a los Worker Roles, de los cuales existen múltiples instancias para atender en forma paralela los fuertes requerimientos de procesamiento, y devolverán los resultados al Web Role (también a través de la Queue) y utilizarán Blobs para el almacenamiento de los datos.

Beneficios de una Solución en Azure

A continuación se presentan algunas de las ventajas de la plataforma Azure:

  • Disponibilidad: la plataforma Azure asegura un SLA de 99,95% a partir de cierta cantidad de role instances contratadas. Esto permite un altísimo nivel de up-time de la solución y sin la necesidad de contar con un equipo propio de soporte técnico.:
  • Escalabilidad: permite fácilmente contratar más poder de cómputo o de almacenamiento, ya sea en forma manual desde la página web de administración de sitios de Azure o bien en forma programática desde el código de la propia aplicación.
  • Elasticidad: debido a que se contratan máquinas por un período y luego retornar esos recursos, ello permite absorber picos de demanda ya sea planificados o no.
  • Inversión: no existe inversión inicial y el provisioning es inmediato. No se deben adquirir ni el hardware ni el software de base necesario, pues éstos son costeados en forma mensual dependiendo de la cantidad de recursos contratados.
  • Soporte: al ser los servicios de hardware y software alojados en la nube, la empresa no debe contar con un equipo técnico de soporte. Únicamente la aplicación desarrollada es la que debe ser mantenida, no así el hardware y software subyacente.
  • Pay-as-you-go: todo lo anterior define el modelo de pago de Azure como “pay-as-you-go” ya que únicamente se abona el costo operativo mensual en relación a los recursos contratados en la nube.
  • Foco en el negocio: el hecho de alojar las soluciones tecnológicas fuera del ámbito de la empresa, le permite a ésta enfocarse más en su negocio, sin distraer esfuerzo, recursos humanos y materiales a tareas de infraestructura tecnológica.
 

En lo que respecta a la plataforma Azure frente a otras propuestas de computación en la nube, la misma ofrece las siguientes ventajas:

  • Soporte nativo y total a la plataforma .NET, Internet Information Server y SQL Server (en su versión para Azure).
  • Foco en las aplicaciones, no en el hardware ni software de base (otras alternativas de computación en la nube proveen únicamente la infraestructura de hardware, lo que se conoce como IaaS, Infrastructure As A Service).
  • Balanceo de carga (que permite tener un único punto de entrada a la aplicación y distribuir la carga de peticiones entre múltiples role instances).
  • Posibilidad para interactuar nativamente con el creciente conjunto de soluciones tipo SaaS (Software As A Service) de Microsoft como ser Dynamics, Exchange, SharePoint, etc.
 

Twitter

Newsletter

Si desea recibir información sobre Arkano, suscríbase a nuestra Newsletter