pragone.com
desarrollo, comunidad y monetización
agrégalo a del.icio.us

Las nuevas tecnologías para la escalabilidad

Ultimamente, he estado viendo algunas nuevas tecnologías que se enfocan en la escalabilidad. Estamos en un momento realmente interesante de la evolución de las tecnologías Web, lo que más me llama la atención es que ya no basta con simplemente ver cómo optimizar o hacer el “fine tunning” de los sistemas que cualquier desarrollador conoce ya, sino que es hora de, incluso, revisar los conceptos más básicos: siguen siendo las bases de datos relacionales las más apropiadas?, son los lenguajes Orientados a Objetos lo mejor?

Por supuesto, si tu página web sólo sirve unos pocos miles de impresiones al día o a la hora, no tienes grandes problemas y muchas de estas preguntas son simplemente irrelevantes por el bien de un desarrollo ágil, pero si comienzas a hablar de páginas con tráfico considerable es posible que te encuentres con problemas para los que no haya soluciones ampliamente conocidas.

Trataré de escribir algunos artículos más exponiendo mi punto de vista sobre algunas de las tecnologías que ya conocemos y sus alternativas. Por el momento simplemente les dejo con algunos enlaces que pueden resultarles interesantes:

Lenguajes de programación:

  • Is the Supremacy of Object-Oriented Programming Over?: [EN] Un artículo realmente interesante que habla sobre las limitación de POO para ciertos problemas y plantea si es la hora de reintroducir lenguajes de programación funcionales por sus mejores condiciones para el manejo concurrente de tareas.
  • Erlang [EN] (Wiki [ES]): Un “nuevo” lenguaje de programación creado por Ericsson que es particularmente bueno para el manejo de tareas concurrentes y distribuidas. Es la base para algunos de los proyectos más interesantes que han salido últimamente.
  • Clojure [EN]: Otro lenguaje de programación funcional que vive dentro de la JVM

Persistencia / Bases de datos:

  • Anti-RDBMS a list of distributed key-value stores [EN]: Un buen artículo en el que se presenta una lista con algunas de las alternativas existentes a bases de datos relacionales. Particularmente interesantes son Project Voldemort y CouchDB.
  • BigTable [EN,PDF] y MapReduce [EN]: Desarrollados por Google, conceptualmente la base para la implementación de algunos de los sistemas de persistencia mencionados en el artículo anterior.
  • Eventually Consistent [EN]: un artículo interesante en el que se plantea la pregunta de: es necesaria la consistencia de la data siempre? o por razones de performance nos podemos permitir inconsistencias temporales?
  • Gigaspaces [EN]: Tecnología muy interesante que se enfoca en mantener todo en memoria y olvidarte de la persistencia (ya se encarga Gigaspaces de ello).
  • TokuDB [EN]: Un nuevo storage engine para MySQL, basado en lo que Tokutek llama Fractal Trees ™, o como lo llama el MIT “Cache-Oblivious Trees” [EN]

Búsqueda de texto / Indexación de información:

  • Sphinx [EN]: Un FullText Search Engine, con un performance excelente aunque con una lista limitada de funcionalidades.
  • Solr [EN]: Un nuevo FullText Search Engine de Apache que encapsula a Lucene y provee algunas funcionalidades extra como el preprocesamiento de la data a indexar.

Espero los enlaces les sean de interés, trataré de escribir algo más de detalle al respecto.

sin comentarios... »

No comments yet.

RSS feed de los comentarios. TrackBack URL

deja un comentario

Del.icio.us

enlaces de interés