Mostrando entradas con la etiqueta yahoo. Mostrar todas las entradas
Mostrando entradas con la etiqueta yahoo. Mostrar todas las entradas

miércoles, febrero 02, 2011

Retrospectiva sobre Hadoop y el Open Source

miércoles, febrero 02, 2011 por Martín

Eric Baldeschwieler, VP Hadoop Development en Yahoo, analiza en el blog de desarrolladores de Yahoo como ha sido la evolución de Hadoop durante sus cuatro años de vida y como ha influido la decisión de haberlo hecho Open Source en lugar de mantenerlo como un proyecto privado. ¿Fue una buena decisión?

La verdad es que atendiendo a sus comentarios parece que fue la mejor decisión que pudieron haber tomado. Yahoo nace en el 2006 y en su momento pensaron que no podía ser un producto de demasiado interés para sus competidores así que decidieron hacerlo Open Source simplemente para que se crease una comunidad de usuarios con itnereses relacionados. Con el tiempo todas sus expectativas se han disparado:

miércoles, noviembre 10, 2010

Fotos del Centro de datos de Hadoop

miércoles, noviembre 10, 2010 por Martín

En un artículo en InformationWeek de hace unos meses tienen algunas de las fotos del centro de datos y el equipo de Hadoop. Las imágenes son bastante impresionantes. Hace nada Yahoo lanzó S4, muy relacionado también con el tema de Hadoop.






sábado, noviembre 06, 2010

Yahoo lanza S4

sábado, noviembre 06, 2010 por Martín


Con un dominio muy molón Yahoo acaba de lanzar hace nada S4. Se trata de una "Distributed Stream Computer Platform" o para que nos entendamos, una librería/plataforma para procesar grandes cantidades de datos que van llegando continuamente en tiempo real.

Hace nada acaban de publicar una entrada en su blog presentando el proyecto. Se trata de llevar la filosofía que MapReduce y Hadoop han popularizado para el procesado de trabajos en batch al procesado de datos que fluyen en tiempo real. Ellos ponen el ejemplo del análisis mediante técnicas de aprendizaje por computador de miles de búsquedas por segundo realizadas por millones de usuarios diariamente en el buscador de Yahoo.

Todo esto de manera que sea distribuido, es decir que haya múltiples nodos que se dividan el procesado de ese flujo de datos; que sea escalable, es decir que para soportar el procesado de más información sólo sea necesario introducir más máquinas; y que sea tolerante a fallos, es decir que si algún nodo se cae, haya otro que sea capaz de procesar esos datos.

La plataforma es Open Source, la han liberado bajo la licencia Apache y está desarrollada completamente en Java.

viernes, agosto 08, 2008

Usando Google (y Yahoo) como CDN para tu código JavaScript

viernes, agosto 08, 2008 por Martín


La número dos de las trece reglas para conseguir páginas web más rápidas (según Yahoo) es utilizar una CDN (Content Delivery Network). Ahora bien, las CDN cuestan dinero y quizás con nuestro modesto presupuesto no nos podamos permitir ningún gasto extra más.

Pues bien, en High Scalability publican un truco muy interesante, que básicamente consiste en utilizar el servicio gratuito de Google de hosting de librerías JavaScript. Se trata del proyecto AJAX Libraries API y hasta el momento alojan jQuery, jQuery UI, prototype, script.aculo.us, MooTools, y dojo.

Usar este servicio en nuestras páginas web es tan sencillo como referenciar a sus ficheros JavaScript:


<script src="http://ajax.googleapis.com/ajax/libs/prototype...
.../1.6.0.2/prototype.js"/>

Por su parte, Yahoo también ofrece hosting para su propia librería, YUI, como se muestra en este artículo.

El único problema que tendremos es que si el servicio de hosting de Yahoo o Google no son accesibles, por cualuier razón, nuestra librería no estará accesible, y por consiguiente es probable que nuestra aplicación no funcione. Aunque bueno, ya se sabe que aunque caerse se caen, su disponibilidad suele ser bastante alta, por lo que parece muy útil el ahorrarnos unas cuantas peticiones HTTP en nuestros servidores y pasárselas a los peces gordos:)

domingo, febrero 24, 2008

Microsoft aclara a algunos de sus empleados lo que pasará si compra Yahoo

