Más vale tarde que nunca: Acá va un post dedicado a la anti-conferencia más importante de la web para emprendedores, desarrolladores, diseñadores e inversores en Buenos Aires.
Estuvo genial. Es una gran oportunidad para aprender y estar en contacto con la comunidad de desarrolladores web en Argentina. Es increíble lo bien que resultó pese a/gracias a su espíritu libre y desestructurado. Mis felicitaciones y agradecimientos a los organizadores y sponsors.
Tan desestructurado es BarCamp que hasta yo di una charla, que a continuación les resumo:
En Popego, tuve la oportunidad de trabajar mucho en cuestiones de escalabilidad. Pasando de las aplicaciones web más simples (un servidor con acceso a una base de datos) a las más complejas (con distribución de carga horizontal, utilizando colas de trabajo para aprovechar los recursos de distintos nodos, etc.).
Dicen los mitos de la escalabilidad que en YouTube tienen la siguiente receta: 1. Identificar cuellos de botella. 2. Arreglarlos. 3. Tomar. 4. Dormir. 5. Descubrir nuevos cuellos de botella.
Es decir que es una continua iteración para mejorar las capacidades de la aplicación.
Un ejemplo de los extremos a los que se llega: Como servidor web, hemos recurrido a nginx en lugar de Apache. La documentación oficial de este servidor desarrollado en Rusia nos resulta completamente ilegible ya que está escrita en... ¡ruso!
¿Qué es la escalabilidad? Es la habilidad de llevar aplicación los pequeños números a los grandes. E incluso viceversa: de los grandes a los pequeños. Que una aplicación crezca no significa que sea escalable. Y que una aplicación sea escalable tampoco significa que crezca. Una aplicación escalable es la que se puede hacer crecer (y decrecer) fácilmente.
Escalar es un dolor (de...). Es estar continuamente preocupados por las capacidades de la aplicación, siempre al borde de la máxima eficiencia posible.
Un cuello de botella muy común en donde probamos muchas alternativas es en las bases de datos. En muchas aplicaciones web se están reemplazando los motores de base de datos relacionales (RDBMS) por sistemas de almacenamiento por clave-valor. La desventaja es perder parte de las propiedades ACID (Atomicidad, Consistencia, Aislamiento y Durabilidad) de una base de datos relacional, especialmente las consultas transaccionales y la potencia de SQL (con joins, grup-by, order-by, etc.). La ventaja es ganar eficiencia al utilizar consultas de más bajo nivel, con llamadas que ni siquiera tienen que compilar SQL y acceden rápidamente a los recursos buscados por clave-valor. A la vez, muchas de estas bases de datos alternativas ofrecen mejores soluciones para alta disponibilidad, tolerancia a fallas y replicación. En esto uno no puede dejar de estar abierto continuamente a otras alternativas ya que la escalabilidad gobierna.
lunes 16 de noviembre de 2009
Suscribirse a:
Entradas (Atom)

