Datos en la nube: colas, caché, topics y otras yerbas (Code Camp Argentina 2011)

816 views

Published on

Presentación sobre manejo de datos en Azure, realizada para el CodeCamp Argentina 2011.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Datos en la nube: colas, caché, topics y otras yerbas (Code Camp Argentina 2011)

  1. 1. //codecamp/Datos en la nube:colas, caché, topics y otras yerbasLeandro Adrián Díaz GuerraArchitectTellago, Inc.
  2. 2. Agenda¿Qué es Azure?Azure Storage– Blob Service– Table Service– Queue ServiceSQL AzureAzure AppFabric– Caching– Service Bus Queues– Service Bus TopicsPreguntas //codecamp/
  3. 3. //codecamp/¿Qué es Azure? Click..
  4. 4. ¿Qué es Azure?Plataforma para ejecutar aplicaciones en la nubeEnfoque en la aplicación, no en la infraestructuraEjecución en máquinas virtualesDatacenters en todo el mundoAlmacenamiento en la nubeEscalabilidad, estabilidad, confiabilidadAPI de desarrollo para .NET y otras plataformasComunicación con aplicaciones on-premiseCosto según el uso– U$S 0,15 a U$S 0,20 por GB transferido desde Azure, según la regiónCommunity Technology Previews y Labs //codecamp/
  5. 5. Componentes de Azure //codecamp/
  6. 6. On-Premise vs Cloud On-Premise CloudHosting Windows Server Windows AzureAlmacenamiento Archivos Storage Blobsno estructurado Discos Storage Tables Azure DriveAlmacenamiento SQL Server SQL AzurerelacionalServicio de colas MSMQ Storage Queue / Service Bus QueuesCache Windows Azure AppFabric AppFabric Cache Caching //codecamp/
  7. 7. //codecamp/Azure Storage Click.. //codecamp/
  8. 8. Azure StorageAlmacenamiento de datos en la nubeReplicación a través de CDNManaged Library y RESTful APIU$S 0,15 por GB por mesU$S 0,01 cada 10000 transaccionesHasta 100TB por cuenta //codecamp/
  9. 9. Blob ServiceDatos binarios y texto, sin estructuraContainersPropiedadesSnapshotsPage blobs– Para operaciones de lectura y escritura frecuentes– Múltiples páginas (512 bytes por página)– Hasta 1TBBlock blobs– Manejo de grandes archivos en la nube– Múltiples blocks (hasta 4MB por block)– Hasta 200GBWindows Azure Drive (para aplicaciones legacy) //codecamp/
  10. 10. Tables ServiceBase de datos No-SQLEscalabilidadParticiones– Permiten jerarquías entre entidadesProyecciones (nuevo!)Una tabla por tipo de entidad (con la API de .NET)– Puede dificultar el uso de relaciones jerárquicas y transaccionesTransacciones por tablas y por particionesSin índices ni relacionesEntidades con hasta 255 propiedades y 1MBFiltros por propiedades (poco escalables)Entidades simples, excepto usando algún hack (como LokadCloud, que serializa entidades complejas en propiedadesbinarias) //codecamp/
  11. 11. Queue ServiceServicio de colas – Modelo publicador/suscriptor – Comunicación asincrónica – Desacoplamiento • Temporal • Código – Nivelación de carga – Balanceo de cargaEscalabilidadAlta disponibilidadMensajes ilimitadosTamaño máximo de mensaje de 8KBFIFO no garantizadoEntrega única no garantizadaMensajes con tiempo de expiración //codecamp/
  12. 12. Queue Service – cont. Ejemplo de arquitecturaWeb de almacenamiento Azure Storage Queue de imágenes(instancias de web role) Procesadores de imágenes (instancias de worker role) //codecamp/
  13. 13. //codecamp/SQL Azure Click.. //codecamp/
  14. 14. SQL AzureSQL Server en la nubeAdministración con Project Houston (CTP) o SQLServer Management StudioAlta disponibilidadTolerancia a fallosSQL ReportingIntegración con SQL Server– Import and Export Wizard– Azure Migration Wizard– SQL Azure Data Sync (CTP)Bases de entre 5 y 50GBU$S 9,99 por GB por mes //codecamp/
  15. 15. SQL Azure vs Storage Tables SQL Azure Storage Tables Relaciones Sí No directamente Índices Sí No Costo U$S 9,99 por GB U$S 0,15 por GB por mes por mes Escalabilidad Baja Alta Espacio Hasta 50GB por Hasta 100TB por base cuenta Consultas Complejas Simples Principales Relaciones y Escalabilidad y ventajas consistencia costo //codecamp/
  16. 16. //codecamp/Azure AppFabric Click.. //codecamp/
  17. 17. Azure AppFabricServicios middleware en la nube– Service Bus– Access Control Service– Caching– Integración (próximo CTP)Alta disponibilidadEscalabilidad //codecamp/
  18. 18. AppFabric CachingCaché distribuida en memoria– Datos no persistidos– Alta velocidad de respuesta– Aumento de rendimiento– Escalable– Replicación de datosIntegración con ASP.NET– Caché de Session State– Caché de Page Output– Caché de objetos manejadosSe utiliza igual que Windows AppFabric Caching  modeloconsistente de desarrolloDesde U$S 45 por caché de 128MB hasta U$S 325 porcaché de 4GB (por mes) //codecamp/
  19. 19. AppFabric Service BusMúltiples patrones de comunicaciónMúltiples protocolosSeguridadDesacoplamientoAlta disponibilidadConexión a través de redes complejas(firewalls, proxies, etc.)U$S 3,99 por conexión por mes, o U$S 1,99por conexión (comprando packs) //codecamp/
  20. 20. AppFabric Service Bus QueuesServicio de colas – Múltiples publicadores - 1 suscriptor – Comunicación asincrónica – Desacoplamiento • Temporal • Código – Nivelación de carga – Balanceo de cargaEscalabilidadAlta disponibilidadTamaño máximo de cola de 5GBTamaño máximo de mensaje de 256KBSesionesEntrega única garantizada – Modos ReceiveAndDelete & PeekLockSin tiempo máximo por mensajeSin costo adicional //codecamp/
  21. 21. AppFabric Service Bus QueuesEjemplo de arquitectura //codecamp/
  22. 22. AppFabric Service Bus Queues vs Storage Queues Service Bus Queues Storage Queues WCF Binding Sí No Integración con WF Sí No FIFO garantizado Sí (con sesiones) No Procesamiento garantizado Al menos uno Al menos uno / Sólo uno Transacciones Sí (parciales) No Funciones de administración Pocas (a futuro más) Sí Espacio total Hasta 5GB por cola Hasta 100TB por cuenta Tamaño máximo de mensaje 256KB 8KB Recepción de mensajes Long Polling (blocking o no) No espera por mensajes Costo Desconocido U$S 0,15 por GB por mes Principales ventajas Mayor tamaño de mensaje Útil para tareas muy Sesiones simples y para Transacciones procesamiento asincrónico Long Polling de tareas entre roles de API similar a Topics Azure //codecamp/
  23. 23. //codecamp/Procesamiento de ticketscon AppFabric ServiceBus Queues Demo //codecamp/
  24. 24. AppFabric Service Bus TopicsServicio de publicación/suscripción– Múltiples publicadores – múltiples suscriptoresTopics– Funcionan como colasSuscripciones– Filtros– Reglas y acciones (pueden modificar el mensaje) //codecamp/– Una copia de mensaje para cada suscripción
  25. 25. AppFabric Service Bus TopicsEjemplo de arquitectura //codecamp/
  26. 26. AppFabric Service Bus Queues vs Topics Queues Topics & Suscriptions Publicadores Múltiples Múltiples Suscriptores 1 Múltiples Filtros No Sí Reglas y acciones No Sí Uso recomendado 1 sólo suscriptor Cantidad de definido suscriptores indefinida y/o necesidad de filtrar ¿Qué recibe el Mensaje original Copia de mensajes, cliente? quizás modificado //codecamp/
  27. 27. //codecamp/Chat con AppFabricService Bus Topics Demo //codecamp/
  28. 28. Contenido RelacionadoWindows Azure – https://windows.azure.com/ – http://msdn.microsoft.com/en-us/library/windowsazure/dd163896.aspx – http://www.microsoft.com/windowsazure/pricing/ – http://www.microsoft.com/windowsazure/whitepapers/Azure Storage – http://www.microsoft.com/windowsazure/features/storage/ – http://azurestoragesamples.codeplex.com/ – http://lokad.github.com/lokad-cqrs/ (Lokad Cloud)SQL Azure – http://www.microsoft.com/windowsazure/sqlazure/Azure AppFabric – http://www.microsoft.com/windowsazure/appfabric/ – http://blogs.msdn.com/b/appfabric/AppFabric Caching – http://msdn.microsoft.com/en-us/magazine/gg983488.aspxAppFabric Service Bus Topics & Queues – http://blogs.msdn.com/b/appfabric/archive/2011/05/17/an-introduction-to-service-bus-queues.aspx – http://blogs.msdn.com/b/appfabric/archive/2011/05/25/an-introduction-to-service-bus-topics.aspx – http://msdn.microsoft.com/en-us/library/windowsazure/hh367516.aspx //codecamp/
  29. 29. Conclusión ¡En Melmac no ¿La nube?usábamos Azure ¡Yo vivo en y así nos fue! las nubes! //codecamp/
  30. 30. ¿Preguntas?Mail: leandro.diazguerra@tellago.comBlog: http://www.logue.com.ar/blog //codecamp/
  31. 31. No deje de completar su evaluación onlinewww.codecamp.com.ar/evals //codecamp/

×