domingo, febrero 24, 2008 por Martín

Microsoft ha publicado un correo dirigido al personal de la Platform & Services Division en la que el presidente de esta división, Kevin Johnson, aclara que impacto tendría una posible compra de Yahoo!

El correo hace referencia a diferentes temas:
  • ¿Cuáles son los beneficios de una combinación Microsoft-Yahoo!? Aunque no lo dice en ninguna de las tres razones que aporta (mejor R&D, estimular el mercado de la publicidad online, y ventajas para los accionistas) está bastante claro que el transfondo es competir con Google.
  • ¿Habrá reducciones de plantilla? Sí, en ambos bandos.
  • ¿Qué pasa con las culturas de ambas compañías? La idea será combinarlas y quedarse con lo mejor de cada una.
  • ¿Qué pasará con las marcas y las tecnologías de cada compañía? La marca de Yahoo! se queda, ya que es una de las razones de la compra. Poco a poco se vería como se integra con las marcas de Microsoft.
  • ¿Qué pasa con la infraestructura de Yahoo! basada en Linux? Se mantendría como está y se procedería a un plan de integración entre ambas plataformas. El correo deja la puerta abierta a la migración de estos servicios a Windows.
  • ¿Se mantienen los centros de Silicon Valley y Redmond? Sí.
La verdad es que este tipo de notas te dan una idea de la magnitud de una hipotética unión como esta. La postura de Microsoft respecto a la infraestructura de Yahoo! es interesante, y como afirman en DataCenterKnowledge Microsoft se convertiría en uno de los mayores consumidores de software libre del mercado.

Ahora bien, queda la cuestión abierta de si este tipo de notas son simplemente para la galería y sosegar a empleados e inversores de ambas partes.

martes, febrero 19, 2008

Yahoo! despliega en producción la mayor aplicación basada en Hadoop

martes, febrero 19, 2008 por Martín


Justamente hace un rato que Yahoo! ha anunciado el despliegue en producción de la aplicación más importante desarrollada con Hadoop hasta el momento.

Se trata de Yahoo! WebMap una aplicación que se ejecuta sobre un cluster Linux de más de 10.000 núcleos y que se utiliza desde ahora mismo en cualquier búsqueda que se haga en la web de Yahoo. Aquí está como lo describen en el blog:

The Webmap build starts with every Web page crawled by Yahoo! and produces a database of all known Web pages and sites on the internet and a vast array of data about every page and site. This derived data feeds the Machine Learned Ranking algorithms at the heart of Yahoo! Search.


Las estadísticas que proporcionan son de vértigo (traduzco):
  • Número de links: un trillón, aproximádamente.
  • Tamaño de la salida: 300 Tb, comprimidos.
  • Número de núcleos utilizados para ejecutar ún único trabajo map-Reduce: sobre 10.000
  • Espacio en disco utilizado en el cluster de producción: 5 Petabytes.


Mucha más información en la entrada en el blog de Yahoo!. Creo que nos ha quedado a todos definitivamente claro que Hadoop es apto para producción :-)

sábado, febrero 02, 2008

Si Microsoft compra Yahoo... ¿qué pasa con los desarrolladores?

sábado, febrero 02, 2008 por Martín


A estas alturas todo el mundo estará ya al corriente de la oferta de Microsoft por Yahoo. Hay tantos análisis por la red que simplemente marea. Casi todos se centran en el tema económico, el poder competir con Google, la importancia del negocio de la publicidad online, etc. Pero, ¿qué pasa con los desarrolladores?

La verdad es que desde el punto de vista de un trabajador en Yahoo, la cosa no pinta demasiado bien (salvo por las stock options que puedan tener, claro). Steven Ballmer es bastante explícito en su carta:

Operational efficiencies: Eliminating redundant infrastructure and duplicative operating costs will improve the financial performance of the combined entity.

Lo miremos como lo miremos, desde el punto de vista de los desarrolladores es terrible. Hay demasiados productos que chocan. Y estaría en el aire el saber que pasa con cada producto. Además, estamos en una operación que si ya de por sí es masiva desde el punto de vista monetario, no se queda atrás desde el punto de vista técnico. El choque de varios mundos que tradicionalmente han estado enfrentados: .NET vs PHP+Perl+Java. El choque de servicios que aunque a la vista del usuario de a pie son muy similares, lo cierto es que internamente son muy diferentes.

