ligamx con genexus: de 0 a 1.700.000 de usuarios

58
#GX24 De 0 a 2.000.000 de usuarios Arquitectura de la app LigaMX Armin Bachmann [email protected] @arminbachmann

Upload: genexus

Post on 15-Apr-2017

130 views

Category:

Software


1 download

TRANSCRIPT

Page 1: LigaMX con GeneXus: De 0 a 1.700.000 de usuarios

#GX24

De 0 a 2.000.000 de usuarios

Arquitectura de la appLigaMX

Armin Bachmann

[email protected]

@arminbachmann

Page 2: LigaMX con GeneXus: De 0 a 1.700.000 de usuarios
Page 3: LigaMX con GeneXus: De 0 a 1.700.000 de usuarios

#GXMX

• Liga profesional de fútbol de México

• TOP 10

• Población 122.3 millones

• 40.4 millones de smartphones

Page 4: LigaMX con GeneXus: De 0 a 1.700.000 de usuarios

#GXMX

• iOS & watchOS2

• Android

• Liberada: Febrero 2015

APP LIGAMX

Page 5: LigaMX con GeneXus: De 0 a 1.700.000 de usuarios

2.000.000DOWNLOADS

Page 6: LigaMX con GeneXus: De 0 a 1.700.000 de usuarios
Page 7: LigaMX con GeneXus: De 0 a 1.700.000 de usuarios
Page 8: LigaMX con GeneXus: De 0 a 1.700.000 de usuarios
Page 9: LigaMX con GeneXus: De 0 a 1.700.000 de usuarios
Page 10: LigaMX con GeneXus: De 0 a 1.700.000 de usuarios

Desafíos

Page 11: LigaMX con GeneXus: De 0 a 1.700.000 de usuarios

#GXMX

• Mobile Native Apps

– iOS

– Android

• Great UX

USER PERSPECTIVE

Page 12: LigaMX con GeneXus: De 0 a 1.700.000 de usuarios

#GXMX

• Extremadamente alta demanda

• Alta disponibilidad

• Push Notifications

• Imágenes, Video Streaming

• Cloud

• Servicios Externos (LigaMX API)

LO QUE NO SE VE

Page 13: LigaMX con GeneXus: De 0 a 1.700.000 de usuarios

Diseñada para escalar

Page 14: LigaMX con GeneXus: De 0 a 1.700.000 de usuarios

ArquitecturaInfraestructura

Desarrollo

Page 15: LigaMX con GeneXus: De 0 a 1.700.000 de usuarios

Extramadamente alta demanda

Page 16: LigaMX con GeneXus: De 0 a 1.700.000 de usuarios

User Interface

REST

Business Logic

REST Interface

DATA LAYER

Business Logic

Native

MOBILE

Client

WEB SERVER

DATABASE

REST/JSO

N

Page 17: LigaMX con GeneXus: De 0 a 1.700.000 de usuarios

0

50

100

150

200

250

300

350

400

450

App

1x WebServer Throughput (req/second)

App

Page 18: LigaMX con GeneXus: De 0 a 1.700.000 de usuarios

10.000 req/s - 25 WEB

SERVERS

Page 19: LigaMX con GeneXus: De 0 a 1.700.000 de usuarios

User Interface

REST

Business Logic

REST Interface

DATA LAYER

Business Logic

Native

MOBILE

Client

WEB

SERVER

DATABASE

REST/JSO

N

CACHE

CACHE

Cache

Page 20: LigaMX con GeneXus: De 0 a 1.700.000 de usuarios

CACHE WEB SERVER

Page 21: LigaMX con GeneXus: De 0 a 1.700.000 de usuarios

0

500

1000

1500

2000

2500

3000

3500

4000

4500

App Cache ON

1x WebServer Throughput (req/second)

App

Cache ON

Page 22: LigaMX con GeneXus: De 0 a 1.700.000 de usuarios

> 40.000

Usuarios simultáneos

Page 23: LigaMX con GeneXus: De 0 a 1.700.000 de usuarios

Requests per minute

220.000 req/min

Page 24: LigaMX con GeneXus: De 0 a 1.700.000 de usuarios

Latencia promedio por minuto

9ms

Tiemo de respuesta

promedio

Page 25: LigaMX con GeneXus: De 0 a 1.700.000 de usuarios

Elasticidad

Page 26: LigaMX con GeneXus: De 0 a 1.700.000 de usuarios

DATABASE

WEB SERVER

REST

Page 27: LigaMX con GeneXus: De 0 a 1.700.000 de usuarios

LOAD BALANCER

BD

WEB SERVERS

REST/JSON

Page 28: LigaMX con GeneXus: De 0 a 1.700.000 de usuarios

5 minutos

Page 29: LigaMX con GeneXus: De 0 a 1.700.000 de usuarios

