Publicité
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. Le réseautage 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 maintenant le Web 2.0.
Facebook est réseautage social. Les gens se «facebookent» depuis environ 6 ans maintenant, ce qui fait 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 vais discuter du fonctionnement interne de Facebook, couvrant son architecture et infrastructure frontend / backend "" les écrous et boulons qui maintiennent Facebook ensemble.
Comment Facebook fonctionne-t-il? ""
Facebook utilise une variété de services, d'outils et de langages de programmation pour constituer son infrastructure de base. À l'avant, leurs serveurs exécutent une pile LAMP (Linux, Apache, MySQL et PHP) avec Memcache. Pas un expert en informatique? Voyons exactement ce que cela signifie.
Linux et Apache
Cette partie est assez explicite. Linux est un noyau de système d'exploitation d'ordinateur de type Unix. Il 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 populaire utilisé.
MySQL
Pour la base de données, Facebook utilise MySQL en raison de sa vitesse 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 ensemble d'instances logiques. Ces instances logiques sont réparties sur les nœuds physiques et l'équilibrage de 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 schéma d'archivage personnalisé qui est basé sur la fréquence et la fréquence des données par utilisateur. La plupart des données sont distribuées au hasard.
PHP
Facebook utilise PHP car c'est un bon langage de programmation Web avec un support étendu et une communauté de développeurs active et il 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 cache de mémoire 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 principale forme de mise en cache de Facebook et permet d'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 lors du rappel de vos données. S'il ne doit pas aller dans la base de données, il récupérera simplement vos données du cache en fonction de votre ID utilisateur.
Inconvénients de l'utilisation de LAMP
Facebook a réalisé qu'il y avait des inconvénients à utiliser la pile LAMP. Notamment, PHP n'est pas nécessairement optimisé pour les grands sites Web et donc difficile à mettre à l'échelle. De plus, ce n'est pas le langage qui s'exécute le plus rapidement et le cadre d'extension est difficile à utiliser.
Mike Schroepfer, vice-président de l'ingénierie de Facebook, a récemment réalisé une interview à EmTech @ MIT à ce sujet. "La mise à l'échelle d'un site Web est un défi", a déclaré Schroepfer, "mais la mise à l'échelle d'un réseau social présente des défis uniques."
Il a poursuivi en disant que contrairement aux autres sites Web, vous ne pouvez pas simplement ajouter plus de serveurs pour résoudre le problème, car de «l'énorme ensemble de données interconnectées» de Facebook. De nouvelles connexions sont créées tout le temps en raison de l'activité de l'utilisateur.
Facebook s'est développé si rapidement qu'ils sont souvent confrontés à des problèmes concernant les requêtes de base de données, la mise en cache et le stockage des données. Leur base de données est énorme et largement complexe. Pour tenir compte de cela, Facebook a lancé de nombreux projets open source et services backend.
Comment Facebook fonctionne-t-il? »»
Les services backend de Facebook sont écrits dans une variété de langages de programmation différents, y compris C ++, Java, Python et Erlang. Leur philosophie de création de services est la suivante:
1. Créer un service si besoin
2. Créer un cadre / ensemble d'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)
Épargne est un cadre d'appel de procédure distante léger pour le développement évolutif de services multilingues. Thrift prend en charge C ++, PHP, Python, Perl, Java, Ruby, Erlang et autres. Il est rapide, permet de gagner du temps de développement et offre une répartition du travail sur les serveurs et applications hautes performances.
Scribe (serveur de journalisation)
Scribe est un serveur pour agréger des données de journal diffusées en temps réel à partir de nombreux autres serveurs. Il s'agit d'un cadre évolutif utile pour enregistrer 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 fonction 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 pour 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 faire 37 pages de plus si je devais entrer dans les 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 innovations, l'idée principale derrière Facebook est vraiment très basique "" garder les gens connectés. Facebook se rend compte de la puissance des réseaux sociaux 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!
Steve, Community Manager chez VaynerMedia, est passionné par les médias sociaux et la création de marque.