Practicamente 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