Y siendo francos, aunque en muchos análisis hablan de unir fuerzas entre servicios, yo no lo veo tan sencillo. Claro, a no ser que le llamemos "unir fuerzas" a migrar la tabla de usuarios de Microsoft Live a Flickr y después sus fotos, y cargarnos simplemente el motor imágenes de Live.

Otro de los temas interesantes sería la integración de sus servicios de computación. Ambas empresas tienen sus sistemas de computación distribuida. Yahoo con Hadoop basado en Java, y Microsoft con su Edge Computing Network basado en .NET y para el que está activamente reclutando por aquí en Dublin. En un principio parece que no hay problema por mantener las dos redes de computación funcionando en paralelo, y de hecho la ganancia de poder de computación que podrían tener los hipotéticos servicios que fuesen mezclados sería enorme. Ahora bien, ¿se puede permitir una compañía mantener dos redes de computación totalmente diferentes en paralelo?

Por último, ¿qué significaría esto para .NET? Porque inmediatamente después de la adquisición, la plantilla de Microsoft estaría plagada de perfiles Java (es lo que busca principalmente Yahoo en sus ofertas), perl, php, python, etc. Pero, poco hay de .NET en Yahoo. Al ser Yahoo los comprados, supongo que uno se podría esperar cualquier cosa, y los desarrolladores de Yahoo estarían siempre en la peor posición. Pero, en mi opinión la operación sería un fracaso total si, en lugar de integrar y adoptar la cultura de Yahoo en la compañía, intentan migrar todo a plataformas .NET. Ya no sólo por la complejidad sino porque la huida de desarrolladores sería enorme.

Así que en caso de que se produjese la hipotética fusión podríamos estar en vísperas de una nueva vuelta de tuerca en cuanto al mundo del desarrollo. Quizás hasta pudiesemos programar con Java en serio desde Visual Studio :)

domingo, enero 13, 2008

High Performance AJAX Applications

domingo, enero 13, 2008 por Martín

En la Yahoo Developers Network se puede ver el video de una presentación muy interesante de Julian Leconte titulada High Performance AJAX Applicatons.



Julian Leconte es ingeniero del equipo de desarrollo web de Yahoo y en esta presentación trata temas tan interesantes como el rendimiento de JavaScript, DHTML, CSS, AJAX y como utilizar algunas herramientas para medirlo. La presentación se construye sobre el fenomenal trabajo que ha realizado Steve Souders con su High Performance Web Sites. Por cierto, la presentación es totalmente agnóstica y aunque utiliza ejemplos de YUI (Yahoo User Interface), todo lo que se puede aprender en ella es aplicable a cualquier otro entorno y frameworks.

jueves, septiembre 27, 2007

Comunicando ideas con comics

jueves, septiembre 27, 2007 por Martín

De vez en cuando siempre te topas con algún artículo que supone un soplo de aire fresco a un tema tan tratado como son las metodologías de desarrollo.

En User Interface Engineering han publicado una entrevista con Kevin Cheng en la que explica como en algunos equipos de Yahoo utilizan comics para comunicar historias y casos de uso.

Parece que todo surgió a partir de un encuentro con Bill Buxton, Principal Researcher en Microsoft Research, después de reunirse con Kevin y su compañero Tom Chi, trazaron las ideas sobre lo que posteriormente pasarían a llevar a la práctica con el equipo de Yahoo! Local, que parece que estaba experimentando dificultades.



Según comenta Kevin en la entrevista, la experiencia fue todo un éxito y el feedback enormemente positivo; tanto que otros equipos y otros proyectos pasaron a utilizar esta técnica.

Antes del uso de comics los equipos tenían bastantes dificultades para seguir complejos documentos de requisitos. Según Bill, con los comics consiguen expresar de una manera muy sencilla y clara los diferentes casos de uso de la aplicacón. Es importante destacar que estos comics se centran en las interacciones del usuario con la aplicación, y no pretenden ser diagramas de bajo nivel.

