34
1

Windows Server AppFabric Caching

Embed Size (px)

DESCRIPTION

CodeCamp 2010 presentation of Windows Server AppFabric Caching in Argentina

Citation preview

Page 1: Windows Server AppFabric Caching

1

Page 2: Windows Server AppFabric Caching

2

Usando “Windows Server AppFabric Caching” en escenarios de alta disponibilidad

Mariano Omar RodriguezArquitectoTellago Inc.

Page 4: Windows Server AppFabric Caching

4

Objetivos de la sesión

El problemaCacheando con Windows Server AppFabricOverviewDesarrollo

Page 5: Windows Server AppFabric Caching

5

¿Que es AppFabric Caching?

Es un cache explicito, distribuido y en memoria para aplicaciones y cualquier tipo de dato.

Objetos CLR, XML, Datos Binarios, etc.La memoria es distribuida entre múltiples servidores.

Page 6: Windows Server AppFabric Caching

6

¿Que es AppFabric Caching?

Vista unificada del cache

Los clientes del cache acceden a través del cliente

Los clientes acceden al cache

como si fuera único

La capa de cache distribuye los

datos a través de diferentes nodos

Page 8: Windows Server AppFabric Caching

8

¿Por que usarlo?

Comparte datos a través de diferentes aplicaciones.

No hay necesidad de ruteo “Pegajoso”.PerformanceEscalabilidad horizontal (Scale-out)Disponibilidad

Page 9: Windows Server AppFabric Caching

9

Deployment

Cach

ing

Ser

vice

Cache Tier

Configuración(Base de datos, file system share, etc.)Almacena políticas del cacheAlmacena información de particionamiento

Cach

ing

Serv

ice

Cach

ing

Ser

vice

Habilitar el rol de servidor de

cache

Copiar assemblies cliente y agregar

app.config

Usuarios

Web Tier

Aplicación

Caching Access Layer

Aplicatión Aplicatión

<hosts> <host name="BL1CDB8083714“ cachePort="22233" cacheHostName="DistributedCacheService"/> ….. </hosts> <localCache isEnabled=“true" ../><security … />

Caching Access Layer Caching Access Layer

Page 10: Windows Server AppFabric Caching

10

Seguridad

Seguridad basada en el dominioBasada en cuentas locales o de dominioSolo servidores autorizados pueden unirse al clusterSolo clientes autorizados pueden conectarse al cluster

grant-cacheallowedclientaccount domain\machine$grant-cacheallowedclientaccount domain\username

Seguridad a nivel transporteFirma y encriptación de mensajes

Page 11: Windows Server AppFabric Caching

11

Administración y monitoreo

Administración centralizada a través de PowerShellPerfmon para monitorear el cacheLogging

Soporta EWT

Page 12: Windows Server AppFabric Caching

12

Caching APIvar factory = new DataCacheFactory();var cache = factory.GetCache(“Catalog”);

cache.Put(“data-1”, new Data(“Some Data”));var data = (Data)cache.Get(“Data-1”);

cache.CreateRegion(“Region”);cache.Put(“data-1”, new Data(“Some Data”),

“Region”);var data = (Data)cache.Get(“Data-1”,

“Region”);

Page 13: Windows Server AppFabric Caching

13

Caching API – Jerarquia lógica1.Server2.Cache host3.Cache4.Region,5. Items6. Instancias

HostDirección fisica de la instancia

Caches (nombre)Pueden residir en varios servidores.Definidos en la configuración.

ItemClave, Contenido, Tags, TTL, Timestamp y Version

RegionesContenedor de itemsCreados implicita o explicitamente

Page 14: Windows Server AppFabric Caching

Caching API - Tagging

Permite agregar tags a los items

var tag = new Tag(“Tag”);cache.Put(“Data-101", new Data(“Data1"), new[]{ tag }, “region”);

cache.Put(“Data-102", new Data(“Data2"), “Region”);

// From the same or a different clientvar objects = cache.GetAnyMatchingTag(“Region“,

tag);

Page 15: Windows Server AppFabric Caching

Demo

Caching API

Page 17: Windows Server AppFabric Caching

Distribución de datosCache particionado

Escalar en memoria: mas máquinas, mas memoria para el cache.Escalar en throughput: mas máquinas, claves mas distribuidas, mejor throughput.

Page 18: Windows Server AppFabric Caching

Usando las ‘Features’

Clasificar los datosReferenciaActividadRecursos

Examinar requerimientosPerformance (Latencia y Throughput)ConsistenciaRemoción (¿Son los datos eliminables?)SeguridadDisponibilidad

Page 19: Windows Server AppFabric Caching

Tipos de dato

ReferenciaNo se actualizan frecuentementeCompartidos

ActividadLectura y escrituraNo compartidosEj: Shopping Cart

RecursosLectura y EscrituraCompartidos

Page 20: Windows Server AppFabric Caching

