1
Usando “Windows Server    AppFabric Caching” en    escenarios de alta    disponibilidad    Mariano Omar Rodriguez    Arqui...
Arquitectura típica                                          Web sites                                                    ...
Objetivos de la sesión     El problema     Cacheando con Windows Server AppFabric     Overview     Desarrollo4
¿Que es AppFabric Caching?     Es un cache explicito, distribuido y en     memoria para aplicaciones y cualquier tipo     ...
¿Que es AppFabric Caching?                                      Los clientes del                                     cache...
¿En que capa va?                                                                                               Usuarios   ...
¿Por que usarlo?     Comparte datos a través de diferentes     aplicaciones.       No hay necesidad de ruteo “Pegajoso”.  ...
Deployment                                                                                                                ...
Seguridad      Seguridad basada en el dominio         Basada en cuentas locales o de dominio         Solo servidores autor...
Administración y monitoreo      Administración centralizada a través de      PowerShell      Perfmon para monitorear el ca...
Caching API     var factory = new DataCacheFactory();     var cache = factory.GetCache(“Catalog”);     cache.Put(“data-1”,...
Caching API – Jerarquia lógica     1.   Server     2.   Cache host     3.   Cache     4.   Region,     5.   Items     6.  ...
Caching API - Tagging Permite agregar tags a los itemsvar tag = new Tag(“Tag”);cache.Put(“Data-101", new Data(“Data1"),   ...
Demo Caching API
Patrón – Cache Aside     var data = cache.Get(“Data-1”) as       Data;                                             Applica...
Distribución de datosCache particionado Escalar en memoria: mas máquinas, mas memoria para el cache. Escalar en throughput...
Usando las „Features‟ Clasificar los datos   Referencia   Actividad   Recursos Examinar requerimientos   Performance (Late...
Tipos de dato Referencia   No se actualizan frecuentemente   Compartidos Actividad   Lectura y escritura   No compartidos ...
Datos de Referencia - performace  El catálogo no cambia o cambia rara vez  El costo de acceder a diferentes máquinas  es i...
Datos de Actividad - Disponibilidad       Application                   (K2, V2)                                       App...
Datos de RecursoBloqueo optimista Usando GetCacheItem se obtiene la version Cada actulización incrementa la version Cuando...
Datos de RecursoBloqueo pesimista               Cliente1:           Cliente2:           Cliente3:               GetAndLock...
Demo Bloqueo Optimista Bloqueo Pesimista
Notificación de datos  Notificaciones  Registran en cualquier cliente para notificar  cambios cache.AddCacheLevelCallback(...
Notificación de datos                                                           Registra                                  ...
Demo Notifications
Integración con ASP.NET Integración con output-cache Integración con Session
Demo Configurar ASP.NET Session
Recursos adicionales      Home AppFabric       http://msdn.microsoft.com/appfabric      ASP.NET 4 Providers for AppFabric ...
Preguntas31
Participá del DEMOFEST         Los mejores proyectos de las células       Microsoft, los grupos de investigación de     es...
Necesitamos tu Feedback!      Completá los FORM      de avaluación que      estarán en nuestra      WEB:      www.codecamp...
© 2008 Microsoft Corporation. Todos los derechos reservados. Microsoft, Windows, Windows Vista y otros      nombres de pro...
Upcoming SlideShare
Loading in …5
×

Windows Server AppFabric Caching

1,228 views
1,068 views

Published on

CodeCamp 2010 presentation of Windows Server AppFabric Caching in Argentina

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,228
On SlideShare
0
From Embeds
0
Number of Embeds
8
Actions
Shares
0
Downloads
11
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Windows Server AppFabric Caching

  1. 1. 1
  2. 2. Usando “Windows Server AppFabric Caching” en escenarios de alta disponibilidad Mariano Omar Rodriguez Arquitecto Tellago Inc.2
  3. 3. Arquitectura típica Web sites lentos Usuarios Load Balancer Sticky Routing Donde esta el carrito Aplicación / Capa Web Aplicación Aplicación Aplicación ASP.NET App Carrito en Servidores Session en Base de comienzan a memoria Datos sobrecargada fallar Capa de Base de Datos Datos Catálogos en la Base de Datos3
  4. 4. Objetivos de la sesión El problema Cacheando con Windows Server AppFabric Overview Desarrollo4
  5. 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.5
  6. 6. ¿Que es AppFabric Caching? Los clientes del cache acceden a través del cliente Los clientes acceden al cache Vista unificada del cache como si fuera único La capa de cache distribuye los datos a través de diferentes nodos6
  7. 7. ¿En que capa va? Usuarios Aplicación Aplicación … Aplicación Capa Web (ASP.NET) Capa de acceso al Capa de acceso al Capa de acceso al Cache Cache Cache Capa de Capa de Database Cloud Cache Datos Caching Service Caching Service Caching Service7
  8. 8. ¿Por que usarlo? Comparte datos a través de diferentes aplicaciones. No hay necesidad de ruteo “Pegajoso”. Performance Escalabilidad horizontal (Scale-out) Disponibilidad8
  9. 9. Deployment Usuarios Copiar assemblies cliente y agregar app.config <hosts> … <host name="BL1CDB8083714“ Aplicación Aplicatión Aplicatión cachePort="22233" Caching Access Layer Caching Access Layer Caching Access Layer cacheHostName="DistributedCacheService"/> ….. </hosts> <localCache isEnabled=“true" ../> <security … /> Web Tier Caching Service Caching Service Caching Service Habilitar el rol de servidor de Cache Tier cache Configuración (Base de datos, file system share, etc.) Almacena políticas del cache9 Almacena información de particionamiento
  10. 10. Seguridad Seguridad basada en el dominio Basada en cuentas locales o de dominio Solo servidores autorizados pueden unirse al cluster Solo clientes autorizados pueden conectarse al cluster grant-cacheallowedclientaccount domainmachine$ grant-cacheallowedclientaccount domainusername Seguridad a nivel transporte Firma y encriptación de mensajes10
  11. 11. Administración y monitoreo Administración centralizada a través de PowerShell Perfmon para monitorear el cache Logging Soporta EWT11
  12. 12. Caching API var 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”);12
  13. 13. Caching API – Jerarquia lógica 1. Server 2. Cache host 3. Cache 4. Region, 5. Items 6. Instancias Host Item Dirección fisica de la instancia Clave, Contenido, Tags, TTL, Ti Caches (nombre) mestamp y Version Pueden residir en varios Regiones servidores. Contenedor de items Definidos en la configuración. Creados implicita o explicitamente13
  14. 14. Caching API - Tagging Permite agregar tags a los itemsvar 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);
  15. 15. Demo Caching API
  16. 16. Patrón – Cache Aside var data = cache.Get(“Data-1”) as Data; Application Caching Access Layer if (data == null) { data = ReadFromDB(); Caching Service cache.Put(“Data1”, data); } Database16
  17. 17. 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.
  18. 18. Usando las „Features‟ Clasificar los datos Referencia Actividad Recursos Examinar requerimientos Performance (Latencia y Throughput) Consistencia Remoción (¿Son los datos eliminables?) Seguridad Disponibilidad
  19. 19. Tipos de dato Referencia No se actualizan frecuentemente Compartidos Actividad Lectura y escritura No compartidos Ej: Shopping Cart Recursos Lectura y Escritura Compartidos
  20. 20. Datos de Referencia - performace El catálogo no cambia o cambia rara vez El costo de acceder a diferentes máquinas es inecesario Solucion: Cache local Application Application Get(K2) Get(K2) Put(K2, v3) AppFabric Caching Client AppFabric Caching Client Local Cache K2, V2 Routing Table Routing Table Cache1 Cache2 Cache3 Primary for K1,V1 Primary for K2,V2 Primary for K3,V3 K1, V1 K2, V2 V3 K3, V3
  21. 21. Datos de Actividad - Disponibilidad Application (K2, V2) Application PUT Get(K2) AppFabric Caching Client Routing Table AppFabric Caching Client Routing TableCache1 Cache2 Cache3Primary for Primary for Primary for K2, V2 Replication K1, V1 Agent K3, V3 K2, V2Secondary for Secondary for Secondary for K2, V2 K3, V3 K1, V1
  22. 22. Datos de RecursoBloqueo optimista Usando GetCacheItem se obtiene la version Cada actulización incrementa la version Cuando se llama a Put/Remove se debe suministrar la versión.
  23. 23. Datos de RecursoBloqueo pesimista Cliente1: Cliente2: Cliente3: GetAndLock ("k1") GetAndLock ("k1") Get ("k1") GetAndLock obtiene bloqueo GetAndLock en el Get común mismo item falla K1
  24. 24. Demo Bloqueo Optimista Bloqueo Pesimista
  25. 25. Notificación de datos Notificaciones Registran 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);
  26. 26. Notificación de datos Registra Notificación para Key “K3"llama Delegate Application Mapea Keys Store Last LSN a Particion (ej: AppFabric Caching Client P2) Routing Table Poll Required Partition: P2 Nodes Last LSN: 19 Nodes Return List of Changes LSN Order Cache1 Cache2 Cache3 Primary for Primary for Primary for Change Log Change Log K1, V1 Change Log K2, V2 (Partition P2) K3, V3 Partition P1 33 Add K1 1 Add K2 18 Del K32 34 Del K22 2 Del K32 19 Del K43
  27. 27. Demo Notifications
  28. 28. Integración con ASP.NET Integración con output-cache Integración con Session
  29. 29. Demo Configurar ASP.NET Session
  30. 30. Recursos adicionales Home AppFabric http://msdn.microsoft.com/appfabric ASP.NET 4 Providers for AppFabric Caching http://aspnet.codeplex.com/releases/view/46576?Projec tName=aspnet AppFabric Caching Features http://msdn.microsoft.com/en-us/library/ff383731.aspx Admin Tool http://mdcadmintool.codeplex.com/30
  31. 31. Preguntas31
  32. 32. Participá del DEMOFEST 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!32
  33. 33. Necesitamos tu Feedback! Completá los FORM de avaluación que estarán en nuestra WEB: www.codecamp.com.ar Necesitamos de tu feedback para mejorar.33
  34. 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.34

×