Social Apps en Windows Azure

Preview:

DESCRIPTION

¿Cómo diseñar aplicaciones sociales que soporten más de 1 millón de usuarios diarios y no perecer en el intento? ¿Qué tener en cuenta, dentro de ese contexto, para aprovechar al máximo las características de Windows Azure como queues, blobs y tables y escalar nuestra aplicación? ¿Cómo aprovechar la infraestructura Azure para diseñar las distintas capas involucradas y su intercomunicación? Estas son las preguntas que nos disponemos contestar en la charla, con ejemplos concretos y reales basados en nuestra experiencia con Bola.

Citation preview

1

2

Social Apps en Windows Azure

Gabriel SzlechtmanGuido Vilariño

Three Melons Playdom Disney

Qué te vas a llevar

Una idea concreta de qué es una social app.Criterios de diseño y arquitectura para la escalabilidad sobre Windows Azure.Overview de la arquitectura de Bola.

Qué NO te vas a llevar

Una receta aplicable a cualquier social app.Código funcionando.MelonCash.

¿Social Media?

Social Media

¿Social App?

Social App

9

Qué tener en cuenta

TargetPersonas, culturas, lenguajes.¿Red(es) social(es)? -> No atarse a ninguna.

Comunidad

Viralidad

MonetizaciónMecanismos de monetización.

NO pueden fallar.

10

Qué tener en cuenta

ContenidoDinámico; ciclos de update cortos.Localización.

Métricas (!)DAU, MAU, ARPAU, Retention rate.

Monitoreo (!)Salud (CPU usage, requests/sec, etc.)24/7 uptime; no se puede medir el downtime.

12

Bola facts

Seis idiomas1M+ DAUs durante el mundialCliente Flash – Backend AzureExiste en varias redes sociales

FacebookOrkutSonico

13

El clienteFrontend Backend

Reglas

Red social

14

El servidor

Frontend

Blob Storage

Table Storage

Queues

Web Role

Worker Role

15

Premisas de diseño en Azure

Si tenés muchos datos, particioná tablas

¡Balanceá las particiones!

Si tenés procesos costosos, utilizá queues

Las queues agregan latenciaOjo con los “long running processes”

Si tengo lecturas >> escrituras, utilizá blobs

Los blobs se leen de a unoLos blobs son opcionalmente públicos

16

Ambientes

Local

Staging

Producción

17

Características de Azure

Puedo agregar VMs cuando quiero• Excepto que esté agregando VMs ahora

Las VMs son opacas

La base está…• Pero no le pidas más que 500 requests/seg/partición

18

Características de Azure (cont)Garantía del 99,95% en cómputo• Si tenés más de un server• Ojo que los pueden reiniciar

Queries a tablas: < 10 segundos• Sino devuelven continuation tokens• Máx 1000 rows por query

19

RetryPolicy

20

RetryPolicy

21

MapReduce

22

MapReduce V1: Naive

23

MapReduce V2: Zerg Rush!

24

MapReduce V3: Complete!

25

MapReduce V3: Complete!

26

Tools

«Cloud Storage Studio»http://www.cerebrata.com

«Azure MMC»http://code.msdn.microsoft.com/windowsazuremmc

«MyAzureStorage»https://myazurestorage.com/

27

Los mandamientos de Azure

No llamarás a GC.Collect() en concurrenciaNo crearás threads en tus Web RolesNo serializarás TableServiceEntityEvitarás arrojar excepcionesEvitarás las Colisiones“Loguearás“ en un storage dedicadoUsarás DateTime.UtcNowEl backend hablará inglés, el mundo NOPlanearás tus deployments, FGJ

28

Y si no cumplís…

29

Preguntas

30

Contact Us

Gabriel@gabrielszgabrielsz@threemelons.com

Guido @gvilarinogvilarino@threemelons.com

Play Bola! www.playbola.com

31

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

32

Necesitamos tu Feedback!

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

33

© 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.

Recommended