foro de arquitectos: caché en azure a fondo
TRANSCRIPT
Microsoft Azure nos provee de diferentes
servicios de caché distribuida
Cachés en Azure
AgendaCaché
¿Qué es?Memory vs. no-memoryTipos de datos
A fondo¿Cómo usar la cache?Patrón: cache-aside¿Por qué usar cachés?
Caché modernaCachés distribuidasCachés en Microsoft AzureRedis
ResumenPruebasConclusiones
Caché¿Qué es?
Tipos de datos
A fondo¿Cómo?
Patrones de diseño
¿Por qué?
Caché moderna
Microsoft Azure
Redis
ResumenPruebas
Conclusiones
¿Qué es una caché?
Caché L1
Caché L2
Caché L3
Cache memory vs. no-memory
Demo: output caché
Cache memory vs. no-memory
Demo: HttpRuntime.Cache
Tipos de datos
Datos de referencia
Datos de actividad
Datos de recursos
En resumen:
Datos de referencia
Datos de actividad
Datos de recursos
¿Cómo usar la caché?
cache-aside pattern
1. Determinar si un objeto ya está almacenado en la memoria caché.
2. Si no está almacenado en la memoria caché leerlo del almacén de datos
3. Guardar el objeto que hemos cargado en la memoria caché
?. Devolver el objeto almacenado en la caché
Demo: cache-aside
Consideraciones a la hora de usar cachés
• Tiempo de vida de objetos en caché limitado
• Desalojo de datos
• Preparación inicial de caché
• Consistencia de la información
• Cachés locales
¿Por qué usar caché?
Porque reducimos la latencia
Latencia baja → respuesta rápida
Respuesta rápida → más velocidad
Más velocidad → cliente contento
Cliente contento…
Alternativas:
Más hierro
Performance de procesos
Usando agregados
Variables de sesión
Caché output
Pero:
Escalar es caro
Los procesos tienen límites
Los agregados no son la panacea
La sesión no es compartida
El output lo gestiona el cliente
Caché moderna
Caché distribuida:
Nuevos retos: Nuevo hierro
Gestión
Integración
Escalabilidad
Plan de contingencia
…
Servicios de caché en la nube
Caché en azure
AppFabric Cache
Cache In-Role
Azure Cache Services
Virtual Machine
Redis
Demo: Microsoft Cache
Demo: Cache InRole
Demo: InRole Gateway
Demo: Cache Services
Redis
Redis:
Es una base de datos NO-SQL que almacena información del tipo Clave/Valor.
Características de redis
• Maneja cadenas de texto (o byte arrays)
• 5 tipos de datos:• Keys
• Hashes
• Lists
• Sets
• Sorted Sets
• Pub/Sub
• Operaciones con datos
• Scripts en LUA
• En memoria, pero persiste en forma de snapshots
Demo: Redis
Casos de uso de redis
• Listados de últimos xxx: LPUSH y LTRIM
• Tablas de top o de rankings: ZADD, ZREVRANGE y ZREVRANGEBYSCORE
• Cálculos de tipo “karma”: ZADD, ZRANK, ZINCRBY
• Contadores usuarios activos: INCR y EXPIRE
• Publicación y suscripción: mediator
• QUEUE’s (colas): BLPOP y LPUSH
• Textos auto-completables: ZADD, ZRANK y ZRANGE
• Almacenar información que caduca: EXPIRE
• …
https://www.desarrollaconmicrosoft.com/dotnetspain2015
Pruebas
Conclusiones </>
Bibliografía• http://www.wikipedia.org
• http://www.stackoverflow.com
• http://www.msdn.com• https://msdn.microsoft.com/en-us/library/dn568099.aspx
• Microsoft Azure Documentation
• http://redis.io/• http://oldblog.antirez.com/post/take-advantage-of-redis-adding-it-to-your-stack.html
• http://www.memcached.org
• https://github.com/enyim/EnyimMemcached
• https://github.com/ServiceStack
• https://github.com/StackExchange
• https://github.com/fernandoescolar/Tokiota.Redis
Muchas gracias!!!
Fernando Escolar
@fernandoescolar