facebook LinkedIN LinkedIN - follow

Jaký software potřebuje Facebook

aby zvládl půl miliardy uživatelů?

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 očekává v červenci svého pětsetmiliontého uživatele, zaměstnává asi 1400 pracovníků a obrat společnosti bude letos okolo 1 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á.

Hlavní výzvou je škálovatelnost

To bezesporu, když uvážíme, že Facebook servíruje svým uživatelům 570 miliard stránek měsíčně. Facebook 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 3 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.

 

Front-end běží na LAMP

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.

 

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 je  nutností 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.

 

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.

Zdroj: Blog společnosti ACTIVE 24 www.hosting.cz
 


 
  

- PR -

Signys Logistics: Řízení skladů přes mobilní aplikaci efektivně a online!

Moderní logistika vyžaduje efektivní a spolehlivé řešení pro řízení skladů a sledování zásob. S aplikací Signys Logistics a modu­lem řízených skladů WMS Signys máte na dosah ruky nástroje, které vám umožní zvýšit efektivitu vašich logistických operací a dosáhnout tak co nejvíce optimálního využití zdrojů.

  

- PR -

Unicorn Systems podpořil Pluxee v přechodu do cloudu

Softwarová firma Unicorn Systems pomohla společnosti Pluxee (dříve Sodexo Benefity), která se specializuje na oblast zaměstnaneckých benefitů, s přechodem do cloudu. Důvodem této náročné digitální trans­for­mace byla snaha modernizovat IT infrastrukturu společnosti a zvýšit efektivitu jejího podnikání.