Tal y como comentaba en el post anterior, a través del uso de máquinas virtuales es como Windows Azure logra la separación de servicios entre servidores físicos. Cada máquina virtual esta dividida en varias máquinas virtuales; con esto, la aplicación de un cliente no interferirá con otra aplicación en el mismo servidor físico ya que cada una corre en una máquina virtual diferente.
Conformación de una máquina virtual
Cada máquina virtual tiene instalado la aplicación del cliente – conocido como servicio. Esta máquina virtual es una instalación de Windows Server 2008 R2 con los componentes extras de Windows Azure. En el caso de tener un rol web la instalación tendrá habilitado el IIS 7.5. Un rol es simplemente otro nombre para la aplicación. En realidad se refiere a la imagen base del VM que “hostea” la aplicación – más acerca de los roles en Windows Azure en el próximo post.
Aunque nuestra aplicación corre en una máquina virtual, esta máquina virtual se abstrae del dueño de la aplicación el cual solamente puede ver la instancia del rol – de la aplicación – y nunca el contenido de la máquina virtual – Ejemplo claro del concepto de PAAS.
Por último, hace falta agregar que cada máquina virtual tiene un componente conocido como agente del proceso. Este agente de proceso monitorea la salud de la instancia en la que está ejecutándose y le reporta su estado al Fabric Controller; esto le permite a este componente llevar a cabo acciones tales como manejo de actualizaciones, reiniciar roles que no están respondiendo y mover las aplicaciones entre servidores físicos para garantizar su continuidad.