Twitter använder en komplex och distribuerad infrastruktur, men här är en uppdelning av några av de viktigaste serverteknologierna de litar på:
* backend: De använder främst JVM -baserad stack.
* Java, Scala och Kotlin: Dessa är de primära programmeringsspråken.
* finagle: Ett feltolerant, protokoll-agnostiskt RPC-system för att bygga högkontorsservrar.
* mesos: En open source-klusterhanterare brukade abstrakta CPU, minne, lagring och andra beräkningsresurser bort från maskiner.
* Thrift: En ram för skalbar utveckling av tvärspråkstjänster.
* Datalagring:
* mysql: Används för mycket kärndatalagring. På grund av Twitters skala skär de dock kraftigt sina MySQL -databaser.
* cassandra: En NoSQL-databas som används för högvolym, höghastighetsdatalagring och återhämtning.
* hadoop/hdfs: Används för storskalig databehandling och analys.
* memcached: Ett distribuerat minnesobjektcachningssystem som används för att påskynda åtkomst till ofta begärda data.
* redis: En butik i minnet datastruktur, som används som en databas, cache och meddelandemäklare.
* webbservrar:
* nginx: En populär och högpresterande webbserver och omvänd proxy som används för att hantera inkommande webbtrafik.
* Meddelande köer:
* kafka: En distribuerad strömningsplattform för att bygga data i realtid och strömningsapplikationer. Används för att hantera den massiva strömmen av tweets och andra evenemang.
* Sök:
* Lucene/Elasticsearch: Powers Twitters sökfunktionalitet.
Viktiga överväganden:
* Microservices Architecture: Twitter är byggd som en samling mikroservices, vilket innebär att de har många oberoende, mindre applikationer som arbetar tillsammans. Varje mikroservice kan använda olika tekniker som bäst passar för dess specifika syfte.
* Anpassade lösningar: I sin skala har Twitter troligen utvecklat och anpassat många av sina egna interna verktyg och system för att tillgodose deras specifika behov.
* Molninfrastruktur: Medan Twitter historiskt körde mycket av sin egen infrastruktur, utnyttjar de alltmer molnleverantörer som Google Cloud Platform (GCP) och Amazon Web Services (AWS) för några av sina tjänster.
Sammanfattningsvis förlitar Twitter inte på en enda servertyp utan använder snarare en kombination av teknik för att stödja webbplatsens funktionalitet, databehandling och skalbarhetsbehov.