Hur fungerar Facebook? Nötterna och bultarna [Teknologi förklaras]

Annons

Annons
Annons

Socialt nätverk är konsten att ansluta till dem som delar gemensamma intressen. Ditt "nätverk" är ett samhälle som hjälper dig att hålla dig förenad med andra och erbjuder många fördelar. Nätverk via sociala medier har revolutionerat hur vi använder Internet och står i framkant av vad vi nu kallar Web 2.0.

Facebook är socialt nätverkande. Människor har varit "facebooking" varandra i ca 6 år nu, vilket gör Facebook till det mest använda sociala nätverket med över 350 miljoner användare över hela världen. Men hur fungerar Facebook?

I den här artikeln kommer jag att diskutera Facebooks inre arbeten, som täcker dess arkitektur och frontend / backend infrastruktur "" de muttrar och bultar som håller Facebook tillsammans.

Hur fungerar Facebook? "" The Front End

Facebook använder en mängd olika tjänster, verktyg och programmeringsspråk för att kompensera sin kärninfrastruktur. Vid fronten kör sina servrar en LAMP (Linux, Apache, MySQL och PHP) stack med Memcache. Inte en datavetenskapsexpert? Låt oss ta en titt på exakt vad det betyder.

Linux & Apache

hur fungerar facebook

Denna del är ganska självförklarande. Linux är en Unix-liknande dators operativsystemkärna. Det är öppen källkod, mycket anpassningsbar och bra för säkerhet. Facebook driver Linux-operativsystemet på Apache HTTP-servrar. Apache är också gratis och är den mest populära open source-webbservern som används.

MySQL

hur fungerar facebook

För databasen använder Facebook MySQL på grund av dess snabbhet och pålitlighet. MySQL används främst som en nyckelvärdesbutik, eftersom data slumpmässigt fördelas mellan en stor uppsättning logiska instanser. Dessa logiska instanser sprids ut över fysiska noder och belastningsbalansering görs på fysisk nodnivå.

När det gäller anpassningar har Facebook utvecklat ett anpassat partitioneringsschema där ett globalt ID tilldelas all data. De har också ett anpassat arkiveringsschema som bygger på hur frekvent och ny data som används per användare. De flesta data distribueras slumpmässigt.

PHP

hur fungerar facebook

Facebook använder PHP eftersom det är ett bra webbprogrammeringsspråk med omfattande support och ett aktivt utvecklingssamhälle och det är bra för snabb iteration. PHP är ett dynamiskt skrivet / tolkat skriptspråk.

memcache

hur facebook fungerar

Memcache är ett minne caching system som används för att påskynda dynamiska databasdrivna webbplatser (som Facebook) genom att cache data och objekt i RAM för att minska läsningstiden. Memcache är Facebook: s primära form av cachning och hjälper till att lindra databasbelastningen.

Att ha ett caching-system gör det möjligt för Facebook att vara så snabb som det är att återkalla dina data. Om det inte behöver gå till databasen kommer det bara att hämta dina data från cachen baserat på ditt användar-ID.

Downsides att använda LAMP

Facebook har insett att det finns nackdelar att använda LAMP-stacken. I synnerhet är PHP inte nödvändigtvis optimerat för stora webbplatser och därför svår att skala. Det är inte heller det snabbaste exekveringsspråket och förlängningsramen är svår att använda.

hur facebook fungerar

Mike Schroepfer, Facebook: s vice verkställande direktör för teknik, har nyligen intervjuat på EmTech @ MIT om detta. "Skalering av vilken webbplats som helst är en utmaning", säger Schroepfer, "men skalar ett socialt nätverk har unika utmaningar."

Han fortsatte med att säga att till skillnad från andra webbplatser kan du inte bara lägga till fler servrar för att lösa problemet på grund av Facebooks "stora sammankopplade dataset". Nya anslutningar skapas hela tiden på grund av användaraktivitet.

Facebook har vuxit så snabbt att de ofta står inför problem angående databasfrågor, cachning och lagring av data. Deras databas är stor och i stort sett komplex. För att ta reda på detta har Facebook startat många öppna källprojekt och backend-tjänster.

Hur fungerar Facebook? "" Den bakre änden

Facebooks backend-tjänster skrivs i en mängd olika programmeringsspråk, inklusive C ++, Java, Python och Erlang. Deras filosofi för skapandet av tjänster är följande:

1. Skapa en tjänst om det behövs

2. Skapa ett ramverk / verktygssats för lättare skapande av tjänster

3. Använd rätt programmeringsspråk för uppgiften

En lista över alla Facebooks open source-utveckling finns här. Jag kommer att diskutera några av de viktigaste verktygen som Facebook har utvecklat.

Sparsamhet (protokoll)

Hur fungerar Facebook? Nötterna och bultarna [Teknologi förklaras] 7 fb sparsamhet Sparsamhet är ett lätta fjärråtkomstsamtal ramverk för skalbar språktjänster utveckling. Sparsamhet stöder C ++, PHP, Python, Perl, Java, Ruby, Erlang och andra. Det är snabbt, sparar utvecklingstiden och ger en arbetsfördelning på högpresterande servrar och applikationer.

Scribe (loggserver)

Scribe är en server för att aggregera loggdata streamade i realtid från många andra servrar. Det är en skalbar ram som är användbar för att logga in ett brett spektrum av data. Det är byggt på toppen av sparsamhet.

Cassandra (databas)

hur facebook fungerar

Cassandra är ett databashanteringssystem som är utformat för att hantera stora mängder data spridda över många servrar. Den har funktioner för Inboks-sökning i Facebook och tillhandahåller en strukturerad nyckelvärdesbutik med eventuell konsistens.

HipHop för PHP

HipHop för PHP är en källkodstransformator för PHP-skriptkod och skapades för att spara serverresurser. HipHop omvandlar PHP-källkod till optimerad C ++. Efter att ha gjort det använder den g ++ för att kompilera den till maskinkod.

Slutsats

I ett nötskal, det är Facebook. Den här artikeln kan enkelt vara 37 sidor längre om jag skulle gå in mer i detalj, men att svara på frågan "Hur fungerar Facebook?" Jag tycker att det är tillräckligt. Om du tittar förbi alla funktioner och innovationer är huvudidén bakom Facebook verkligen väldigt grundläggande för att hålla människor kopplade. Facebook inser kraften i sociala nätverk och är ständigt innovativa för att hålla sin tjänst det bästa i verksamheten.

Hittade du den här artikeln användbar? Lämna dina tankar, kommentarer och idéer nedan!

In this article