Libros: Building Scalable Web Sites
Va de programación web, pero a lo bruto. No tanto de las propias técnicas de programación web (hay muchos libros sobre eso), como de los aspectos a tener en cuenta cuando se aplican esas técnicas a aplicaciones grandes. Y por grandes no se refiere especialmente a funcionalidad (aunque normalmente también) como a tráfico, recursos necesarios, etc. El autor, Cal Henderson, dirigió el desarrollo de Flickr, así que parece saber de lo que habla.
¿Qué es la escalabilidad, o una aplicación escalable? El autor la define (para dejar clara la clásica confusión de escalabilidad con rendimiento) como la presencia de tres características:
- El sistema puede acomodarse a un uso creciente
- El sistema puede acomodarse a un conjunto de datos creciente
- El sistema es mantenible

De esta primera parte rescataría el capítulo sobre internacionalización, códigos de caracteres, etc., donde sí es didáctico y en pocas páginas arroja luz sobre una parcela que solemos pasar de puntillas y que da más dolores de cabeza de los que debería a estas alturas de la Era De La Información (tm).
Los dos capítulos que sí merecen la pena y que son la madre del cordero (y que saben a poco, porque con ese pedazo de introducción se quedan en menos de 100 páginas) son aquel sobre rendimiento, y el que habla de la escalabilidad propiamente dicha.
En esos dos capítulos, sin entrar demasiado al detalle, en primer lugar porque no hay recetas mágicas, y en segundo porque si las hubiera no cabrían en esas 100 páginas nos cuenta, entre otras cosas, técnicas para encontrar los cuellos de botella de nuestra aplicación, un repaso de los más típicos, y las maneras de solucionarlos, con especial atención al caching. Eso en cuanto a rendimiento.
En cuanto a escalabilidad, aparte de contarnos lo que es, por qué mola, y por qué es un objetivo a perseguir (y recordemos que no es el arte de hacer aplicaciones grandes, sino el de hacer aplicaciones que puedan convertirse en grandes en el momento necesario sin esfuerzo), nos habla de los tipos de escalabilidad (vertical y horizontal), y por qué la primera es caca y la segunda lo mejor desde el pan de molde. Y luego, claro, las técnicas para hacer escalable nuestra aplicación, capa por capa (sí, amigos; si vuestra aplicación no tiene capas, olvidaros de hacerla escalable), con especial atención a la de base de datos que, como sabrá cualquiera que lo haya tenido que hacer, es la más difícil de hacer escalable.
Luego cierra con dos capítulos que a mi juicio le sobran, por una parte porque tienen poco que ver con escalabilidad, y por otra porque los toca de manera absolutamente superficial, sobre monitorización y sobre web services.
Lo peor: lo larga y poco valiosa que es la introducción. Otra cosa digna de señalar son los enormes saltos de nivel que pega: lo mismo te explica lo que es el HTTP que te suelta perlitas como "esta técnica está bien, pero no es muy sólida y a partir de 1.000 servidores escala peor" (no, no es una errata mía, pone mil).
Lo mejor: los capítulos que representan el meollo y que al fin y al cabo son la razón por la que alguien se leería este libro son excepcionales. Concisos, claros y directos, no te dan la solución a tus problemas (lo cual como dije sería imposible porque cada aplicación es diferente), pero sí muy buenas pistas para buscarla tú mismo.
No voy a ponerme a pintar estrellas pero, de 5, le doy . Si tuviese 100 paginitas con la parte molona, le daría 4 largas, pero qué le vamos a hacer.
O'Reilly, Mayo 2006



jotaluis dijo
sí yo también vi un pez de esos en jara y sedal
11 Octubre 2006 | 03:49 PM