Upload
genexus
View
131
Download
1
Embed Size (px)
Citation preview
#GX24
De 0 a 2.000.000 de usuarios
Arquitectura de la appLigaMX
Armin Bachmann
@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 – [email protected] - @arminbachmann
Credits to Gonzalo Gallotti – [email protected]