Twitter gebruikt een complexe en gedistribueerde infrastructuur, maar hier is een overzicht van enkele van de belangrijkste servertechnologieën waarop ze vertrouwen:
* Backend: Ze gebruiken voornamelijk op JVM gebaseerde stack.
* Java, Scala en Kotlin: Dit zijn de belangrijkste programmeertalen.
* Finagle: Een fouttolerant, protocol-agnostisch RPC-systeem voor het bouwen van servers met hoge gelijktijdigheid.
* Meso's: Een open-source clustermanager die wordt gebruikt om CPU-, geheugen-, opslag- en andere computerbronnen weg te halen van machines.
* Spaarzaamheid: Een raamwerk voor schaalbare ontwikkeling van taaloverschrijdende diensten.
* Gegevensopslag:
* MySQL: Wordt gebruikt voor veel kerngegevensopslag. Vanwege de omvang van Twitter verdelen ze hun MySQL-databases echter zwaar.
* Cassandra: Een NoSQL-database die wordt gebruikt voor het opslaan en ophalen van grote hoeveelheden gegevens met hoge snelheid.
* Hadoop/HDFS: Gebruikt voor grootschalige gegevensverwerking en analyse.
* Geheugen in cache: Een gedistribueerd cachingsysteem voor geheugenobjecten dat wordt gebruikt om de toegang tot veelgevraagde gegevens te versnellen.
* Opnieuw: Een gegevensstructuuropslag in het geheugen, gebruikt als database, cache en berichtenmakelaar.
* Webservers:
* Nginx: Een populaire en krachtige webserver en reverse proxy die wordt gebruikt voor het verwerken van inkomend webverkeer.
* Berichtenwachtrijen:
* Kafka: Een gedistribueerd streamingplatform voor het bouwen van realtime datapijplijnen en streaming-applicaties. Wordt gebruikt voor het verwerken van de enorme stroom tweets en andere evenementen.
* Zoeken:
* Lucene/Elasticsearch: Maakt de zoekfunctionaliteit van Twitter mogelijk.
Belangrijke overwegingen:
* Microservices-architectuur: Twitter is gebouwd als een verzameling microservices, wat betekent dat ze veel onafhankelijke, kleinere applicaties hebben die samenwerken. Elke microservice kan verschillende technologieën gebruiken die het meest geschikt zijn voor zijn specifieke doel.
* Aangepaste oplossingen: Op hun schaal heeft Twitter waarschijnlijk veel van hun eigen interne tools en systemen ontwikkeld en aangepast om aan hun specifieke behoeften te voldoen.
* Cloud-infrastructuur: Hoewel Twitter historisch gezien een groot deel van zijn eigen infrastructuur beheerde, maken ze voor sommige van hun diensten steeds meer gebruik van cloudproviders zoals Google Cloud Platform (GCP) en Amazon Web Services (AWS).
Samenvattend:Twitter vertrouwt niet op één enkel servertype, maar gebruikt eerder een combinatie van technologieën om de functionaliteit, gegevensverwerking en schaalbaarheidsbehoeften van de website te ondersteunen. |