Le réseautage social est l'art de se connecter avec ceux qui partagent des intérêts communs. Votre «réseau» est une communauté qui vous aide à rester uni avec les autres et offre de nombreux avantages. La mise en réseau via les sites de médias sociaux a révolutionné la façon dont nous utilisons Internet et est à l'avant-garde de ce que nous appelons aujourd'hui le Web 2.0.
Facebook est un réseau social. Les gens se «facebookisent» depuis environ 6 ans maintenant, faisant de Facebook le réseau social le plus utilisé avec plus de 350 millions d'utilisateurs dans le monde. Mais comment fonctionne Facebook?
Dans cet article, je parlerai du fonctionnement interne de Facebook, en couvrant son architecture et son infrastructure frontend / backend "" les boulons qui tiennent ensemble Facebook.
Comment fonctionne Facebook? "" Le Front End
Facebook utilise une variété de services, d'outils et de langages de programmation pour constituer son infrastructure de base. Au début, leurs serveurs exécutent une pile LAMP (Linux, Apache, MySQL et PHP) avec Memcache. Pas un expert en informatique? Jetons un coup d'oeil à exactement ce que cela signifie.
Linux et Apache
Cette partie est assez explicite. Linux est un noyau de système d'exploitation de type Unix. C'est open source, très personnalisable, et bon pour la sécurité. Facebook exécute le système d'exploitation Linux sur les serveurs HTTP Apache. Apache est également gratuit et est le serveur Web open source le plus utilisé.
MySQL
Pour la base de données, Facebook utilise MySQL en raison de sa rapidité et de sa fiabilité. MySQL est principalement utilisé comme magasin de valeurs-clés car les données sont distribuées de manière aléatoire parmi un grand nombre d'instances logiques. Ces instances logiques sont réparties entre les nœuds physiques et l'équilibrage de la charge est effectué au niveau du nœud physique.
En ce qui concerne les personnalisations, Facebook a développé un schéma de partitionnement personnalisé dans lequel un ID global est attribué à toutes les données. Ils ont également un système d'archivage personnalisé basé sur la fréquence et la fréquence des données par utilisateur. La plupart des données sont distribuées de manière aléatoire.
PHP
Facebook utilise PHP parce que c'est un bon langage de programmation web avec un support étendu et une communauté de développeurs active et c'est bon pour une itération rapide. PHP est un langage de script typé / interprété dynamiquement.
Memcache
Memcache est un système de mise en mémoire cache qui est utilisé pour accélérer les sites Web dynamiques basés sur des bases de données (comme Facebook) en mettant en cache des données et des objets dans la RAM pour réduire le temps de lecture. Memcache est la forme principale de mise en cache de Facebook et contribue à alléger la charge de la base de données.
Avoir un système de mise en cache permet à Facebook d'être aussi rapide que de rappeler vos données. S'il ne doit pas aller à la base de données, il récupérera simplement vos données à partir du cache en fonction de votre ID utilisateur.
Inconvénients d'utiliser LAMP
Facebook a réalisé qu'il y avait des inconvénients à utiliser la pile LAMP. Notamment, PHP n'est pas forcément optimisé pour les grands sites et donc difficile à mettre à l'échelle. En outre, ce n'est pas le langage d'exécution le plus rapide et le cadre d'extension est difficile à utiliser.
Mike Schroepfer, vice-président de l'ingénierie de Facebook, a récemment fait une interview à EmTech @ MIT à ce sujet. «La mise à l'échelle d'un site Web est un défi», a déclaré M. Schroepfer, «mais la mise à l'échelle d'un réseau social présente des défis uniques».
Il a ajouté que, contrairement à d'autres sites Web, vous ne pouvez pas ajouter plus de serveurs pour résoudre le problème en raison du «grand ensemble de données interconnectées» de Facebook. De nouvelles connexions sont créées en permanence en raison de l'activité des utilisateurs.
Facebook a connu une croissance si rapide qu'il est souvent confronté à des problèmes de requêtes de bases de données, de mise en cache et de stockage de données. Leur base de données est énorme et largement complexe. Pour rendre compte de cela, Facebook a lancé beaucoup de projets open source et de services backend.
Comment fonctionne Facebook? "" L'arrière-plan
Les services backend de Facebook sont écrits dans différents langages de programmation, notamment C ++, Java, Python et Erlang. Leur philosophie pour la création de services est la suivante:
1. Créer un service si nécessaire
2. Créer un cadre / une boîte à outils pour faciliter la création de services
3. Utilisez le bon langage de programmation pour la tâche
Une liste de tous les développements open source de Facebook peut être trouvée ici. Je vais discuter de quelques-uns des outils essentiels que Facebook a développés.
Thrift (protocole)
Thrift est un framework d'appel de procédure à distance léger pour le développement de services multilingues évolutifs. Thrift prend en charge C ++, PHP, Python, Perl, Java, Ruby, Erlang et autres. C'est rapide, cela permet d'économiser du temps de développement et de répartir le travail sur des serveurs et des applications hautes performances.
Scribe (serveur de journal)
Scribe est un serveur d'agrégation de données de journaux diffusées en temps réel à partir de nombreux autres serveurs. C'est un cadre évolutif utile pour la journalisation d'un large éventail de données. Il est construit au-dessus de Thrift.
Cassandra (base de données)
Cassandra est un système de gestion de base de données conçu pour gérer de grandes quantités de données réparties sur de nombreux serveurs. Il alimente la fonctionnalité de recherche dans la boîte de réception de Facebook et fournit un magasin de valeurs-clés structuré avec une cohérence éventuelle.
HipHop pour PHP
HipHop for PHP est un transformateur de code source pour le code de script PHP et a été créé pour économiser les ressources du serveur. HipHop transforme le code source PHP en C ++ optimisé. Après cela, il utilise g ++ pour le compiler en code machine.
Conclusion
En un mot, c'est Facebook. Cet article pourrait facilement être 37 pages plus long si je devais entrer dans plus de détails, mais pour répondre à la question "Comment fonctionne Facebook?" Je pense que cela suffira. Si vous regardez au-delà de toutes les fonctionnalités et les innovations, l'idée principale derrière Facebook est vraiment très basique "" garder les gens connectés. Facebook réalise la puissance du réseautage social et innove constamment pour garder son service le meilleur dans l'entreprise.
Avez-vous trouvé cet article utile? Laissez vos pensées, commentaires et idées ci-dessous!