Foro de Arquitectos: caché en azure a fondo

Post on 17-Jul-2015

358 views 3 download

Transcript of Foro de Arquitectos: caché en azure a fondo

Microsoft Azure nos provee de diferentes

servicios de caché distribuida

Cachés en Azure

FERNANDO ESCOLAR

fernandoescolar

Development & Cloud Lead consultantfernando.escolar@tokiota.com

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

fernando.escolar@tokiota.com

@fernandoescolar