Lecciones sobre escalabilidad de eBay
El eBay Distinguished Architect, Randy Shoup, ofreción una presentación sobre la escalabilidad de eBay que es bastante interesante. Lógicamente, pocos de nosotros nos vamos a encontrar con una décima parte de lo que ellos tienen:
- 89 millones de usuarios activos en el mundo
- 190 millones de elementos en 50.000 categorías
- 8.000 millones de URLs solicitadas cada día
- 70.000 millones de operaciones de lectura/escritura cada día
- 50TB de datos nuevos cada día
- 50PB de datos analizados cada día
Pero las lecciones que nos ofrece son bastante interesantes, de las cuales me gustaría destacar:
- Particionalo todo: si no puedes dividirlo no puedes escalarlo. Divídelo todo en elementos manejables separados por funcionalidad y tipo de datos.
- Asincronismo: conecta componentes independientes mediante una cola de eventos.
- Todo falla: monitorizalo todo, porque seguro que falla
- Siempre hay cambios: diseña de forma que puedan añadirse nuevas funcionalidades
- Automatízalo todo: aunque en este caso el autor se refiere a procesos de aprendizaje, yo lo enfocaría a que se eviten procesos manuales
eBay’s Challenges and Lessons: from Growing an eCommerce Platform to Planet Scale
Vía / High Scalability
El tÃtulo original dice ’10 razones por las que Silverlight cambiará la web’, y en mi opinión es pasarse un poco, entre otras cosas porque tampoco veo nada nuevo. Eso sÃ, también hay que reconocer que Silverlight parece una buena alternativa a Flash, sobre todo para los que desarrollen aplicaciones en .NET con Visual Studio. Microsoft sabe hacer las cosas y algo que gusta mucho a los jefes de proyectos es que todo esté conectado entre sà de forma fácil y rápida.
A todos nos pasa que nos gusta reutilizar (copy/paste) aquellas trozos de código (snippet) que hemos creado en algún proyecto anterior y que no nos apetece volver a pensar cómo hacerlo. En vez de tener que buscar entre todo el código que tenemos y pasarse todo el tiempo diciendo “recuerdo haber hecho esto en tal sitio”, podemos usar Snipplr para guardar nuestros propios snippets o para usar los que comparten otros usuarios, organizados por lenguaje de programación y por tags.