Aplicaciones para
1M de usuarios
Victor Aguilar
victor.aguilar@grow.mobi



Victor Aguilar C.
victor.aguilar@grow.mobi
Past leader de comunidades como GDG La Paz y Docker La Paz, actualmente.
Senior Backend Dev en Grow Mobility


Aclaración

Hablaremos acerca cómo crear una aplicación para un millón de usuarios desde un punto de vista totalmente técnico.
No hablaremos de cómo tener un million de usuarios, o de como tener una idea que logre un millón de usuarios








Feb
Nov
20k+
2M+
Active users
7 Paises

+
29+ Ciudades
Los dos grandes retos en proyectos con muchos usuarios

Incrementar las funcionalidades pero no la deuda tecnica
Que el proyecto no muera a medida que hay más usuario
Mantenibilidad
Disponibilidad

¿Que considerar?
CONSTRUCCIÓN
DISTRIBUCIÓN


Como sobrellevar esos retos
Mantenibilidad
Disponibilidad

La Construcción

DEL PROYECTO
1. Usar una arquitectura para escalar desde el Inicio


2. Evitar un unico punto de fallo


Desacoplamiento o API First
3. Usar cache, pero sabiamente

Cache
Server


request
response
original fetch

browser cache
Un cache es como el poder, si lo usas sin control, puede terminar volviendote loco
- Yo
Solo hay dos cosas difíciles en las Ciencias de la computación:
cómo nombrar variables e invalidar cache
- Phil Karlton
4. Optimizar la obtención de Datos, siempre

La mayor parte del tiempo transcurrido desde un request hasta un response tiene que ver con consultas a las bases de datos

5. Rastrear todo, en especial los errores
Bug
Feature

o como dice la banda agregar logs a todo

6. Hacer pruebas por amor de Dios,
muchas pruebas

Unitarias
Funcionales
Integración
UI
Carga
etc ...
Haz pruebas, te aseguro que tu yo del futuro de lo agradecera
P R U E B A S
Para que no se les olvide

7. Asincrono cuando sea necesario

8. Prepararse para los fallos,
Rollbacks Rapidos

a este consejo yo le llamo el invitado especial, Murphy

El Despliegue

DEL PROYECTO

Tipos de escalabilidad
VERTICAL
HORIZONTAL


Primeros Recursos
1 - 1000
Dominio
Servidores
Base de Datos


Alta Disponibilidad

Multiples Servidores
Balanceo de Carga

1000+
Performance & Monitoring
10k ~ 100k

Indexing
Cache
Object Storage
CDNs
Combine NoSQL

Automation
500.000+
Auto Scaling
Auto Provisioning
Infra as Code


Arquitecture Improvements
1M+


Queues
Notifications
Serverless
SOA
Microservices
Victor Aguilar C.
victor.aguilar@grow.mobi
Past leader de comunidades como GDG La Paz y Docker La Paz, actualmente.
Senior Backend Dev en Grow Mobility



¿Preguntas?
@vicobits
Aplicaciones para 1M de usuarios
By Victor Aguilar
Aplicaciones para 1M de usuarios
Como hacer aplicaciones escalables
- 396