lunes, 9 de diciembre de 2013

Modelos de Ejecución Windows Azure


Modelos de Ejecución Windows Azure


Windows Azure es una plataforma Cloud pública (Internet), localizada en servidores de Microsoft, que permite ejecutar aplicaciones, almacenar, administrar y  analizar información, conectar aplicaciones y muchas más funcionalidades.

Windows Azure provee muchas opciones al momento de crear nuestras soluciones, y dentro de ellas una tarea importante es seleccionar el modelo de ejecución de nuestras aplicaciones, esto quiere decir cómo vamos a configurar la aplicación en Windows Azure.

La plataforma nos provee tres opciones para llevar nuestras aplicaciones a la nube:
1.- WebSites
2.- Virtual Machines (IaaS)
3.- Cloud Services (PaaS)

1.- Websites

El primero modelo de ejecución y el más simple son los WebSites, que podríamos decir corresponde a un modelo muy parecido al conocido Web Hosting, donde tenemos aplicaciones Web (estático o dinámico) y estas corren sobre un servidor Web
En el caso de Windows Azure estos sitios ocupan Internet Information Services (IIS) y se pueden configurar los recursos necesarios para la aplicación en tres opciones:

  • Free: Como su nombre lo dice es gratuito y es un ambiente compartido donde varias aplicaciones o sitios Web funcionan sobre el mismos servidor (IIS) -Multitenant-
  • Shared: Es un ambiente compartido, pero donde se pueden crear más instancias de la aplicación Web
  • Standard: Es un ambiente exclusivo para la aplicación (Máquina Virtual) y además se le pueden asignar los recurso de RAM y CPU necesarios.
Muy simple para hacer despliegue rápido de aplicaciones web, compatible con varios lenguajes de desarrollo (ASP .NET, PHP o Node.js)

2.- Virtual Marchines

En esta modalidad se crean máquinas virtuales (VM) desde archivos VHDs, estas máquinas virtuales pueden ser creadas desde la galería provista por Microsoft (Plantillas con máquinas pre configuradas) o también máquinas provistas por el usuario.
Se paga por las horas mientras la VM está corriendo.

Algunos de los sistemas provistos en la galería de plantillas son:
Windows Server 2008 R2, Windows Server 2012, Windows Server con SQL Server, Suse, Ubuntu, Centos y últimamente máquinas con Oracle y WebLogic

Cuando se crea una máquina se configura el tamaño de la máquina, asignando los recursos necesarios para la nuestras aplicaciones (CPU y RAM principalmente)
Esta modalidad ofrece todas las opciones de configuración de un ambiente totalmente controlado por el usuario, lo que permite configurar aplicaciones más complejas y que requieren la instalación de componentes externos.

3.- Cloud Services

En esta modalidad se crean máquinas virtuales para alojar aplicaciones, pero la diferencia con Virtual Machines es que la creación, configuración y administración del sistema operativo es por cuenta de Microsoft y nosotros solos nos preocupamos de la lógica de nuestra aplicación.
Al momento de hacer deploy de nuestra aplicación solo debemos indicar a Windows Azure  el número de instancias de nuestra aplicación (Máquinas virtuales) y el tamaño de estas.
Cuando creamos nuestros Cloud Services podemos incluir dos tipos de aplicaciones: Web Role (Web y Servicios)  y WorkerRole  (procesamiento en segundo plano),  las aplicaciones pueden integrarse en un contexto compartido de ejecución
En caso que una VM fallara Windows Azure detecta e inicia una nueva instancia de la aplicación.

Conclusión:


Todos los modelos de ejecución cubren necesidades específicas y tienen sentido dependiendo el escenario,  mientras Virtual Machines nos provee más control sobre los ambientes de ejecución, también requiere más administración y nos podría generar problemas al tratar de escalar nuestras aplicaciones.
Websites es el modelo de ejecución más simple para aplicaciones Web, pero al mismo tiempo el más limitado al momento de configuración (no es posible acceder a las máquinas virtuales que alojan nuestros sitios web)
Cloud Services es la mejor opción para aplicaciones con un bajo costo de administración, procesamiento  en segundo plano (workerRoles) y escalamiento de nuestras aplicaciones.

Otro factor a tener en cuenta al momento de elegir cual es nuestro modelo de ejecución son los precios, que dependiendo de cuantos recursos ocupemos puede modificar nuestra decisión de un modelo por sobre otro, para ello podemos simular los ambientes en la calculadora de precios.




No hay comentarios:

Publicar un comentario