reklama

Na jakém softwaru běží Facebook

Facebook je webový moloch, který potřebuje několik tisíc serverů po celém světě. Jaký software stojí na pozadí, aby to všechno fungovalo?

Facebook byla původně uzavřená univerzitní síť, kterou založil Mark Zuckerberg na univerzitě v Harvardu. Letos mu bylo 26 let a stále stojí v čele dominantní sociální sítě současnosti. Nynější šéf Facebooku navíc při jednom z nedávných rozhovorů prozradil několik zajímavých faktů. Facebook nyní očekává svého pětsetmiliontého uživatele, zaměstnává asi 1400 pracovníků a obrat společnosti bude letos okolo jedné miliardy dolarů. Facebook už není žádný drobeček, kterým býval kdysi na Harvardu. K hostování webové služby takového rozsahu je třeba desítek tisíc fyzických serverů a software, který tohle vše uhlídá.

LAMP na první pohled

Facebook servíruje svým uživatelům 570 miliard stránek měsíčně. Je také největší fotogalerií na světě, počet fotek v rámci této sociální sítě je větší než celkový součet fotek všech ostatních fotogalerií na webu včetně serveru flickr.com a ostatních. Každý měsíc nahrají uživatelé na Facebook tři miliardy nových fotek. Facebook posílá uživatelům každou vteřinu 1,2 milionu fotek k prohlížení. Celkem 25 miliard jednotek obsahu (status zprávy, komentáře a další) je sdíleno každý měsíc.

Z pohledu uživatele Facebooku jde stále o tradiční LAMP web, tedy kombinaci operačního systému Linux, webového serveru Apache, databáze MySQL a skriptování PHP. První pohled ale může klamat. Inženýři Facebooku totiž vytvořili vlastní kompilátor PHP, který převádí zdrojový kód do strojového kódu, což podstatně zvyšuje výkon celé aplikace. Stejně tak byl operační systém Linux optimalizován pro specifické potřeby Facebooku. Populární databáze MySQL je využívána primárně pro ukládání klíčů a hodnot (key-value), složitější operace nad uloženými daty, jako například SQL operace typu JOIN a podobné pokročilejší dotazy, jsou prováděny na webových serverech, kde se lépe optimalizuje jejich výkon.

Klepněte pro větší obrázek
Facebook musí obsloužit několik set miliónů uživatelů a třeba také stránku Živě.cz

Jak zvládnout masy? Memcached

Memcached si získává po celém světě obrovskou popularitu hlavně díky tomu, jak dokáže zrychlit běh extrémně navštěvovaných webových služeb. De facto jde o distribuovaný pamětní systém, který Facebook využívá jako tzv. cache vrstvu mezi webovými servery a databázemi MySQL. Data jsou tak v mnoha případech servírována z memcached serverů, nemusí se tak načítat z databáze, což by celou operaci značně zpomalilo. Tento postup jenutností hlavně u služeb, které se dnes pyšní módním přívlastkem „real-time“. Stejně jako u ostatních programů i u Memcached provedl Facebook za poslední léta řadu optimalizací. V současné době Facebook využívá tisíce memcached serverů s desítkami terabajtů uložených („kešovaných“) dat v každém okamžiku. Pravděpodobně jde o největší instalaci softwaru Memcached na světě.

HipHop pro PHP

PHP jako skriptovací jazyk rychlostí příliš nevyniká, což byl pro Facebook problém. Byl vyčleněn zvláštní tým inženýrů, na začátku pouze trojčlenný, s úkolem vytvořit kompilátor umožňující přeložit PHP kód do kódu, který je možné snadněji optimalizovat. Za 18 měsíců byl na světě HipHop, kompilátor PHP do C++. To umožnilo Facebooku citelně zefektivnit výkon webových serverů oproti původnímu neoptimalizovanému skriptování PHP.

Každý svému účelu

Pro různé oblasti struktury Facebook jsou pak nasazeny odpovídající technologie.

Haystack

