Windows Server AppFabric Caching

Post on 10-Jun-2015

983 views 6 download

Tags:

description

CodeCamp 2010 presentation of Windows Server AppFabric Caching in Argentina

Transcript of Windows Server AppFabric Caching

1

2

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

Mariano Omar RodriguezArquitectoTellago Inc.

4

Objetivos de la sesión

El problemaCacheando con Windows Server AppFabricOverviewDesarrollo

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.

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

8

¿Por que usarlo?

Comparte datos a través de diferentes aplicaciones.

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

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

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

11

Administración y monitoreo

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

Soporta EWT

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”);

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

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);

Demo

Caching API

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.

Usando las ‘Features’

Clasificar los datosReferenciaActividadRecursos

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

Tipos de dato

ReferenciaNo se actualizan frecuentementeCompartidos

ActividadLectura y escrituraNo compartidosEj: Shopping Cart

RecursosLectura y EscrituraCompartidos

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

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

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.

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

Demo

Bloqueo OptimistaBloqueo Pesimista

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);

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

Demo

Notifications

Integración con ASP.NET

Integración con output-cacheIntegración con Session

Demo

Configurar ASP.NET Session

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/

31

Preguntas

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

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.

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.