Facebook byla původně uzavřená univerzitní síť, kterou založil Mark Zuckerberg na univerzitě v Harvardu. Hostovat Facebook tehdy nebylo nijak zvlášť náročné. Veškerou práci obhospodařoval jediný server na kolejích. Nebylo možné nahrávat žádné fotky ani videa. Od té doby se však situace značně změnila.
Nedávno byl na serveru Center for Networked Systems publikován záznam přednášky Jeffa Rothschilda, který je viceprezidentem pro technologie ve Facebooku. Přednáška s názvem „High Performance at Massive Scale: Lessons Learned at Facebook" přinesla mnoho zajímavých faktů, které jsou především ze středoevropské perspektivy těžko představitelné. Posuďte sami.
Jaký nápor musí servery Facebooku vydržet?
Velký Facebook je v globálním měřítku na druhém místě, pokud se budeme bavit o webech z pohledu času, který uživatelé stráví na jeho stránkách. Každý měsíc uživatelé shlédnou 200 miliard stránek na www.facebook.com.
Více než 15 000 serverů využívá Facebook Connect, který propojuje Facebook s externími webovými stránkami. Co se týká růstu uživatelské základny Facebooku, tak v roce 2004 zaznamenala sociální síť exponenciální růst se 2 miliony uživatelů. Dnes má růstová křivka také exponenciální průběh, jen počet uživatelů je zcela jiné číslo: 350 milionů.
Uživatelé Facebooku rádi sdílejí fotky
Z Facebooku se velice rychle stala největší fotobanka na světě. Uživatelé dosud nahráli přibližně 20 miliard fotek, které jsou na serverech Facebooku uloženy ve 4 různých rozlišeních. Každý měsíc nahrají uživatelé 2 až 3 miliardy nových fotek.
Takové množství fotek vyžaduje velice dobře škálovatelnou infrastrukturu, která je schopna uspokojit ty, kteří si chtějí fotky prohlédnout. Každou sekundu si uživatelé Facebooku vyžádají 600 tisíc fotek k prohlížení. Facebook pro tento účel vyvinul vlastní řešení s názvem Haystack. Tento systém „servíruje" fotky a potřebuje ke své činnosti relativně velice málo input/output operací. Oproti standardnímu řešení se podařilo inženýrům ve Facebooku snížit počet nutných input/output operací o 90 procent za pomoci spojování více menších souborů do jednoho velkého.
Výpočetní infrastruktura Facebooku obsahuje mnoho vrstev
Prezentační vrstva, tedy to, co všichni uživatelé Facebooku vidí ve svých prohlížečích, je založena na skriptování PHP z důvodu „simple to learn, simple to write, simple to read". Výhodu jednoduchosti jazyka PHP využívají jednak sami pracovníci Facebooku stejně jako externí vývojáři, kteří vytvářejí aplikace pro otevřenou platformu Facebooku. Neblahým důsledkem využití skriptování PHP je vysoké vytížení procesorů a operační paměti serverů.
Tzv. back-end je napsán v jazyce C++, Facebook si pro tento účel vytvořil vlastní framework Thrift, který usnadňuje vytváření nových služeb. Zajímavé je také, jak probíhá na serverech Facebooku logování. V určitém stádiu přestalo fungovat tradiční logování, proto bylo nutné najít nové řešení. To se jmenuje Scribe a každý den zpracuje 25 TB nových zpráv.
Pro uložení dat bylo využito databáze MySQL, konkrétně jde o rozsáhlý cluster tisíců MySQL serverů. Většina dat je ale zároveň uložena v paměti memcached serverů pro rychlejší přístup. Hlavním důvodem je vysoká provázanost všech uložených informací. Původní zátěž serverů se pohybovala okolo 15 až 20 tisíc požadavků za vteřinu na každý stroj. Dnes se zátěž zvýšila na 250 tisíc požadavků za vteřinu na každý stroj.
Za hosting ročně více než 20 milionů dolarů
Facebook si pronajímá několik obřích datových center. Dvě z nich jsou umístěna v Silicon Valley v Kalifornii, Facebook za ně platí nájem ve výši 11 milionů dolarů ročně. Další datové centrum pak využívá Facebook ve Virginii na východě Spojených států. Pronájem tohoto datového centra vyjde levněji, na přibližně 5 milionů dolarů za rok.
Další dvě menší datová centra využívá Facebook v Kalifornii a jedno v Evropě. Dohromady se tak suma za pronájem datových center může vyšplhat na 20 až 25 milionů dolarů ročně. K tomu je třeba připočíst náklady na hardware. Ty se měly podle odhadů pohybovat v loňském roce okolo 60 milionů dolarů.
Budoucnost je zelená - energeticky úsporná
Nedávno Facebook oznámil, že plánuje vybudovat vlastní datové centrum v americkém státě Oregon. Datové centrum má patřit mezi energeticky nejúspornější datová centra na světě. Volba padla na Oregon z mnoha důvodů. Mezi hlavní výhody lokality v Oregonu patří vhodné klima pro ekologické chlazení serverů, volné pozemky a dostupné zdroje obnovitelné energie.
Datové centrum v Oregonu bude ke chlazení serverů využívat odpařovací systém namísto tradičních a energeticky náročných vodních chladičů. Chladit se tak nebude primárně vodou, ale vzduchem zvenčí. Navíc teplo, které vzniká jako vedlejší produkt při běhu serverů, bude využito pro vytápění kanceláří.
Samostatnou kapitolou je pak způsob, jakým hodlá Facebook ušetřit na výdajích za elektřinu. V datovém centru nebudou obvyklé záložní zdroje elektrické energie (UPS). Každý server bude totiž osazen 12-voltovou baterií, která se přidá ke zdroji a bude sloužit jako náhrada napájení pro případ, že se přeruší dodávka elektrické energie do datového centra. Stručně se dá říct, že se tímto způsobem dramaticky zjednodušuje cesta elektřiny k serveru. Vyšší efektivita přenosu pak znamená pro Facebook citelně nižší výdaje za elektřinu.
Až tedy budete příště aktualizovat svůj profil na Facebooku nebo nahrávat fotku svého miláčka, dvounohého či čtyřnohého, do fotoalba na Facebooku, vězte, že někde za oceánem se technika řádně potí.