Haystack je objektový sklad s vysokou výkonností, který pro Facebook obstarává vše potřebné okolo fotek a jejich servírování uživatelům. Tento „sklad“ má o práci vystaráno. Facebook totiž hostuje více než 20 miliard fotek, každou ukládá ve 4 různých rozlišeních, což dává dohromady 80 miliard obrázků. Prvním úkolem Haystacku je fotky uchovávat. Druhým neméně podstatným úkolem je fotky předávat uživatelům k prohlížení, kdy je zásadní dostatečný výkon celého systému. Jak již bylo zmíněno, návštěvníci si vyžádají každou vteřinu 1,2 milionu fotek. Systém byl opět několikrát optimalizován, aby podával lepší výkon. Hlavním trikem přitom bylo spojování více menších souborů do jednoho velkého, který byl pak odesílán či přijímán Haystackem. Oproti standardnímu řešení se tak podařilo snížit počet nutných input/output operací o 90 procent.

BigPipe

BigPipe je systém pro paralelní generování webových stránek, který Facebook vytvořil pro vlastní potřebu. Jako u jiných paralelních systémů i zde je výhodou jednak rychlost zpracování, kdy jednotlivé části stránky jsou generovány nezávisle na sobě, a také menší chybovost, kdy při výpadku jedné části stránky jsou vygenerovány zbývající části webové stránky. Například chat je generován zvlášť, stejně tak Novinky, které tvoří ústřední část úvodní stránky Facebooku.

Cassandra

Cassandra je ve službách mnohých webových služeb současnosti. Kromě Facebooku ji používá například server Digg.com. Jde o distribuovaný úložný systém a jeden z výsledků NoSQL hnutí. Facebook používá tuto technologii pro prohledávání poštovních zpráv.

Hadoop a Hive

Hadoop je tzv. map-reduce implementace, která umožňuje Facebooku provádět výpočtové operace s obrovskými objemy dat uloženými na clusterové infrastruktuře. Facebook využívá Hadoop pro analýzu dat, kterých, jak všichni tušíme, má skutečně obrovské množství. Hive je pak technologie, s jejíž pomocí můžeme pokládat SQL dotazy v prostředí Hadoopu. Obě uvedené technologie využívají například Yahoo nebo Twitter.

Gatekeeper

Facebook také vyvinul zajímavý systém Gatekeeper. Ten zajišťuje testování nových funkcí sociální sítě, když dané skupině uživatelů ukazuje nové funkce, zatímco většina uživatelů vidí původní obsah. Podle zpětné vazby tak může Facebook dále upravovat nové funkce před ostrým spuštěním všem uživatelům. Stejně tak je možné některé funkce Facebooku dočasně vyřadit z provozu v případě, že serverům docházejí síly a vytížení celého systému je nad únosnou mezí.

Jak dál?

Kam bude směřovat dále Facebook? To je otázka pro samotný Facebook a námět na další článek. Jasné je jedno. Se 100 miliony nových uživatelů každý půlrok nemůže Facebook ustrnout v inovování a dalších optimalizacích systému. Naopak musí hledat nové cesty a technologie, jak umožnit bezproblémový růst této sociální sítě i do budoucna.

 

Text byl se svolením převzat z blogu Hosting.cz společnosti Active 24.

Témata článku: Technologie, Sociální sítě, Facebook

16 komentářů

Nejnovější komentáře

  • Mr.Anonymni 6. 11. 2010 21:20:46
  • Mr.Anonymni 6. 11. 2010 21:20:27
  • Mr.Anonymni 6. 11. 2010 21:20:12
reklama
Určitě si přečtěte

UPC překopli páteřní kabel. V Brně i druhý den nejede internet ani kabelovka

UPC překopli páteřní kabel. V Brně i druhý den nejede internet ani kabelovka

** V Brně byl velký výpadek služeb UPC ** Důvodem je překopnutý páteřní kabel ** V některých lokalitách služby stále nefungují

5.  12.  2016 | Jakub Čížek | 102

17 expertek Microsoftu předpovědělo rok 2027. Splní se alespoň něco?

17 expertek Microsoftu předpovědělo rok 2027. Splní se alespoň něco?

** Zmizí klasické vyhledávače ** Budeme programovat buňky ** Kvantové počítače překonají šifry

6.  12.  2016 | Jakub Čížek | 36

11 tipů na dobrý stolní počítač: od základu po herní mašiny

11 tipů na dobrý stolní počítač: od základu po herní mašiny

** Postavte si stolní počítač! Máme pro vás 11 vzorových sestav s rozpisem komponent ** Většina tipů cílí na hráče, věnujeme se ale i základnímu PC a počítačům na střih videa ** Nadělte si nový počítač třeba pod stromeček

5.  12.  2016 | Adam Kahánek | 74


reklama