„A Day in the Life of Facebook Operations“ bezeichnete Tom Cook, System Engineer von Facebook seinen Vortrag auf der „Velocity 2010“ Er liefert dabei interessante Einblicke in den Aufbau der Server und Services, auf Open-Source Basis.
Da Facebook mittlerweile mehrere 10.000 Server hinter einem gigantischen Load Balancer System im Einsatz hat, ist es eine große Herausforderung diese alle zu Verwalten und auf den aktuellen Stand (Patches, Security Fixes, …) zu halten. Tom Cook erläutert in seinem ca. 40 minütigen Vortrag den grundlegenden Aufbau von Facebook. Hier einige wichtige Fakten und Komponenten aus der Sicht eines Systemadministrators.
Betriebsystem:
Facebook setzt ausschließlich auf Linux. Verwendet wird eine CentOS 5 Version mit einem modifizierten 2.6er Kernel
Datenbank:
Als Datenbank wird MySQL verwendet.
Caching:
HipHop for Php
ist ein SourceCode Transformer, welcher PHP in einen performanceoptimierten und kompilierten C++ Code verwandelt. Enwickelt wird das System von 3 Facebook Engineers auf Open-Source Basis. Durch die Einführung von HipHop wurde die WebServerlast von Facebook um beachtliche 50% Reduziert.
Memcached
Ist ein Open Source Cache-Server der häufig verwendete Abfragen (insbesondere SELECT Statements) vom Datenbankserver im Arbeitsspeicher abspeichert und dadurch Festplattenzugriffe bzw. Datenkbankzugriffe stark reduziert. Memcached hält für Facebook derzeit über 300+ TB live Daten im RAM.
Configuration Management:
CFengine 2.x.x
ist eine zentrale Configurations Management Software um viele (mehrere 10.000) Systeme auf den gleichen Softwarestand zu bringen und zu aktualisieren. Dieser Vorgang wird alle 15 Minuten für ALLE Server ausgeführt. So können zentral über 100 Policies welche einige 1000 Regeln beinhalten innerhalb von 30 Sekunden bei allen Servern auf den neuesten Stand gebracht werden.
Monitoring:
Hierbei setzt man ebenfalls auf bekanntere System wie Ganglia, Nagios und ODS (Operational Data Store),
WebPush:
Das Verteilen von neuen Inhalten, Features und Patches für Facebook.com wird über einen internen BitTorrent Server realisiert. Es dauert so ungefähr eine Minute bis der neue Code für Facebook.com auf mehreren 10.000 Servern verfügbar ist. Folgende Zyklen werden dabei verwendet
1x pro Woche für neue Features
1x pro Tag für Code Änderungen an der Hauptseite
mehrere male am Tag für Bugfixes und Patches
Kompletter Vortrag von Tom Cook:
Sehr interessant 🙂 Facebook müsste eigentlich so langsam Google überholen, zumindest was die Rechenzentren angeht. Man kann sich gar nicht vorstellen, wie viel dahinter steckt. Wenn man sich Twitter anschaut, dann hat man meist das Gefühl, dass dort nur ein Server steht. Es sind dort aber bestimmt auch mehrere Tausend Rechner, die für den Betrieb sorgen…
Naja Google wird man da noch lange nicht erreichen, bzw. nie erreichen
Google hat ja alleine in den USA 19 Rechenzentren, 12 in Europa, eines in Russland und Süd-Amerika und drei weitere in Asien.
Danke für die Infos. Schließe mich da an, Facebook wird nicht das Ausmaß an Rechenzentren von Google erreichen, da die komplexen Algorithmen die Google verwendetmeines Erachtens, durch die vorhandende Komplexität, einiges mehr an “ Arbeitsplatz“ benötigen.
ich hab mich bisher immer geweigert mich dort anzumelden. Beim Inhalt der AGBs hab ich Angst, dass die bestimmen könnten welchen Nagellack ich auf die Zehen pinsele 😉
Also Facebook ist ja mittlerweile eine „Macht“. Neben den Userzahlen sprechen auch die Daten in Deinem Artikel eine genaue Sprache. Ich hab mich zwar auch anfangs geweigert mich bei FB zu registrieren aber mittlerweile bin ich auch dabei … 😉
Ein Top Artikel ist das auf jeden Fall. Sehe ich mir immer wieder gerne an, da man viel lernen kann
Roland