Escalando aplicaciones
Un tema que me gusta mucho es cómo escalar aplicaciones web, cuando se empiezan a recibir millones de visitas al día.
No es algo con lo que uno tenga que lidiar normalmente, desafortunadamente :-), pero a mi es un tema que me apasiona y al que presto mucha atención.
En Internet hay multitud de “historias de guerra” de distintos emprendedores que nos cuentan cómo han afrontado ellos este reto:
- SmugMug — Un servicio que aloja 140 millones de fotos y que se apoya en el servicio de hosting de Amazon (S3).
- Scribd — El videotube para documentos. Cómo escalar mediante “caching” de fragmentos de página.
(estas dos las he descubierto a través de Pensamientos Ágiles)
Por cierto, el servicio de presentaciones online SlideShare donde están estas presentaciones es otro ejemplo de uso de Amazon S3. En ese mismo sitio se pueden encontrar muchas presentaciones con el tag scaling y scale, algunas de las cuales son muy interesantes.
Y especialmente interesante me ha parecido el artículo del creador de mailinator. Mailinator es un servicio que recibe actualmente 2,5 millones de emails al día. Y lo hace con un sólo servidor (AMD 2Ghz Athlon, 1Gb de ram y disco duro de 80Gb). Y lo hace utilizando tecnología Java, a la que se le suele acusar de pesada. Todo un ejemplo de cómo un diseño inteligente es lo que verdaderamente escala.


23 mayo 2007, 07:46
Modestamente, cuando quería promocionar la página de webs para bodas, pensé a qué podría enfrentarme si crecía y crecía y crecía … pensé, si acabo contratando varios servidores dedicados, y tirando de subdominios al estilo Flikr (farm1.flickr.com/.../albinybritneydesnudos.jpg) habría que pensar en (a) manera de saber qué usuario está en qué servidor (b) manera de guardar ficheros en otro servidor (ya no valen rutas fisicas, quizás ftp).
Por otro lado, muchas veces, como tenemos información almacenada en bbdd montamos la página dinámicamente para cada visita, cuando en verdad no es un listado filtrado, y cada vez se va a ver igual que las anteriores, hasta que vuelve a cambiar el contenido de el/los registro/s, digo con esto, que se podría guardar “maquetada” en un campo de bbdd y ahorrarse el coste de recursos de concatenar campos cada vez.
Al principio de aterrizar en esta empresa, con el pretexto de que todos iban con modems lentos y que eran clientes potentes (se esperaban muchas vistas) y alguna paja mental más, apostamos por “planear” las páginas de las fichas (asp to html) y, si no tienes un tráfico realmente bestial, es un poco excesiva la medida.