Reklama
Sociálne siete sú umením spojenia s tými, ktorí majú spoločné záujmy. Vaša „sieť“ je komunita, ktorá pomáha udržiavať vás v spojení s ostatnými a ponúka mnoho výhod. Vytváranie sietí prostredníctvom sociálnych sietí prinieslo revolúciu v spôsobe používania internetu a je v popredí toho, čomu sa dnes hovorí Web 2.0.
Facebook je sociálne siete. Ľudia sa „facebooking“ navzájom vyrábajú asi 6 rokov Facebook najpoužívanejšia sociálna sieť s viac ako 350 miliónmi používateľov na celom svete. Ako ale funguje Facebook?
V tomto článku sa budem venovať vnútorným činnostiam Facebooku, ktoré sa budú zaoberať jeho architektúra a infraštruktúra frontend / backend ““ matice a skrutky, ktoré držia Facebook pri sebe.
Ako funguje Facebook? “„ Klientske rozhranie
Facebook používa rôzne služby, nástroje a programovacie jazyky na vytvorenie svojej základnej infraštruktúry. Na klientskom rozhraní ich servery spúšťajú zásobník LAMP (Linux, Apache, MySQL a PHP) s programom Memcache. Nie ste odborník na informatiku? Pozrime sa presne na to, čo to znamená.
Linux a Apache
Táto časť je celkom samozrejmá. linux je jadro počítačového operačného systému podobné Unixu. Je to otvorený zdroj, veľmi prispôsobiteľný a vhodný pre bezpečnosť. Facebook prevádzkuje operačný systém Linux na serveroch Apache HTTP. apache je tiež zadarmo a je najpopulárnejším otvoreným webovým serverom, ktorý sa používa.
MySQL
Facebook používa databázu MySQL pre svoju rýchlosť a spoľahlivosť. MySQL sa používa predovšetkým ako úložisko kľúč - hodnota, pretože údaje sú náhodne distribuované medzi veľké množstvo logických inštancií. Tieto logické inštancie sú rozložené po fyzických uzloch a vyrovnávanie záťaže sa vykonáva na úrovni fyzických uzlov.
Pokiaľ ide o prispôsobenia, Facebook vyvinul vlastnú schému rozdelenia oblastí, v ktorej je ku všetkým údajom priradený globálny identifikátor. Majú tiež vlastnú schému archivácie, ktorá je založená na frekvencii a aktuálnosti údajov na základe jednotlivých používateľov. Väčšina údajov je distribuovaná náhodne.
PHP
Facebook používa PHP, pretože je to dobrý webový programovací jazyk s rozsiahlou podporou a aktívnou komunitou vývojárov a je vhodný pre rýchlu iteráciu. PHP je dynamicky napísaný / interpretovaný skriptovací jazyk.
Memcache
Memcache je systém ukladania do pamäte cache, ktorý sa používa na zrýchlenie dynamických databázových webových stránok (napríklad Facebook) ukladaním údajov a objektov do pamäte cache v pamäti RAM, čím sa skracuje čas čítania. Memcache je primárna forma ukladania do vyrovnávacej pamäte Facebooku a pomáha zmierňovať zaťaženie databázy.
Vďaka systému ukladania do vyrovnávacej pamäte umožňuje Facebooku byť taký rýchly, ako vyvoláva vaše údaje. Ak nemusí ísť do databázy, iba načíta vaše údaje z vyrovnávacej pamäte na základe vášho užívateľského mena.
Nevýhody použitia LAMP
Facebook si uvedomil, že existujú nevýhody použitia zásobníka LAMP. Najmä PHP nie je nevyhnutne optimalizované pre veľké webové stránky, a preto je ťažké ho škálovať. Nie je to ani najrýchlejší vykonávací jazyk a rámec rozšírenia je ťažké používať.
Mike Schroepfer, viceprezident inžinierstva Facebooku, nedávno urobil rozhovor na EMTECH @ MIT čo sa týka tohto. „Prispôsobenie akejkoľvek webovej stránky je výzvou,“ povedal Schroepfer, „ale škálovanie sociálnej siete má jedinečné výzvy.“
Ďalej uviedol, že na rozdiel od iných webových stránok nemôžete na vyriešenie problému pridať viac serverov „obrovského vzájomne prepojeného súboru údajov“ na Facebooku. Nové pripojenia sa vytvárajú vždy kvôli aktivite používateľa.
Facebook sa rozrástol tak rýchlo, že sa často stretávajú s problémami týkajúcimi sa databázových dopytov, ukladania do vyrovnávacej pamäte a ukladania údajov. Ich databáza je obrovská a do značnej miery zložité. Za týmto účelom Facebook začal množstvo open source projektov a backend služieb.
Ako funguje Facebook? “„ Koniec
Backendové služby Facebooku sú napísané v rôznych programovacích jazykoch vrátane C ++, Java, Python a Erlang. Ich filozofia pri vytváraní služieb je nasledovná:
1. Vytvorte službu V prípade potreby
2. Vytvorte rámec / sadu nástrojov na ľahšiu tvorbu služieb
3. Pre úlohu použite správny programovací jazyk
Zoznam všetkých vývojových trendov na Facebooku nájdete tu. Prediskutujem niekoľko základných nástrojov, ktoré Facebook vyvinul.
Thrift (protokol)
sporivosť je odľahčený rámec pre volanie vzdialených procedúr pre škálovateľný vývoj viacerých jazykov. Thrift podporuje C ++, PHP, Python, Perl, Java, Ruby, Erlang a ďalšie. Je rýchly, šetrí čas na vývoj a poskytuje rozdelenie práce na vysokovýkonných serveroch a aplikáciách.
Scribe (log server)
pisár je server na agregáciu údajov denníka vysielaných v reálnom čase z mnohých ďalších serverov. Je to škálovateľný rámec užitočný na zaznamenávanie širokého spektra údajov. Je postavený na vrchu Thrift.
Cassandra (databáza)
Cassandra je systém správy databáz určený na spracovanie veľkého množstva údajov rozložených na mnohých serveroch. Poháňa funkciu Inbox Search na Facebooku a poskytuje štruktúrovaný obchod kľúč - hodnota s prípadnou konzistentnosťou.
HipHop pre PHP
HipHop pre PHP je transformátor zdrojového kódu pre skriptový kód PHP a bol vytvorený za účelom šetrenia serverových prostriedkov. HipHop transformuje zdrojový kód PHP do optimalizovaného C ++. Potom to pomocou g ++ skompiluje do strojového kódu.
záver
Stručne povedané, toto je Facebook. Tento článok by mohol byť ľahko o 37 strán dlhší, ak by som mal ísť do podrobností, ale na zodpovedanie otázky „Ako funguje Facebook?“ Si myslím, že to bude stačiť. Ak sa pozriete okolo všetkých funkcií a inovácií, hlavná myšlienka Facebooku je skutočne veľmi jednoduchá. ““ Udržiavať ľudí v kontakte. Facebook si uvedomuje silu sociálnych sietí a neustále inovuje, aby ich služby boli čo najlepšie v podnikaní.
Považujete tento článok za užitočný? Nechajte svoje myšlienky, komentáre a nápady nižšie!
Steve, manažér komunity vo VaynerMedia, je nadšený sociálnymi médiami a budovaním značky.