Hirdetés
A közösségi hálózatépítés olyan kapcsolat létrehozásának művészete, akiknek közös érdekeik vannak. A „hálózat” egy olyan közösség, amely segít egyesíteni téged másokkal, és számos előnnyel jár. A közösségi média oldalain keresztüli hálózatépítés forradalmasította az Internet használatát, és élen jár annak, amit most a Web 2.0-nak hívunk.
Facebook jelentése a közösségi hálón való kommunikáció. Az emberek már kb. 6 éve “facebookoznak” egymással, így készítenek Facebook a leggyakrabban használt közösségi hálózat, világszerte több mint 350 millió felhasználóval. De hogyan működik a Facebook?
Ebben a cikkben a Facebook belső működését tárgyalom, amely lefedi építészet és elülső / háttér-infrastruktúra ”” anyák és csavarok, amelyek együtt tartják a Facebookot.
Hogyan működik a Facebook? ”” Az előtér
A Facebook különféle szolgáltatásokat, eszközöket és programozási nyelveket használ az alapvető infrastruktúra felépítéséhez. Az elülső részükben a szervereik LAMP (Linux, Apache, MySQL és PHP) veremet futtatnak a Memcache segítségével. Nem számítástechnikai szakértő? Vessen egy pillantást arra, hogy pontosan mit jelent ez.
Linux és Apache
Ez a rész elég önmagában magyarázható. Linux egy Unix-szerű számítógépes operációs rendszer kernel. Nyílt forráskódú, nagyon testreszabható és biztonságos. A Facebook a Linux operációs rendszert futtatja az Apache HTTP szerverekön. Apache szintén ingyenes, és a legnépszerűbb nyílt forráskódú webszerver.
MySQL
Az adatbázishoz a Facebook a MySQL-t használja gyorsasága és megbízhatósága miatt. MySQL elsősorban kulcsérték-tárolóként használatos, mivel az adatok véletlenszerűen vannak elosztva a logikai példányok nagy halmaza között. Ezek a logikai példányok eloszlanak a fizikai csomópontok között, és a terhelés kiegyenlítését a fizikai csomópont szintjén végzik.
A testreszabás szempontjából a Facebook kifejlesztett egy egyedi particionálási sémát, amelyben minden adathoz globális azonosítót rendelnek. Rendelkeznek egyéni archiválási sémával is, amely azon alapszik, hogy az egy felhasználónként milyen gyakran és legfrissebb adatok vannak. A legtöbb adat véletlenszerűen van elosztva.
PHP
A Facebook a PHP-t használja, mert jó webprogramozási nyelv, széleskörű támogatással és aktív fejlesztői közösséggel, valamint jó a gyors iterációhoz. PHP egy dinamikusan beírt / értelmezett szkriptnyelv.
Memcache
Memcache egy memória gyorsítótárazási rendszer, amelyet dinamikus adatbázisvezérelt webhelyek (például a Facebook) felgyorsítására használnak az adatok és objektumok gyorsítótárazásával a RAM-ban az olvasási idő csökkentése érdekében. A Memcache a Facebook gyorsítótárazásának elsődleges formája, és megkönnyíti az adatbázis betöltését.
A gyorsítótárazó rendszer lehetővé teszi, hogy a Facebook olyan gyors legyen, mint az adatok visszahívásakor. Ha nem kell az adatbázisba mennie, akkor csak a felhasználói azonosító alapján beolvassa az adatokat a gyorsítótárból.
A LAMP használatának hátrányai
A Facebook rájött, hogy vannak hátrányai a LAMP verem használatának. Nevezetesen, a PHP-t nem feltétlenül optimalizálják a nagy webhelyekre, ezért nehéz méretezni. Ezenkívül ez nem a leggyorsabb végrehajtó nyelv, és a kiterjesztési keret nehéz használni.
Mike Schroepfer, a Facebook műszaki alelnöke nemrég készített interjút a (z) webhelyen EMTECH @ MIT erről. "Bármely weboldal méretezése kihívás" - mondta Schroepfer -, de a közösségi hálózat méretezése egyedi kihívásokkal jár. "
Azt mondta, hogy más webhelyekkel ellentétben nem csak további kiszolgálókat adhat hozzá a probléma megoldásához, mert a Facebook „hatalmas összekapcsolt adatállományának”. A felhasználói tevékenység miatt folyamatosan új kapcsolatok jönnek létre.
A Facebook annyira gyorsan nőtt, hogy gyakran felmerülnek az adatbázis-lekérdezések, a gyorsítótárazás és az adatok tárolásának kérdései. Adatbázisuk hatalmas és nagyrészt bonyolult. Ennek figyelembe vétele érdekében a Facebook számos nyílt forráskódú projektet és háttér-szolgáltatást indított.
Hogyan működik a Facebook? ”” A háttér
A Facebook háttérszolgáltatásait különféle programozási nyelveken, többek között a C ++, a Java, a Python és az Erlang nyelven írják. A szolgáltatások létrehozására vonatkozó filozófiájuk a következő:
1. Hozzon létre egy szolgáltatást ha szükséges
2. Hozzon létre egy keretet / eszközkészletet a szolgáltatások könnyebb létrehozásához
3. A feladathoz használja a megfelelő programozási nyelvet
A Facebook nyílt forráskódú fejlesztéseinek listája itt található. Beszélek néhány, a Facebook által kifejlesztett alapvető eszközről.
Takarékosság (protokoll)
Takarékosság egy könnyű távoli eljáráshívási keret a skálázható, többnyelvű szolgáltatások fejlesztéséhez. A Thrift támogatja a C ++, a PHP, a Python, a Perl, a Java, a Ruby, az Erlang és mások támogatását. Gyors, megtakarítja a fejlesztési időt, és megosztja a munkát a nagy teljesítményű szerverek és alkalmazások területén.
Scribe (naplószerver)
Írnok egy olyan kiszolgáló, amely sok más szerverről valós időben továbbított naplóadatokat aggregálhat. Ez egy skálázható keret, amely sokféle adat naplózására használható. A Thrift tetejére épült.
Cassandra (adatbázis)
Cassandra egy adatbázis-kezelő rendszer, amelyet nagy mennyiségű adat kezelésére terveztek, kiszolgálókra szétszórva. Ez bekapcsolja a Facebook Beérkező levelek keresési funkcióját, és strukturált kulcsérték-tárolót biztosít, esetleges következetességgel.
HipHop a PHP-hez
HipHop a PHP-hez egy forráskód-transzformátor a PHP szkriptkódhoz, és a szerver erőforrásainak mentése céljából jött létre. A HipHop a PHP forráskódját optimalizált C ++ -vá alakítja. Miután ezt megtette, g ++ segítségével fordítja le gépi kódra.
Következtetés
Dióhéjban ez a Facebook. Ez a cikk könnyedén 37 oldal lehet, ha részletesebben foglalkoznék, de a „Hogyan működik a Facebook?” Kérdésre azt hiszem, hogy ez elég lesz. Ha átnézi az összes szolgáltatást és innovációt, akkor a Facebook fő gondolata valóban nagyon alapvető ””, az emberek kapcsolattartása. A Facebook felismeri a közösségi hálózatok hatalmát, és folyamatosan fejleszt innovációkat annak érdekében, hogy az üzleti életben a legjobb szolgáltatást biztosítsák.
Hasznosnak találta ezt a cikket? Hagyja alább gondolatait, észrevételeit és ötleteit!
Steve, a VaynerMedia közösségi menedzsere szenvedélyesen foglalkozik a közösségi médiával és a márkaépítéssel.