Personalmente, me ha parecido una idea original, muy en línea con las metodologías ágiles. Parece tener realmente mucho sentidos cuando una historia se tiene que compartir, diseñar, especificar entre diferentes personas, departamentos, etc. Todos sabemos lo que pasa a veces con los documentos de requisitos cuando implican a mucha gente: alguien modifica algo aquí, otro añade algo allá, alguien no ve los cambios de la última versión y al final hemos perdido parte del significado.

Poner todo esto en unas cuantas viñetas es una de esas cosas que las piensas y dices: "vaya, esto realmente debe funcionar". Ahora bien, ¿están las compañías preparadas para adoptar una práctica así o es algo simplemente reservado para reductos de innovación como Yahoo? Eso ya es otra historia.

Por cierto, además de la presentación que he incrustado en esta entrada, también hay disponible un podcast con la entrevista.

martes, septiembre 04, 2007

High performance web sites: 13 reglas para conseguir páginas web más rápidas (video)

martes, septiembre 04, 2007 por Martín

El máximo responsable de rendimiento de Yahoo, Steve Souders realizó hace un mes una presentación sobre sitios web de alto rendimiento en la OSCON 2007. El caso es que, Steve, también autor del libro High Performance Web Sites, repitió la presentación en Yahoo hace unos días, y éstos la han puesto en la web para nuestro disfrute.



En la presentación habla sobre 13 reglas que han definido en el grupo de rendimiento de Yahoo para la creación de sitios web eficientes dentro de la compañía, explica cada una de las normas, y las diferencias entre seguirlas y no seguirlas, y por último habla un poco sobre YSlow.

Por cierto, las trece normas en orden de prioridad son:

1. Minimizar las peticiones HTTP
2. Utilizar una CDN
3. Añadir el tag expires a la cabecera HTML
4. Comprimir los diferentes recursos
5. Poner las CSS al principio de la página
6. Mover los scripts al final
7. Evitar las expresiones CSS
8. Externalizar los ficheros JavaScript y las CSS (y cachearlos)
9. Reducir las búsquedas DNS
10. Compactar el código JavaScript
11. Evitar la redirección
12. Eliminar scripts duplicados
13. Configurar los ETags

¿Alguna que se os ocurra?

martes, agosto 07, 2007

Hadoop toma protagonismo

martes, agosto 07, 2007 por Martín

Parece que uno de los proyectos que han tenido bastante éxito en la OSCON 2007 ha sido Hadoop, un subproyecto de Apache Lucene que implementa el conocido algoritmo de MapReduce utilizando su propio sistema de ficheros distribuido.

Tim O'Reilly ha publicado un extenso artículo sobre esta librería y la importancia de que Yahoo esté detrás de ella. En particular destaca la importancia de que Yahoo escoja el camino de contribuir al Open Source y respaldar proyectos exitosos como Lucene como base para las herramientas que utiliza, en lugar de seguir el camino de hacer desarrollos internos, que es el aparente camino que sigue Google (no quita que haya liberado interesantes frameworks).

Aún así el creador de Lucene y Hadoop, y ahora empleado de Yahoo, Doug Cutting, destaca que Hadoop no está limitado a la búsqueda ni tiene porque ser ese el escenario en el que rinde mejor:


"Where Hadoop really shines, is in data exploration." Many problems, including tuning ad systems, personalization, learning what users need -- and for that matter, corporate or government data mining -- involve finding signal in a lot of noise.


Y el artículo termina con un ejemplo de como utilizar MapReduce para afrontar la explotación de ficheros de log gigantescos.

El caso es que en la Yahoo Developer Network han publicado las charlas, powerpoints, video y audio de la presentación realizada en la OSCON y una entrada antes también hablan sobre la evolución del proyecto.

High Availability ofrecía un análisis hace poco sobre este producto. Y bueno, en casi todas estas fuentes referencian al artículo de Julio sobre como integrar Hadoop con Amazon Web Services.

Desde luego, parece que suena bastante. Por cierto, ¿a alguien le interesa jugar con Hadoop y Amazon? Un proyecto realmente interesante sería integrarlo con Apache Jackrabbit de forma que pudieses almacenar contenido de cualquier repositorio en un sistema de ficheros distribuido, como por ejemplo el de Hadoop, y que a su vez se volcase en un servicio como Amazon S3. Y además sería una contribución espectacular para jLibrary :D