|
Twitter utilise une infrastructure complexe et distribuée, mais voici un aperçu de certaines des technologies de serveur clés sur lesquelles ils s'appuient :
* Back-end : Ils utilisent principalement une pile basée sur JVM.
* Java, Scala et Kotlin : Ce sont les principaux langages de programmation.
* Finagle : Un système RPC tolérant aux pannes et indépendant du protocole pour créer des serveurs à haute concurrence.
* Mésos : Un gestionnaire de cluster open source utilisé pour extraire le processeur, la mémoire, le stockage et d'autres ressources de calcul des machines.
* Épargne : Un cadre pour le développement de services multilingues évolutifs.
* Stockage des données :
* MySQL : Utilisé pour une grande partie du stockage de données de base. Cependant, en raison de l'ampleur de Twitter, ils fragmentent fortement leurs bases de données MySQL.
* Cassandre : Une base de données NoSQL utilisée pour le stockage et la récupération de données volumineuses et à grande vitesse.
* Hadoop/HDFS : Utilisé pour le traitement et l’analyse de données à grande échelle.
* Memcached : Un système de mise en cache d'objets à mémoire distribuée utilisé pour accélérer l'accès aux données fréquemment demandées.
* Redis : Un magasin de structures de données en mémoire, utilisé comme base de données, cache et courtier de messages.
* Serveurs Web :
* Nginx : Un serveur Web et un proxy inverse populaires et performants utilisés pour gérer le trafic Web entrant.
* Files d'attente de messages :
* Kafka : Une plateforme de streaming distribuée pour créer des pipelines de données en temps réel et des applications de streaming. Utilisé pour gérer le flux massif de tweets et d’autres événements.
* Rechercher :
* Lucene/Elasticsearch : Alimente la fonctionnalité de recherche de Twitter.
Considérations importantes :
* Architecture des microservices : Twitter est construit comme un ensemble de microservices, ce qui signifie qu'ils disposent de nombreuses applications indépendantes et plus petites qui fonctionnent ensemble. Chaque microservice peut utiliser différentes technologies les mieux adaptées à son objectif spécifique.
* Solutions personnalisées : À leur échelle, Twitter a probablement développé et personnalisé bon nombre de ses propres outils et systèmes internes pour répondre à ses besoins spécifiques.
* Infrastructure cloud : Même si Twitter exploitait historiquement une grande partie de sa propre infrastructure, ils font de plus en plus appel à des fournisseurs de cloud tels que Google Cloud Platform (GCP) et Amazon Web Services (AWS) pour certains de leurs services.
En résumé, Twitter ne s'appuie pas sur un seul type de serveur, mais utilise plutôt une combinaison de technologies pour prendre en charge les besoins de fonctionnalité, de traitement des données et d'évolutivité du site Web.
|