ligamx con genexus: de 0 a 1.700.000 de usuarios

Post on 15-Apr-2017

131 Views

Category:

Software

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

#GX24

De 0 a 2.000.000 de usuarios

Arquitectura de la appLigaMX

Armin Bachmann

armin@genexus.com

@arminbachmann

#GXMX

• Liga profesional de fútbol de México

• TOP 10

• Población 122.3 millones

• 40.4 millones de smartphones

#GXMX

• iOS & watchOS2

• Android

• Liberada: Febrero 2015

APP LIGAMX

2.000.000DOWNLOADS

Desafíos

#GXMX

• Mobile Native Apps

– iOS

– Android

• Great UX

USER PERSPECTIVE

#GXMX

• Extremadamente alta demanda

• Alta disponibilidad

• Push Notifications

• Imágenes, Video Streaming

• Cloud

• Servicios Externos (LigaMX API)

LO QUE NO SE VE

Diseñada para escalar

ArquitecturaInfraestructura

Desarrollo

Extramadamente alta demanda

User Interface

REST

Business Logic

REST Interface

DATA LAYER

Business Logic

Native

MOBILE

Client

WEB SERVER

DATABASE

REST/JSO

N

0

50

100

150

200

250

300

350

400

450

App

1x WebServer Throughput (req/second)

App

10.000 req/s - 25 WEB

SERVERS

User Interface

REST

Business Logic

REST Interface

DATA LAYER

Business Logic

Native

MOBILE

Client

WEB

SERVER

DATABASE

REST/JSO

N

CACHE

CACHE

Cache

CACHE WEB SERVER

0

500

1000

1500

2000

2500

3000

3500

4000

4500

App Cache ON

1x WebServer Throughput (req/second)

App

Cache ON

> 40.000

Usuarios simultáneos

Requests per minute

220.000 req/min

Latencia promedio por minuto

9ms

Tiemo de respuesta

promedio

Elasticidad

DATABASE

WEB SERVER

REST

LOAD BALANCER

BD

WEB SERVERS

REST/JSON

5 minutos

ImágenesVideo

Ancho de banda

> 80 GB en disco

IMÁGENES Y VIDEO

LB

BD

LB

Contenido

estático

AWS S3

Imágenes,

videos

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

5.000 GB / mes

Transferencia de

datos

PUSH NOTIFICATIONS

TEAM1 TEAM2 TEAM3

Canales

TEAM1 TEAM2 TEAM3

200.000.000

Notificaciones enviadas

250.000

Por segundo

RestriccionesBuenas Prácticas

Web Services

LOAD BALANCER

DB

PUSH

NOTIFICATIONS,

OPERATIONS

DATA UPDATE

CODE OPTIMIZATION

#GXMX

• In RAM Memory -> Distributed Caching

• In Database

(With expiration time or not)

CACHING

Bajos costos de infraestructura

LOAD BALANCERStatic

Content

AWS S3

MYSQL

RDS

Windows

Server 2008

REST

JAVA LINUX TOMCAT

Imágenes

video

PUSH

NOTIFICATIONS &

Actualización de datos

REST

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)

TIPS

#GXMX

• 2.000.000 downloads

• + 400.000 usuarios los fines de semana

• 200.000.000 push notifications

• + 40.000 usuarios conectados simultáneos

ANALYTICS

#GXMX

• Foco en Usuario:

– UX, Diseño

– Comportamiento

• Cuidado en

– Arquitectura

– Infraestructura

#GXMX

• iOS & watchOS2

• Android

• Desarrollada con GeneXus

MOBILE APP LIGAMX

¡MUCHAS GRACIAS!

Armin Bachmann – armin@genexus.com - @arminbachmann

Credits to Gonzalo Gallotti – ggallotti@genexus.com

top related