Archive for Juni, 2010

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:

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

Montag, Juni 28th, 2010 Linux, Virtualization 6 Kommentare

Ohne Worte: iVuvu – Now you love them

(Quelle: Stephan A. aus B.)

Tags: , , ,

Donnerstag, Juni 17th, 2010 Apple, Hardware 5 Kommentare

Gigantisches USB Spaghetti Kabel verschlingt Australien

Eine wirklich tolle Aufhnahme von Google Maps. Ein gigantisches USB Spaghetti Kabel im Südosten Australiens oder ein schlechter Scherz?

Auf den Ersten Blick sehen die Aufnahmen einem USB Kabel wirklich verblüffend ähnlich. Tatsächlich handelt es sich aber um den Bau einer Anlage für Windkraftwerke zur Energiegewinnung. Hier ist der Google Maps Link zur eigenen Überzeugung

Die Kabel sind die Zufahrtswege zu den einzelnen Windrädern…

…und die Stecker werden durch das Fundament der Winräder dargestellt.

(Quelle: gizmodo)

Tags: , ,

Donnerstag, Juni 17th, 2010 Hardware 1 Kommentar

Ohne Worte: Cloud Computing einmal anders

Tags: , , ,

Donnerstag, Juni 10th, 2010 Allgemein, Hardware, Virtualization 2 Kommentare

Editor für Crontab – Cronjobs in Debian ändern

terminal-icon

Wenn man mit verschiedenen Linux Distributionen arbeitet, merkt man sehr schnell das jedes System seine gewissen Eigenheiten hat. So werden auch unterschiedlichste Editoren zum Bearbeiten der Cronjobs (crontab -e) verwendet. Der Editor lässt sich aber ganz einfach ändern.

Hierzu muss lediglich die Umgebungsvariable “EDITOR” angepasst werden

export EDITOR=/usr/bin/vi

Damit diese Änderung dauerhaft und auch nach einem Reboot wirksam ist, kann die oben genannte Codezeile global in der Datei /etc/profile oder auf Userebene in der entsprechenden ~/.bashrc verwendet werden. Dann kann bei einem erneuten Erstellen eines Cronjobs kein Problem mehr mit dem falschen Editor auftreten.

Es stehen natürlich neben dem vi auch noch viele andere Editoren zur Verfügung, alle zu nennen wäre jetzt ein bisschen viel, darum hier die wichtigsten  (Die Pfade beziehen sich auf Debian und können je nach Distribution abweichen)

export EDITOR=/usr/bin/vim

export EDITOR=/usr/bin/nano

export EDITOR=/usr/bin/pico

export EDITOR=/usr/bin/editor

export EDITOR=/usr/bin/joe

Alternativ zur altbewährten Methode kann mit folgendem Befehl auch ein Editor aus einer Liste ausgewählt werden. (Danke an Toberkel für den Tipp)

update-alternatives --config editor

Tags: , , , , , , , ,

Montag, Juni 7th, 2010 Linux 3 Kommentare
Hosting-Lösungen (VPS, Dedicated Server, Webspace und Colocation) von Contabo

Subscribe to our mailing list

* indicates required Email Adresse *
Werbung schalten

*=Affiliatelink

Blogverzeichnis - Blog Verzeichnis bloggerei.de