Facebook – Ein Blick hinter die Kulissen und in das komplexe System

“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:

Ähnliche Artikel:

  1. In eigener Sache: Sysadmin’s Life nun auch auf Facebook
  2. MySQL – ERROR 1045: Access denied for user ‘debian-sys-maint’@'localhost’
  3. Icinga (Nagios Fork) 0.8.0 beta release + Demo System Online
  4. Links of the week #13
  5. Icinga – Open Source Monitoring – Installation unter Debian 5 (Lenny) mit IDOUtils und MySQL Datenbank

Tags: , , , , , , , , , ,

Montag, Juni 28th, 2010 Linux, Virtualization

4 Kommentare zum Thema Facebook – Ein Blick hinter die Kulissen und in das komplexe System

  • 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…

    • Patrick sagt:

      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.

  • Tom sagt:

    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.

  • Chaosweib sagt:

    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 ;-)

  • Leave a Reply

    Sysadmin's Life on Facebook
    steve jobssteve jobs