Datos de Referencia - performaceEl catálogo no cambia o cambia rara

vezEl costo de acceder a diferentes máquinas es inecesarioSolucion: Cache local

ApplicationApplication

AppFabric Caching Client

Put(K2, v3)

Routing Table

Cache2Cache1

Primary for K2,V2

K2, V2

Primary for K1,V1

K1, V1

Cache3

Primary for K3,V3

K3, V3

AppFabric Caching ClientLocal Cache

Routing TableK2, V2

Get(K2)Get(K2)

K2, V3

Page 21: Windows Server AppFabric Caching

Datos de Actividad - Disponibilidad

ApplicationApplication

(K2, V2)

Cache2Cache1 Cache3

Primary for

Get(K2)

Primary for Primary for

K3, V3

AppFabric Caching ClientRouting Table

K2, V2

PUT

Secondary for

K2, V2

K1, V1

Secondary for

K3, V3

Secondary for

K1, V1

AppFabric Caching Client

Routing Table

K2, V2

Replication Agent

Page 22: Windows Server AppFabric Caching

Datos de RecursoBloqueo optimista

Usando GetCacheItem se obtiene la versionCada actulización incrementa la versionCuando se llama a Put/Remove se debe suministrar la versión.

Page 23: Windows Server AppFabric Caching

Datos de Recurso Bloqueo pesimista

K1

Cliente1: GetAndLock ("k1")

Cliente2: GetAndLock ("k1")

Cliente3: Get ("k1")

Get común

GetAndLock obtiene bloqueo

GetAndLock en el mismo item falla

Page 24: Windows Server AppFabric Caching

Demo

Bloqueo OptimistaBloqueo Pesimista

Page 25: Windows Server AppFabric Caching

Notificación de datos

NotificacionesRegistran en cualquier cliente para notificar cambios

cache.AddCacheLevelCallback(DataCacheOperations filter, DataCacheNotificationCallback callback);

cache.AddRegionLevelCallback(string region, DataCacheOperations filter, DataCacheNotificationCallback callback);

cache.AddItemLevelCallback(string key, DataCacheOperations filter, DataCacheNotificationCallback callback);

Page 26: Windows Server AppFabric Caching

Notificación de datos

Application

Cache2Cache1

Primary for

K2, V2

Primary for

K1, V1

Cache3

Primary for

K3, V3

AppFabric Caching Client

Routing Table

Registra Notificación

para Key “K3"

Mapea Keys a Particion (ej:

P2)

Poll Required

Nodes

Nodes Return List of Changes

LSN Order

Partition: P2

Last LSN: 19

llama DelegateStore Last LSN

Change LogPartition P11 Add K22 Del

K32

Change Log

(Partition

P2)

18Del K32

19Del K43

Change Log33 Add K134 Del

K22

Page 27: Windows Server AppFabric Caching

Demo

Notifications

Page 28: Windows Server AppFabric Caching

Integración con ASP.NET

Integración con output-cacheIntegración con Session

Page 29: Windows Server AppFabric Caching

Demo

Configurar ASP.NET Session

Page 30: Windows Server AppFabric Caching

30

Recursos adicionales

Home AppFabrichttp://msdn.microsoft.com/appfabric

ASP.NET 4 Providers for AppFabric Caching

http://aspnet.codeplex.com/releases/view/46576?ProjectName=aspnet

AppFabric Caching Featureshttp://msdn.microsoft.com/en-us/library/ff383731.aspx

Admin Toolhttp://mdcadmintool.codeplex.com/

Page 31: Windows Server AppFabric Caching

31

Preguntas

Page 32: Windows Server AppFabric Caching

32

Los mejores proyectos de las células Microsoft, los grupos de investigación de

estudiantes, son seleccionados para participar en el espacio del DEMOFEST.

¡Conocélos!

Participá del DEMOFEST

Page 33: Windows Server AppFabric Caching

33

Necesitamos tu Feedback!

Completá los FORM de avaluación que estarán en nuestra WEB:www.codecamp.com.arNecesitamos de tu feedback para mejorar.

Page 34: Windows Server AppFabric Caching

34

© 2008 Microsoft Corporation. Todos los derechos reservados. Microsoft, Windows, Windows Vista y otros nombres de producto son y pueden ser marcas registradas y registros en Estados

Unidos y en otros países.La información contenida en el presente es sólo para fines informativos y representa la visión actual de Microsoft Corporation a la fecha de esta presentación. Debido a que Microsoft debe

responder a las cambiantes condiciones del mercado, no se debe interpretar como un compromiso por parte de Microsoft, y Microsoft no puede garantizar la precisión de ninguna

información provista después de la fecha de esta presentación. MICROSOFT NO OFRECE GARANTÍA ALGUNA, EXPRESA, IMPLÍCITA O DE LEY, RESPECTO A LA INFORMACIÓN EN ESTA

PRESENTACIÓN.