logo de linkedinPracticamente todos hoy en día conocemos Linkedin, el sitio para compartir CV y recomendar profesionales, que crece día a día cada vez más rápidamente. Pero, ¿cómo funciona técnicamente el sitio? ¿qué arquitectura utilizan? ¿cómo aseguran la calidad del desarrollo en un proyecto que es usado a diario por miles y miles de personas de todo el mundo?

En Java One 2008 la gente de Linkedin dio una presentación contando algunos de sus (¡muy interesantes!) secretos e infraestructura, y cómo utilizan Java y una metodología ágil para llevar adelante un éxito.

Linkedin y Java

Historia y números

  • Linkedin apareció en 2003
  • La compania tiene ganancias desde 2006
  • 250 empleados
  • 22 millones de miembros
  • 4 millones de visitas únicas por mes
  • 40 millones de páginas vistas por día
  • 2 millones de búsquedas por día

El desarrollo en Java

  • 50 ingenieros, 8 equipos
  • 1 millón de líneas de código
  • 99% del código en Java
  • 20 ramas de desarrollo activas
  • Amplia utilización de Generics
  • Frameworks estándares: Spring, Lucene, Quartz, Ehcache, Spring MVC, Junit

Proceso de desarrollo

  • Iteraciones cortas, de 2 a 3 semanas
  • Minimizar las reuniones, fomentar las reuniones "de pie"
  • Focalizado en el testing

Testing

  • Más de 6500 tests unitarios y de integración
  • 500 tests HtmlUnit
  • Integración continua utilizando Hudson, desplegado en 20 nodos
  • Utilización de EasyMock para facilitar el testing y reducir tiempos de ejecución

La arquitectura

  • Arquitectura orientada a servicios
  • 12GB de Heap en la JVM
  • 40 servidores en cluster desplegados en producción

Presentación de Linkedin en Java One 2008

 

 

Inspiración.

"Si tú tienes una manzana y yo tengo una manzana e intercambiamos las manzanas, entonces tanto tú como yo seguiremos teniendo una manzana cada uno. Pero si tú tienes una idea y yo tengo una idea, e intercambiamos las ideas, entonces ambos tendremos dos ideas"

Bernard Shaw