Windows Azure Caching (Preview) II: Caché dedicada o distribuida y su “Capacity Planning”

image31_thumb[3]AzureCachingPreview_Dedicated

Hace unos días veímamos en este artículo: “Windows Azure Caching (Preview) I: Introducción y análisis de la caché  “Co-Located”, una distinción entre los distintos tipos de caché que presenta Windows Azure Caching (Preview) además de las diferencias con “Windows Azure Shared Caching”. En el ejemplo desarrollado vimos como hacer uso de la misma y como realizar su despliegue en la nube.

 

Nuevamente, hablaremos de la caché, pero en este caso, concretamente de la caché dedicada o distribuida con Windows Azure.

 

Veamos cuales son los pasos y camino a seguir para tener una caché altamente escalable:

Desde  Visual Studio 2012 RC, creamos un proyecto de tipo “Windows Azure Cloud Service” con el nombre ““WindowsAzureDedicatedCache”  al que añadimos dos Roles, uno de tipo “ASP.NET MVC 4 Web Role” y otro, de tipo “Cache Worker Role”.

image

Seguiremos los mismos pasos que el el post anterior:

  • Añadiremos las referencias al proyecto MVC con Nuget.
  • Crearemos el nuevo Controller y las vistas para mostrarr el uso de esta nueva caché junto con el mísmo código. 

Para el Role de tipo ASP.NET MVC, al contrario que en el ejemplo anterior, desabilitamos el uso de Caching.

imageimage

  • Ahora habilitamos la caché para el Role de tipo “Cache Worker Role”:

imageimage

 

De la misma manera que en ejemplo del post anterior, realizamos el despliegue habilitando la conexión remota:

image

Finalizado el despliegue nuesta aplicación funcionará exactamente igual. La diferencia es que en este caso, se trata de una caché Dedicada o distribuida, con lo que si para el Role Web (ASP.NET MVC), además de un reciclado de su Application Pool, o un “IISReset” o un reinicio del servicio “World Wide Web Publishing Service”,  reiniciamos el Role de Azure, los valores almacenados en la caché permanecen, sin duda, puesto que se encuentra en otro Role.

 

Si ahora, nos conectamos remotamente a la VM correspondiente al “Cache Worker Role”, podremos observar en este caso, que el tamaño usado por el servicio “CacheServie.exe” asciende a 1GB aproximadamente.

image_thumb111

¿Por qué esto valor? Pues bien, este valor o consumo de memoria, está relacionado directamente con las capacidades que ofrece Windows Azure de acuerdo a los tamaños de las VM’s y según puede verse en la siguiente tabla:

image_thumb13

De ahí, que en nuestro ejemplo, como estamos haciendo uso de una instancia “Small” este valor sea de 1GB.

En base a estos tamaños, es recomendable que antes de comenzar  un proyecto tengamos claro  cual será el tamaño de nuestra caché. Pare ello, Microsoft proporciona una hoja Exel (“Capacity Planning Guide spreadsheet”),donde podemos realizar los cálculos necesarios para la estimación oportuna y así, poder escalar  Horizontalmente o Verticalmente en función a dicha necesidad.

En esta hoja, también se realizan las estimaciones para el uso de caché “Co-Located” donde en lugar de estos tamaños se obtienen  porcentajes (”%”), puesto que se trata de compartir la memoria de un Role en concreto con el uso de cache. En el ejemplo del post anterior este valor se correspondía con un 30%, que es valor establecido por defecto para una instancia pequeña (“Small”) pero que dependerá igualmente según el tamaño de la instancia.,

 

Una vez más, espero que haya sido de utilidad.

 

Saludos @Home
Juanlu, ElGuerre

Published 4/7/2012 19:57 por Juanlu,ElGuerre
Comparte este post:
http://geeks.ms/blogs/jlguerrero/archive/2012/07/04/windows-azure-caching-preview-ii-cach-233-dedicada-o-distribuida-y-su-capacity-planning.aspx