> Forums > Web
B
Übersicht der bei Facebook eingesetzten Technologien und Systeme
Erstellt
Jun. '10
|
letzte Antwort
Noch keine
|
Antworten
Noch keine
|
Aufrufe
5.8T |
24
„Gefällt mir“ |
Abos
Noch keine |
Fr., 25. Juni, 2010 um 23:09
#1
Facebook ist mit rund 400 Millionen Benutzern die grösste Social Media Plattform der Welt. Um die ungeheure Flut an Daten verarbeiten zu können bedient sich Facebook verschiedenster Systeme um maximale Performance zu bekommen. Hier mal das wichtigste und was alles bekannt ist: Facebook ist eigentlich immer noch eine LAMP Seite, welche aber kontinuierlich ausgebaut wurde. Die Seite basiert auf PHP welches aber durch einen eigenen Compiler auf den Servern direkt in nativen Code umgewandelt wird. Bei Facebook kommt Linux zum Einsatz welches vor allem im Bezug auf den Netzwerk Output optimiert wurde. Die Plattform basiert auf MYSQL welches aber durch verschiedene Systeme (siehe unten) ergänzt wird, so das die Webserver einen großen Teil der Last direkt übernehmen ohne auf die Datenbank zurückgreifen zu müssen. Software welche bei Facebook eingesetzt wird: Memcached ist eine der spannendsten Technologien im Internet momentan. Die Technik wird von vielen sehr grossen Netzwerken und Webplattformen genutzt. Memcached speichert Daten als Cache im Memory und fungiert als Brücke zwischen dem Webserver und der MySQL Datenbank (da Datenbankzugriffe relativ langsam sind). Facebook hat Memcached kontinuierlich weiter entwickelt und setzt tausende von Cache Servern ein mit jeweils mehreren Terrybyte RAM. PHP ist als Script Sprache ist deutlich langsamer als nativer Code welcher direkt auf den Server ausgeführt wird. HipHop for PHP übersetzt PHP in C++ welches dann direkt und mit voller Geschwindigkeit auf den Webservern laufen kann. Dadurch kann die Geschwindigkeit der einzelnen Webserver massiv gesteigert werden. HipHop wurde von einem kleinen Team (am Anfang waren nur 3 Leute beteiligt) bei Facebook selber entwickelt und ist seit rund 1.5 Jahren produktiv im Einsatz. Haystack ist Facebooks high performance Foto Storage. Eigentlich ist Haystack ein Objekt Speicher welcher auch anderes als Fotos speichern könnte. Dieser Storage hat unglaublich viel zu tun, sind doch rund 20 Milliarden Fotos im Speicher vorhanden, welche alle in 4 verschiedenen Auflösungen gespeichert werden. Alle Sekunde kommen 1.2 Millionen Fotos hinzu. BigPipe ist ein System welches dynamisch Webseiten in einzelne Fragmente zerlegt um dadurch die Performance zu steigern. Die einzelnen Pagelets genannten Fragmente können dann parallel ausgeliefert werden, was den Performance Boots ausmacht. So wird zum Beispiel das Chat Fenster separat ausgeliefert und der Newsfeed und so weiter. Cassandra ist ein Speichersystem ohne einen Single Point of Failure. Es ist eines der Vorzeige Produkte für die NoSQL Initiative. Cassandra liegt inzwischen als Open Source vor und wird von Facebook für ihr Inbox Suchsystem benutzt. Cassandra wird von vielen großen Sites benutzt, so zum Beispiel auch von Digg. Scribe ist ein flexibles Logging System welches Facebook für verschiedenste Zwecke benutzt. Es ist für grosse Systeme wie Facebook ausgelegt, und kann automatisch neue Logging Kategorien hinzufügen, wovon Facebook rege Gebrauch macht. Hadoop ist ein Open Source System zur Analyse von sehr vielen Daten. Facebook braucht es für statistische Auswertungen seiner gigantischen Daten. Hive ist eine Facebook eigen Entwicklung um mit standard SQL Queries auf Hadoop zugreifen zu können, was den Gebrauch vor allem für nicht Programmierer einfacher gestaltet. Beide Systeme sind inzwischen OPen Source und beim Apache Projekt angesiedelt. Bei Facebook kommen verschiedenste Programmiersprachen zum Einsatz. Das Front End ist in PHP geschrieben, Erlang wird für das Chat System benutzt, und Java sowie C++ kommen anderorts auch zum Einsatz. Thrift ist ein von Facebook entwickeltes Framework welches den einzelnen Sprachen ermöglicht miteinander zu kommunizieren. Dadurch ist es für Facbook viel einfacher die verschiedensten Sprachen zu managen und zu verbinden. Thrift ist von Facebook als Open Source freigegeben und wird kontinuierlich um weitere Sprachen ergänzt. Varnish ist ein HTTP Accelerator welcher als Load Balancer und Caching Dienst fungiert. Durch den Einsatz kann die Performance des Front Ends massiv gesteigert werden. Facebook benutzt Varnish für die Auslieferung von Fotos und Profilfotos. Jeden Tag werden Milliarden von Requests abgearbeitet. Wie fast alle bei Facebook benutzte Software, ist Varnish Oopen Source. Software welche Facbook hilft die Last zu verarbeiten: Die bisher genannten Systeme sind nur ein Teil der bei Facebook zum Einsatz kommenden Produkte. Der Betrieb einer Seite von diesem Ausmass ist sehr komplex, daher hat Facebook noch die eine oder andere Möglichkeit zur Optimierung. So wird zum Beispiel ein System Names Gatekeeper eingesetzt, welches es möglich macht verschiedenen Code für verschiedene User auszuliefern. Dadurch können Seiten Optimierungen an bestimmte User Gruppen verteilt werden bevor die ganze Seite geupdatet wird. Das vereinfacht das Testing neuer Komponenten. Überwachung der Systeme Facebook überwacht jede einzelne Komponente der Seite sehr genau. So wird auch der PHP Code ständig überwacht um Performance Problemen vorbeugen zu können. Das geschieht zum Beispiel mit dem Tool XHProof. Abschaltung einzelner Funktionen Sobald Facebook Performance Probleme feststellt, werden gezielt gewisse Funktionen der Seite deaktiviert. Das kann z.B. das Chat System oder aber auch der Photo Upload sein. Dadurch soll die Gesamtperformance der Seite sichergestellt und ein Totalabsturz verhindert werden. Server Facebook basiert, wie die meisten großen Sites, auf einem CDN um statische Daten schnell ausliefern zu können. Daneben betreibt Facebook riesige Serverfarmen, wie z.B. jene in Oregon. Facebook und Open Source Facebook versucht wo immer möglich Open Source Software einzusetzen. So werden hauptsächlich Open Source Produkte wie Linux, MySQL, Apache, Memcache und viele andere mehr, eingesetzt. Eigene Produkte wie Cassandra, HipHop und Thift and Scribe werden zu OPen Source gemacht. |
|
Du hast bereits für diesen
Post abgestimmt...
;-)
https://t.ress.at/4t2S5/
Ähnliche Themen:
© by Ress Design Group, 2001 - 2024