Montando WordPress
en cluster
Alejandro Fernández
15+ años de experiencia en desarrollo
Consultor de Escalabilidad
Cacharreador Impenitente
El planteamiento
Cliente importante
El dinero no es problema
Quiere la seguridad de poder escalar
Demasiado tráfico
Un servidor WordPress: 4~8 peticiones/segundo (rps)
Total acumulado: 350k~700k peticiones/día
Con picos de tráfico: 100k~300k visitas/día
(Cuidádor: el factor puede variar)
La solución
Típica arquitectura de aplicación web
¿Problemas?
Uploads
Administración por HTTPS
Plugins
Base de datos
Fuente: WordPress ProTips
Uploads
Ficheros subidos a un único servidor
(directorio wp-content/uploads
)
Hay que distribuirlos a todos
Usamos Amazon S3:
W3 Total Caché
Mejor rendimiento
Administración por HTTPS
Directorio wp-admin
Protegido por contraseña
No es suficiente limitarlo:
wp-admin/admin-ajax.php
wp-admin/images/
¿Cómo abrirlos?
HAProxy
Un proxy inverso muy extendido
Permite filtrar el tráfico
Reglas complejas
Otros trucos
Plugins
Algunos plugins no son compatibles con cluster
¿Cuáles? Difícil saber a priori
Deshabilitarlos uno a uno
Actualizar WordPress
Base de datos
Amazon RDS con MySQL
Cluster de servidores
Reescalado automático
Provisión de ops
Balanceador
Amazon ELB
Servidor principal
Grupo de autoescalado
Crea servidores cuando hace falta
y los destruye cuando ya no
Despliegues
No basta con subir el código a un servidor
¡Ahora hay varios!
Subida sincronizada
Servidor central
Despliegue distribuido
Pelín complejo...
Pero ¿es Realmente Necesario?
Usa una caché
W3 Total Cache
Cacheo de páginas
Pasamos a 180 peticiones/segundo
sin despeinarnos (60% CPU)
2~5 millones de visitas al día
Conclusiones
Maneja varias estrategias para varios escenarios
No te compliques demasiado la vida
Haz pruebas de carga
Verifica todo
¡Gracias!
Y ahora...
Montando WordPress en cluster
By Alex Fernández
Montando WordPress en cluster
Charla para WordPress Madrid, 2014-10-09: http://www.meetup.com/WordPress-Madrid/events/210687812/
- 3,443