ImágenesVideo

Ancho de banda

Page 30: LigaMX con GeneXus: De 0 a 1.700.000 de usuarios

> 80 GB en disco

IMÁGENES Y VIDEO

Page 31: LigaMX con GeneXus: De 0 a 1.700.000 de usuarios

LB

BD

Page 32: LigaMX con GeneXus: De 0 a 1.700.000 de usuarios

LB

Contenido

estático

AWS S3

Imágenes,

videos

Page 33: LigaMX con GeneXus: De 0 a 1.700.000 de usuarios

Contenido

estático

AWS S3

Imágenes,

videos

JSON, dynamic

content

http://appligamx.com/myapv1/Resources/Team/america.png

https://s3.amazonaws.com/futbolx/ligamx/teams/america/badge.png

Page 34: LigaMX con GeneXus: De 0 a 1.700.000 de usuarios

5.000 GB / mes

Transferencia de

datos

Page 35: LigaMX con GeneXus: De 0 a 1.700.000 de usuarios

PUSH NOTIFICATIONS

Page 36: LigaMX con GeneXus: De 0 a 1.700.000 de usuarios
Page 37: LigaMX con GeneXus: De 0 a 1.700.000 de usuarios

TEAM1 TEAM2 TEAM3

Canales

Page 38: LigaMX con GeneXus: De 0 a 1.700.000 de usuarios

TEAM1 TEAM2 TEAM3

Page 39: LigaMX con GeneXus: De 0 a 1.700.000 de usuarios

200.000.000

Notificaciones enviadas

250.000

Por segundo

Page 40: LigaMX con GeneXus: De 0 a 1.700.000 de usuarios

RestriccionesBuenas Prácticas

Page 41: LigaMX con GeneXus: De 0 a 1.700.000 de usuarios

Web Services

Page 42: LigaMX con GeneXus: De 0 a 1.700.000 de usuarios

LOAD BALANCER

DB

PUSH

NOTIFICATIONS,

OPERATIONS

DATA UPDATE

Page 43: LigaMX con GeneXus: De 0 a 1.700.000 de usuarios

CODE OPTIMIZATION

Page 44: LigaMX con GeneXus: De 0 a 1.700.000 de usuarios
Page 45: LigaMX con GeneXus: De 0 a 1.700.000 de usuarios
Page 46: LigaMX con GeneXus: De 0 a 1.700.000 de usuarios

#GXMX

• In RAM Memory -> Distributed Caching

• In Database

(With expiration time or not)

CACHING

Page 47: LigaMX con GeneXus: De 0 a 1.700.000 de usuarios

Bajos costos de infraestructura

Page 48: LigaMX con GeneXus: De 0 a 1.700.000 de usuarios

LOAD BALANCERStatic

Content

AWS S3

MYSQL

RDS

Windows

Server 2008

REST

JAVA LINUX TOMCAT

Imágenes

video

PUSH

NOTIFICATIONS &

Actualización de datos

REST

Page 49: LigaMX con GeneXus: De 0 a 1.700.000 de usuarios

Infraestructura

5x LINUX 4GB RAM, 2 CORES

LINUX SVN SERVER

WINSERVER 2008 (Push Notification + Data Update)

RDS MYSQL: 2 CORE, 8GB RAM

AWS S3 para Contenido Estático

LOAD BALANCER

(AWS)

Page 50: LigaMX con GeneXus: De 0 a 1.700.000 de usuarios

TIPS

Page 51: LigaMX con GeneXus: De 0 a 1.700.000 de usuarios
Page 52: LigaMX con GeneXus: De 0 a 1.700.000 de usuarios
Page 53: LigaMX con GeneXus: De 0 a 1.700.000 de usuarios
Page 54: LigaMX con GeneXus: De 0 a 1.700.000 de usuarios

#GXMX

• 2.000.000 downloads

• + 400.000 usuarios los fines de semana

• 200.000.000 push notifications

• + 40.000 usuarios conectados simultáneos

ANALYTICS

Page 55: LigaMX con GeneXus: De 0 a 1.700.000 de usuarios

#GXMX

• Foco en Usuario:

– UX, Diseño

– Comportamiento

• Cuidado en

– Arquitectura

– Infraestructura

Page 56: LigaMX con GeneXus: De 0 a 1.700.000 de usuarios
Page 57: LigaMX con GeneXus: De 0 a 1.700.000 de usuarios

#GXMX

• iOS & watchOS2

• Android

• Desarrollada con GeneXus

MOBILE APP LIGAMX

Page 58: LigaMX con GeneXus: De 0 a 1.700.000 de usuarios

¡MUCHAS GRACIAS!

Armin Bachmann – [email protected] - @arminbachmann

Credits to Gonzalo Gallotti – [email protected]