Jugando con Velocity (I)!

Como sabéis, uno de los cuellos de botella de las aplicaciones puede ser la realización de peticiones de datos repetitivas (siempre de los mismos datos) de disco o de una cierta base de datos. Lógicamente, lo que idealmente queremos es que nuestras aplicaciones se comporten bien o muy bien en términos de rendimiento, disponibilidad y escalabilidad. Pero ¿Cómo podemos mejorar el rendimiento, escalabilidad y disponibilidad de nuestras aplicaciones tocando mínimamente nuestras aplicaciones y sin tocar la infraestructura existente? Una de las posibilidades que dará Microsoft como parte de .NET Framework 4.0 y Visual Studio 2010 es Velocity. Se trata de un servicio de caché distribuida que proporciona un mecanismo para almacenar datos en caché que puedan ser utilizados por las aplicaciones sin tener que recurrir a ir a disco o a la BD para todas las peticiones.

image

Por lo tanto, Velocity es caché en memoria explícita y distribuida para todos los tipos de datos: objetos del CLR, filas, XML, datos binarios, …En este primer post vamos a ver lo sencillo que resulta instalar Velocity (CTP2) y algunas nociones de administración.

Instalando Velocity

Como veréis, el proceso de instalación de Velocity es bastante sencillo (la última CTP, versión 3.0 de abril, disponible la podéis descargar de este enlace):

  • La primera pantalla la pasamos con un simple Next.
  • A continuación aceptamos la correspondiente licencia y pulsamos Next.
  • Apto seguido, procedemos a instalar Velocity pulsando Install.
image image image

  • Durante el proceso de instalación se nos preguntará si queremos permitir acceso a través del cortafuegos una serie de programas que necesitará Velocity para estar operativo
  • Tras finalizar el proceso de instalación, aparece la pantalla de configuración Cache Host Configuration dónde definiremos los parámetros de nuestro sistema de caché. Aquí especificamos:
    • El tipo de almacenamiento (Carpeta compartida , una BD SQL Server). En mi caso, he elegido la opción de carpeta compartida (que he creado previamente con los permisos adecuados).
    • La ruta de red (carpeta compartida con permisos lectura/escritura para everyone) para el cluster.
  • Hacemos un test de la conexión, y aparecerá un mensaje de si queremos crear un nuevo cluster. Decimos que sí, y si todo ha ido bien, podremos configurar el resto de parámetros del cluster:
    • El nombre del cluster (Test).
    • El tamaño del cluster (Small, 1-3).
  • Pulsamos Save & Close.
image  image image
  image  

  • En el asistente de configuración de Velocity, pulsamos Finish.
  • Comprobamos que los elementos de configuración de Velocity se ha creado correctament. Se tienen que haber creado dos BD Compact Edition en el que también se guardan las configuraciones de Velocity.
image image

Y ya está, este proceso tan sencillo nos permite instalar Velocity y disponer de un potente sistema de caché en memoria.

Administración de Velocity

Hasta ahora, hemos instalado Velocity…pero, ¿lo tenemos listo para usar? La respuesta es que no, ya que tendremos que realizar unos pasos previos como iniciar el Cache Host y el Cache Cluster. Esto lo podemos hacer a través de la Administration Tool – Microsoft Distributed Cache que es una herramienta de administración por línea de comandos basada en Powr Shell. La primera vez nos pedirá la forma de ejecución, pudiendo especificar:

  • Never.
  • Default.
  • Run Once.
  • Run Always.

En mi caso he especificado Run Always, lo que en la práctica se traduce en que siempre tendré el prompt Power Shell de la herramienta de administración disponible para usar.

 image image Velocity_1

Desde la herramienta de administración podremos hacer cosas como;

  • Determinar información acerca del host de la caché mediante Get-CacheHost.
  • Obtener la configuración de la caché mediante Get-CacheConfig (ver imagen),
  • Iniciar el cluster de caché (primer paso) mediante Start-CacheCluster.
  • Iniciar la caché en sí mediante Start-CacheHost.
 Velocity_4 Velocity_5 Velocity_2
  Velocity_3  
 
Por lo tanto, la primera conclusión que podemos extraer de Velocity es que resulta muy sencillo de instalar y en pocos minutos tenemos un sistema de caché distribuido listo para usar en nuestras aplicaciones. Esto lo dejamos para próximos posts (eso espero ;-)).