Windows Server AppFabric Caching

  • View
    968

  • Download
    6

Embed Size (px)

DESCRIPTION

CodeCamp 2010 presentation of Windows Server AppFabric Caching in Argentina

Text of Windows Server AppFabric Caching

  • 1. 1

2. Usando Windows ServerAppFabric Caching enescenarios de altadisponibilidadMariano Omar RodriguezArquitectoTellago Inc.2 3. Arquitectura tpicaWeb siteslentos UsuariosLoad BalancerSticky Routing Donde estael carritoAplicacin / Capa Web AplicacinAplicacin AplicacinASP.NET App Carrito en ServidoresSession en Base decomienzan a memoriaDatos sobrecargadafallar Capa deBase de Datos Datos Catlogos en la Base de Datos3 4. Objetivos de la sesin El problema Cacheando con Windows Server AppFabric Overview Desarrollo4 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 mltiples servidores.5 6. Que es AppFabric Caching?Los clientes del cache acceden a travs del clienteLos clientes acceden al cache Vista unificada del cache como si fuera nico La capa de cache distribuye los datos a travs de diferentes nodos6 7. En que capa va? UsuariosAplicacinAplicacin AplicacinCapa Web(ASP.NET) Capa de acceso alCapa de acceso al Capa de acceso alCacheCache CacheCapa de Capa de Database CloudCacheDatosCachingServiceCachingService Caching Service7 8. Por que usarlo? Comparte datos a travs de diferentes aplicaciones. No hay necesidad de ruteo Pegajoso. Performance Escalabilidad horizontal (Scale-out) Disponibilidad8 9. Deployment Usuarios Copiar assembliescliente y agregarapp.config .. Web TierCaching Service Caching ServiceCaching Service Habilitar el rol de servidor deCache Tier cache Configuracin (Base de datos, file system share, etc.) Almacena polticas del cache9Almacena informacin de particionamiento 10. SeguridadSeguridad 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 domainusernameSeguridad a nivel transporteFirma y encriptacin de mensajes10 11. Administracin y monitoreoAdministracin centralizada a travs dePowerShellPerfmon para monitorear el cacheLoggingSoporta EWT11 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. Caching API Jerarquia lgica 1. Server 2. Cache host 3. Cache 4. Region, 5. Items 6. InstanciasHostItem Direccin fisica de la instanciaClave, Contenido, Tags, TTL, TiCaches (nombre)mestamp y Version Pueden residir en varios Regiones servidores. Contenedor de items Definidos en la configuracin.Creados implicita o explicitamente13 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. Demo Caching API 16. Patrn 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. Distribucin de datosCache particionado Escalar en memoria: mas mquinas, mas memoria para el cache. Escalar en throughput: mas mquinas, claves mas distribuidas, mejor throughput. 18. Usando las Features Clasificar los datos Referencia Actividad Recursos Examinar requerimientos Performance (Latencia y Throughput) Consistencia Remocin (Son los datos eliminables?) Seguridad Disponibilidad 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. Datos de Referencia - performaceEl catlogo no cambia o cambia rara vezEl costo de acceder a diferentes mquinases inecesarioSolucion: Cache localApplication ApplicationGet(K2) Get(K2) Put(K2, v3) AppFabric Caching ClientAppFabric Caching ClientLocal CacheK2, V2 Routing Table Routing TableCache1 Cache2 Cache3Primary for K1,V1Primary for K2,V2Primary for K3,V3 K1, V1 K2, V2V3K3, V3 21. Datos de Actividad - Disponibilidad Application (K2, V2) Application PUT Get(K2) AppFabric Caching ClientRouting TableAppFabric Caching ClientRouting TableCache1Cache2 Cache3Primary for Primary forPrimary forK2, V2ReplicationK1, V1Agent K3, V3K2, V2Secondary for Secondary forSecondary forK2, V2K3, V3K1, V1 22. Datos de RecursoBloqueo optimista Usando GetCacheItem se obtiene la version Cada actulizacin incrementa la version Cuando se llama a Put/Remove se debe suministrar la versin. 23. Datos de RecursoBloqueo pesimista Cliente1: Cliente2: Cliente3: GetAndLock ("k1") GetAndLock ("k1") Get ("k1")GetAndLock obtiene bloqueo GetAndLock en el Get comn mismo item fallaK1 24. Demo Bloqueo Optimista Bloqueo Pesimista 25. Notificacin de datosNotificacionesRegistran en cualquier cliente para notificarcambios cache.AddCacheLevelCallback(DataCacheOperationsfilter, DataCacheNotificationCallback callback); cache.AddRegionLevelCallback(string region, DataCacheOperations filter, DataCacheNotificationCallback callback); cache.AddItemLevelCallback(string key, DataCacheOperations filter, DataCacheNotificationCallback callback); 26. Notificacin de datos Registra Notificacinpara Key K3"llama DelegateApplicationMapea Keys Store Last LSN a Particion (ej: AppFabric Caching Client P2)Routing TablePollRequiredPartition: P2NodesLast LSN: 19 Nodes ReturnList of Changes LSN OrderCache1Cache2 Cache3Primary for Primary forPrimary for Change Log Change LogK1, V1Change LogK2, V2 (Partition P2) K3, V3Partition P1 33 Add K11 Add K2 18 Del K32 34 Del K22 2 Del K3219 Del K43 27. Demo Notifications 28. Integracin con ASP.NET Integracin con output-cache Integracin con Session 29. Demo Configurar ASP.NET Session 30. Recursos adicionalesHome AppFabric http://msdn.microsoft.com/appfabricASP.NET 4 Providers for AppFabric Caching http://aspnet.codeplex.com/releases/view/46576?Projec tName=aspnetAppFabric Caching Features http://msdn.microsoft.com/en-us/library/ff383731.aspxAdmin Tool http://mdcadmintool.codeplex.com/30 31. Preguntas31 32. Particip del DEMOFEST Los mejores proyectos de las clulas Microsoft, los grupos de investigacin de estudiantes, son seleccionados para participar en el espacio del DEMOFEST.Conoclos!32 33. Necesitamos tu Feedback!Complet los FORMde avaluacin queestarn en nuestraWEB:www.codecamp.com.arNecesitamos de tufeedback para mejorar.33 34. 2008 Microsoft Corporation. Todos los derechos reservados. Microsoft, Windows, Windows Vista y otrosnombres de producto son y pueden ser marcas registradas y registros en Estados Unidos y en otros pases.La informacin contenida en el presente es slo para fines informativos y representa la visin actual de Microsoft Corporation a la fecha de esta presentacin. 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 precisin de ninguna informacin provista despus de la fecha de esta presentacin. MICROSOFT NO OFRECE GARANTA ALGUNA, EXPRESA, IMPLCITA O DE LEY, RESPECTO A LA INFORMACIN EN ESTA PRESENTACIN.34