2010/2/9 Cristiam Castillo <[email protected]>: > Ha llegado el momento de escalar nuestra aplicación. Necesitamos enviar > miles de emails en menos tiempo, tener un site más estable y más rápido > y mejorar los tiempos de respuesta y la cantidad de solicitudes por segundo.
Primero que todo distinguir: escalar la aplicación web no significa que se vaya a tener un mejor tiempo de respuesta. Escalar significa que la aplicación podrá manejar una carga mayor sin que se degrade su performance actual. Es decir: si mi aplicación responde en 5 segundos con 10 requests por segundo, el hecho de que escale significa que responderá igual con 100 requests por segundo (por ejemplo) > Por ello, suelto este hilo: ¿han escalado sus aplicaciones web? ¿qué > arquitectura recomiendan? Te recomendaría primero medir tu aplicación web. Saber cuánto tráfico soporta ahora y cuánto podrá soportar. Si la cantidad de requests aumenta dónde comienza a sufrir: ¿usa mas memoria?, ¿más CPU?, ¿la base de datos es el cuello de botella?. > Hasta ahora, luego de leer varias horas, siento que la arquitectura > "mejor" utiliza un balanceador de carga (apache mod_load_balancer) que > canaliza la solicitud (http, smpt, etc) a un "cluster" de servidores web. Es la "mejor" por defecto, pero tienes que tener muchas consideraciones: ¿cómo replicar la información en todos los servidores del cluster?, ¿funciona nuestra aplicación en una arquitectura distribuida?, ¿qué tan rápido se puede agregar nuevos servidores al cluster? > Además se trabaja con bases de datos MySQL en modo Master - Slave. Cada > webserver podría tener un MySQL "slave" de sólo lectura y la base de > datos Master es donde se escribe. Es una buena idea para comenzar a trabajar, pero recuerda que a mayor cantidad de Slaves, la replicación puede comenzar a fallar. Todo tiene un "pero". > Tambien se divide los archivos "assets"(imágenes, textos fijos, audios y > videos) Y se puede usar un servidor web más ligero que apache como nginx o lighttpd y manejarlo con un dominio o subdominio distinto. >>y las BDs de datos de las de estadísticas, se des-normaliza y se > aplica caché con memcached. Son técnicas interesantes (agrega NoSQL, sistemas de archivos distribuidos, cloud servers, etc.) pero igual hay que aplicarlas con cuidado para que no se conviertas en puntos de falla de la aplicación. Por lo menos la teoría la tienes, llevarlo a la práctica requiere paciencia y buen humor :) Saludos, H.D. _______________________________________________ Lista de correo Linux-plug Temática: Discusión general sobre Linux Peruvian Linux User Group (http://www.linux.org.pe) Participa suscribiéndote y escribiendo a: [email protected] Para darte de alta, de baja o hacer ajustes a tu suscripción visita: http://listas.linux.org.pe/mailman/listinfo/linux-plug IMPORTANTE: Reglas y recomendaciones http://www.linux.org.pe/listas/reglas.php http://www.linux.org.pe/listas/comportamiento.php http://www.linux.org.pe/listas/recomendaciones.php
