

Acabo de terminar de leer un libro técnico muy interesante, está orientado a administradores de sistemas o gente que tiene que administrar o desarrollar webs grandes y es de lo mejor que he leído en los últimos años.
Se llama “Web Operations - Keeping the data on time” y cada capitulo está escrito por un autor distinto centrandose en un tema concreto como por ejemplo monitorización, métricas de rendimiento, backup, provisión de equipos, S3 como almacenamiento o bases de datos NoSQL. Temas bastante normales sobre los que seguro que ya has leido mucho pero lo interesante del libro es que no explica como instalar o utilizar X programa, sino la importancia y la razón de hacerlo con las mejores practicas de expertos en cada tema.
Por ejemplo en el capitulo 5 el autor de ganglia explica las razones por las que comenzó a desarrollarlo y la forma correcta de usarlo (sacando métricas de absolutamente todo lo que puedas) pero el capitulo no se centra en ganglia sino en la funcion de las métricas en general.
En otro capitulo el creador de Chef (una herramienta de provisión de servidores similar a puppet o enginecf), nos pone en una situación muy interesante haciendonos pensar que haríamos si un tornado destruye completamente el CPD, estamos de guardia y nos toca recuperarlo. Algo que parece imposible pero es sencillo si definimos la infraestructura como código con puppet/chef.
También tenemos al director técnico de flickr explicando como los problemas mas importantes que tuvieron al migrar millones de imágenes desde Yahoo, el de Picnik con los problemas que encontraron usando S3 de amazon o al de dealnews explicando como tratan y se preparan para picos de trafico.
Los capítulos 6 y 11 hablan de la diferencia entre métricas de rendimiento y monitorizacion, y como los dos son necesarios. Es normal tener gráficas y alertas del rendimiento de las maquinas pero a veces es bueno tener alertas a nivel lógico como por ejemplo: “Si se han registrado menos de 10 usuarios en 24 horas, alerta”. Este tipo de métricas a nivel de la applicacion para saber cuantos usuarios se registran, el numero de ventas en una semana, el numero de imágenes que se añaden cada día, etc, son muy útiles para planificar la infraestructura que necesitaremos en el futuro.
El capitulo 10 trata la colaboración entre los departamentos de sistemas y desarrollo y los conflictos entre los dos grupos. Es algo que yo vivo a diario donde trabajo ya que casi siempre hay una gran separación entre los dos equipos y muchas veces no existen procedimientos para colaborar, hacer deployments o tests de forma sencilla (sobre todo para los desarrolladores).
El libro presupone que quieres tener una infraestructura resistente a fallos y estas dispuesto a trabajar para tenerla. Vamos, que te importa la aplicación en la que estas trabajando, la gente con la que trabajas y los usuarios que utilizan la aplicación.
Enlaces y mas reviews