Hvordan virker Facebook? Nødder og bolte [Teknologi forklaret]

Reklame

Reklame
Reklame

Social networking er kunsten at forbinde med dem, der har fælles interesser. Dit "netværk" er et fællesskab, der hjælper med at holde dig forenet med andre og giver mange fordele. Netværk via sociale medier har revolutioneret, hvordan vi bruger internettet og er i spidsen for, hvad vi nu kalder Web 2.0.

Facebook er socialt netværk. Folk har været "facebooking" hinanden i omkring 6 år nu, hvilket gør Facebook til det mest anvendte sociale netværk med over 350 millioner brugere verden over. Men hvordan fungerer Facebook?

I denne artikel vil jeg diskutere Facebooks indvendige arbejde, der dækker sin arkitektur og frontend / backend infrastruktur "" de møtrikker og bolte, der holder Facebook sammen.

Hvordan virker Facebook? "" Den forreste ende

Facebook bruger en række tjenester, værktøjer og programmeringssprog til at udgøre sin centrale infrastruktur. På forsiden løber deres servere en LAMP (Linux, Apache, MySQL og PHP) stak med Memcache. Ikke en computer science ekspert? Lad os se nærmere på, hvad det betyder.

Linux & Apache

hvordan virker facebook arbejde

Denne del er ret selvforklarende. Linux er en Unix-lignende computer operativsystemkerne. Det er open source, meget tilpasset og godt for sikkerhed. Facebook kører Linux-operativsystemet på Apache HTTP-servere. Apache er også gratis og er den mest populære open source webserver i brug.

MySQL

hvordan virker facebook arbejde

For databasen bruger Facebook MySQL på grund af dets hurtighed og pålidelighed. MySQL bruges primært som en nøgleværdi butik, da data er tilfældigt fordelt blandt et stort sæt af logiske forekomster. Disse logiske forekomster spredes ud over fysiske knudepunkter, og belastningsbalancering sker på det fysiske knudepunkt.

Hvad angår tilpasninger har Facebook udviklet en brugerdefineret partitioneringsordning, hvor et globalt id er tildelt alle data. De har også en brugerdefineret arkiveringsordning, der er baseret på, hvor hyppige og seneste data der er på brugerbasis. De fleste data distribueres tilfældigt.

PHP

hvordan virker facebook arbejde

Facebook bruger PHP, fordi det er et godt webprogrammeringssprog med omfattende support og et aktivt udviklerfællesskab, og det er godt for hurtig iteration. PHP er et dynamisk skrevet / tolket skriptsprog.

memcache

hvordan facebook virker

Memcache er et memory caching system, der bruges til at fremskynde dynamiske database-drevne hjemmesider (som Facebook) ved at cache data og objekter i RAM for at reducere læsetid. Memcache er Facebooks primære form for caching og hjælper med at lette databasebelastningen.

At have et caching system gør det muligt for Facebook at være så hurtigt som det er at huske dine data. Hvis det ikke behøver at gå til databasen, vil det bare hente dine data fra cachen baseret på dit bruger-id.

Ulemper ved brug af LAMP

Facebook har indset, at der er ulemper ved at bruge LAMP-stakken. Specielt er PHP ikke nødvendigvis optimeret til store websteder og derfor svært at skalere. Det er heller ikke det hurtigste udførelses sprog, og udvidelsesrammen er svært at bruge.

hvordan facebook virker

Mike Schroepfer, Facebooks vicepræsident for ingeniørarbejde, for nylig lavede et interview hos EmTech @ MIT om dette. "Skalering af enhver hjemmeside er en udfordring, " sagde Schroepfer, "men skalering af et socialt netværk har unikke udfordringer."

Han fortsatte med at sige, at i modsætning til andre hjemmesider, kan du ikke blot tilføje flere servere for at løse problemet på grund af Facebooks "store sammenkoblede datasæt." Nye forbindelser oprettes hele tiden på grund af brugeraktivitet.

Facebook er vokset så hurtigt, at de ofte står over for spørgsmål vedrørende databasesøgninger, caching og lagring af data. Deres database er enorm og stort set kompleks. For at tage højde for dette har Facebook startet mange open source-projekter og backend-tjenester.

Hvordan virker Facebook? "" Bagsiden

Facebooks backend-tjenester er skrevet i en række forskellige programmeringssprog, herunder C ++, Java, Python og Erlang. Deres filosofi for oprettelsen af ​​tjenester er som følger:

1. Opret en tjeneste, hvis det er nødvendigt

2. Opret en ramme / værktøjssæt til lettere oprettelse af tjenester

3. Brug det rigtige programmeringssprog til opgaven

En liste over alle Facebooks open source-udviklinger findes her. Jeg vil diskutere nogle af de væsentlige værktøjer, som Facebook har udviklet.

Sparsommelighed (protokol)

Hvordan virker Facebook? Nødder og bolte [Teknologi forklaret] 7 fb drift Sparsommelighed er en letvægts fjernbetjeningskaldsramme for skalerbar tværspredningstjenester. Sparsommelighed understøtter C ++, PHP, Python, Perl, Java, Ruby, Erlang og andre. Det er hurtigt, sparer udviklingstiden og giver en arbejdsdeling af arbejde på højtydende servere og applikationer.

Scribe (logserver)

Scribe er en server til aggregering af logdata streamet i realtid fra mange andre servere. Det er en skalerbar ramme, der er nyttig til at logge en lang række data. Det er bygget oven på sparsommelighed.

Cassandra (database)

hvordan facebook virker

Cassandra er et databasestyringssystem designet til at håndtere store mængder data spredt ud over mange servere. Det styrer Facebooks Indbakke søgning funktion og giver en struktureret nøgleværdi butik med eventuel konsistens.

HipHop til PHP

HipHop for PHP er en kildekode transformer til PHP script kode og blev oprettet for at gemme server ressourcer. HipHop transformerer PHP kildekode til optimeret C ++. Efter at gøre dette bruger den g ++ til at kompilere den til maskinkode.

Konklusion

I en nøddeskal, det er Facebook. Denne artikel kunne nemt være 37 sider længere, hvis jeg skulle gå i detaljer, men for at svare på spørgsmålet "Hvordan virker Facebook?" Jeg tror, ​​det vil være tilstrækkeligt. Hvis du ser forbi alle funktioner og innovationer, er hovedidéen bag Facebook virkelig meget grundlæggende "" at holde folk tilsluttet. Facebook realiserer strømmen af ​​sociale netværk og er konstant innovativt for at holde deres service det bedste i virksomheden.

Fandt du denne artikel nyttig? Forlad dine tanker, kommentarer og ideer nedenfor!

In this article