Download - Usi 2011 paris_linked_in
1
Evolution de l’architecture de LinkedIn, enjeux techniques et organisationnels
Yassine Hinnach, Sr Engineering Manager, LinkedIn
2011 © Université du Système d’Information
2 2011 © Université du Système d’Information
LinkedIn, en bref
3 2011 © Université du Système d’Information
Une croissance rapide
11e site le plus visité aux Etats-Unis (rang mondial: 16, d’après alexa.com)
Sources principales de revenus: comptes payants, publicités, solutions de recrutement, annonces payantes.
Faire glisser l'image vers l'icône pour l'ajouter
Piliers de la plateforme sociale
Profils d’utilisateurs
Graphe social
Recherches
Communications
Flux d’activités sociales
Extraction de données, personnalisation
2011 © Université du Système d’Information4
5 2011 © Université du Système d’Information
Page d’acceuil
6 2011 © Université du Système d’Information
Recherche, profil
7 2011 © Université du Système d’Information
Evolution de l’architecture
8 2011 © Université du Système d’Information
Architecture: 2003 - 2004
9 2011 © Université du Système d’Information
Architecture: 2005 - 2006
10 2011 © Université du Système d’Information
Architecture: 2007 - 2011
11 2011 © Université du Système d’Information
Architecture: 2007 – 2011 (suite)
UI framework propriétaire: requêtes effectuées en parallèle.
Cloud distribué, réécrit en C++ puis Scala
Hadoop: personnalisation des produits. Offline à grande échelle.
A/B testing: Tous changements de produits ou d’infrastructure.
Site de dépannage en cas de catastrophe.
Surveillance des systèmes et alertes.
12 2011 © Université du Système d’Information
Infrastructure Email
Hadoop:
Message Generation
Comm:
Kafka
Keymaster
PYMKAISL YPHANJ …
Mise en place
New Jobs
Mbr Info W Pics
User Activity…
LiX
DTO
Notifier
Gatekeeper
Tickle DB Tickle Voldemort
13 2011 © Université du Système d’Information
Technologies et open source
http://sna-projects.com
14 2011 © Université du Système d’Information
SOA
15 2011 © Université du Système d’Information
SOA: Promesses
• Chaque service scale indépendamment
• Systèmes tolérants en cas de dégradation de services.
• Permet de développer en parallèle
• Code découplé
16 2011 © Université du Système d’Information
SOA: La réalité
• Difficile à implémenter
• Moins d’intégrité de données, pas de
transactions entre services.
• Complexité accrue du système (architecture, déploiements, versions, configuration, instrumentation)
• Coût accru
• Autres problèmes: timeouts en cascade, plus de temps réseau.
17 2011 © Université du Système d’Information
SOA: Mise en œuvre
• Parallélisation des requêtes à tous niveaux y compris framework UI.
• Gestion des timeouts: load balancers, adaptation aux services en difficulté.
• Colocaliser physiquement les données pour minimiser le I/O disque aléatoire.
• Caches de données.
• Instrumentation: «What gets measured gets fixed».
18 2011 © Université du Système d’Information
SOA: Conseils
• Peu d’intérêt pour sites simples, petits ou startups
• Eviter le Java Serialization pour communiquer entre services.
• APIs: éviter l’explosion de méthodes (builder pattern et query criteria encouragés).
• Développement logiciel défensif.
• Privilégier les test unitaires (mocks): résultats prévisibles, rapides. Calibrer les tests d’intégration.
19 2011 © Université du Système d’Information
Défis techniques
20 2011 © Université du Système d’Information
Stockage de donnees
Croissance exponentielle des données à stocker, besoin d’une solution:
- Economique (linux, mysql, lucene, open source)
- Elastique (ajout de machines, rééquilibrage)
- Simple a administrer
- Satisfaisant les besoins de nos produits
(index multiples, recherches, réplication, failover, cluster équilibré, multiples centres de données, contraintes de SLAs strictes, analyze de données, instrumentation)
21 2011 © Université du Système d’Information
Autres défis
• Un framework UI universel, développement UI ultra-rapide
• Builds, déploiements de logiciels: parmi les problèmes les plus complexes à grande échelle.
• Inter opérabilité des services, sans barrières dues aux langages de programmation.
• «Active-Active»: Utilisation optimale des centres de données.
22 2011 © Université du Système d’Information
De la startup à la grande entreprise
23 2011 © Université du Système d’Information
Retour à la startup
• Cycles de développement courts (2-3 semaines), scrum.
• Revues du design puis du code: distribution des connaissances, code plus solide, apprentissage pour nouveaux ingénieurs.
• Ingénieurs colocalisés: favorise les échanges, le «pair programming»
• Expertise en tous les domaines au sein de l’équipe (techniques de recherches, administration système, map-reduce, QA, design, instrumentation)
24 2011 © Université du Système d’Information
Culture de l’entreprise
• Projets au niveau élevé de réutilisation encouragés
• Réparer les «vitres cassées», remède contre le laisser-aller
• Culture du «Oui, c’est possible»
• Simplicité des produits et solutions techniques
• Hackdays et indays
• Forums d’expression (améliorations ou nouveaux produits, repas, transports, recrutement)
25 2011 © Université du Système d’Information
Hackdays
26 2011 © Université du Système d’Information
Environnement de travail exceptionnel
http://www.linkedin.com/static?key=jobs
27 2011 © Université du Système d’Information
Questions?
Yassine Hinnach: http://www.linkedin.com/in/yassine [email protected]