Harry James
0
3464
264
Sociální síť je umění spojení s těmi, kteří sdílejí společné zájmy. Vaše “˜network 'je komunita, která pomáhá udržovat vás ve spojení s ostatními a nabízí mnoho výhod. Vytváření sítí prostřednictvím sociálních médií změnilo způsob, jakým používáme internet, a je v čele toho, čemu nyní říkáme Web 2.0.
Facebook je sociální síť. Lidé byli “facebooking”?? navzájem zhruba 6 let, což z Facebooku činí nejpoužívanější sociální síť s více než 350 miliony uživatelů po celém světě. Jak ale funguje Facebook?
V tomto článku se budu zabývat vnitřními činnostmi Facebooku, které se zabývám jeho architekturou a frontend / backend infrastrukturou””matice a šrouby, které drží Facebook pohromadě.
Jak funguje Facebook?””Přední konec
Facebook používá celou řadu služeb, nástrojů a programovacích jazyků k vytvoření své základní infrastruktury. Na jejich frontě běží jejich servery LAMP (Linux, Apache, MySQL a PHP) stack s Memcache. Nejste odborník na informatiku? Pojďme se podívat přesně na to, co to znamená.
Linux a Apache
Tato část je docela samozřejmá. Linux je unixové jádro počítačového operačního systému. Je to open source, velmi přizpůsobitelné a dobré pro bezpečnost. Facebook provozuje operační systém Linux na serverech Apache HTTP. Apache je také zdarma a je nejoblíbenějším otevřeným webovým serverem, který se používá.
MySQL
Pro databázi Facebook využívá MySQL kvůli jeho rychlosti a spolehlivosti. MySQL se používá primárně jako úložiště klíč-hodnota, protože data jsou náhodně distribuována mezi velkou sadu logických instancí. Tyto logické instance jsou rozloženy napříč fyzickými uzly a vyvažování zátěže se provádí na úrovni fyzických uzlů.
Pokud jde o přizpůsobení, Facebook vyvinul vlastní schéma dělení, ve kterém je ke všem datům přiřazen globální ID. Mají také vlastní schéma archivace, které je založeno na frekvenci a aktuálnosti dat na základě jednotlivých uživatelů. Většina dat je distribuována náhodně.
PHP
Facebook používá PHP, protože je to dobrý webový programovací jazyk s rozsáhlou podporou a aktivní komunitou vývojářů a je vhodný pro rychlou iteraci. PHP je dynamicky psaný / interpretovaný skriptovací jazyk.
Memcache
Memcache je systém pro ukládání do mezipaměti, který se používá k urychlení dynamických databází řízených webů (jako je Facebook) ukládáním dat a objektů do paměti RAM, čímž se zkracuje doba čtení. Memcache je primární forma ukládání do mezipaměti Facebooku a pomáhá zmírnit zatížení databáze.
Díky systému ukládání do mezipaměti umožňuje Facebook, aby byl stejně rychlý jako stahování vašich dat. Pokud nemusí jít do databáze, načte vaše data pouze z mezipaměti na základě vašeho ID uživatele.
Nevýhody použití LAMP
Facebook si uvědomil, že používání zásobníku LAMP má své nevýhody. Zejména PHP není nutně optimalizováno pro velké webové stránky, a proto je obtížné jej škálovat. Není to také nejrychlejší prováděcí jazyk a rámec rozšíření je obtížné používat.
Mike Schroepfer, viceprezident pro strojírenství na Facebooku, nedávno provedl rozhovor v EmTech @ MIT. “Změna měřítka libovolného webu je výzvou,” Řekl Schroepfer, “ale škálování sociální sítě má jedinečné výzvy.”
Pokračoval tím, že na rozdíl od jiných webů nemůžete jen přidat další servery k vyřešení problému kvůli Facebooku “obrovský propojený dataset.” Nová připojení jsou vytvářena po celou dobu kvůli činnosti uživatele.
Facebook rostl tak rychle, že se často potýkají s problémy týkajícími se databázových dotazů, ukládání do mezipaměti a ukládání dat. Jejich databáze je obrovská a do značné míry složitá. Za tímto účelem Facebook spustil mnoho open source projektů a backend služeb.
Jak funguje Facebook?””Zadní konec
Backendové služby Facebooku jsou psány v různých programovacích jazycích včetně C ++, Java, Python a Erlang. Jejich filosofie pro vytváření služeb je následující:
1. Vytvořte službu V případě potřeby
2. Vytvořte rámec / sadu nástrojů pro snazší vytváření služeb
3. Pro úlohu použijte správný programovací jazyk
Seznam všech vývojových trendů na Facebooku najdete zde. Budu diskutovat o několika základních nástrojích, které Facebook vyvinul.
Thrift (protokol)
Thrift je odlehčený rámec pro vzdálené volání procedur pro škálovatelný vývoj jazykových služeb. Thrift podporuje C ++, PHP, Python, Perl, Java, Ruby, Erlang a další. Je to rychlé, šetří čas na vývoj a poskytuje dělbu práce na vysoce výkonných serverech a aplikacích.
Scribe (log server)
Scribe je server pro agregaci dat protokolu přenášených v reálném čase z mnoha jiných serverů. Je to škálovatelný rámec užitečný pro protokolování široké škály dat. Je postaven na vrcholu Thrift.
Cassandra (databáze)
Cassandra je systém správy databází navržený pro zpracování velkého množství dat rozložených na mnoha serverech. Napomáhá funkci Inbox Search na Facebooku a poskytuje strukturované úložiště klíč-hodnota s případnou konzistencí.
HipHop pro PHP
HipHop pro PHP je transformátor zdrojového kódu pro skriptový kód PHP a byl vytvořen za účelem úspory serverových prostředků. HipHop transformuje zdrojový kód PHP do optimalizovaného C ++. Poté to pomocí g ++ zkompiluje do strojového kódu.
Závěr
Stručně řečeno, to je Facebook. Tento článek by mohl být snadno o 37 stran delší, kdybych měl jít do podrobností, ale odpovědět na otázku “Jak funguje Facebook?”?? Myslím, že to bude stačit. Pokud se podíváte kolem všech funkcí a inovací, hlavní myšlenka Facebooku je opravdu velmi základní””udržování lidí v kontaktu. Facebook si uvědomuje sílu sociálních sítí a neustále inovuje, aby jejich služby byly co nejlepší v podnikání.
Považujete tento článek za užitečný? Nechte své myšlenky, komentáře a nápady níže!