Reklame

Hvordan fungerer Facebook? Nødder og bolte [Teknologi forklaret] 0 intro facebookSociale netværk er kunsten at forbinde med dem, der deler fælles interesser. Dit “worknetværk” er et samfund, der hjælper med at holde dig forenet med andre og tilbyder mange fordele. Netværk via sociale mediesider har revolutioneret, hvordan vi bruger Internettet og er i forkant af det, vi nu kalder Web 2.0.

Facebook er sociale netværk. Folk har "facebooket" hinanden i cirka 6 år nu, hvilket gør Facebook det mest anvendte sociale netværk med over 350 millioner brugere over hele verden. Men hvordan fungerer Facebook?

I denne artikel vil jeg diskutere Facebooks indre arbejde og dække dens arkitektur og frontend / backend infrastruktur ”” møtrikker og bolte, der holder Facebook sammen.

Hvordan fungerer Facebook? ”” Frontend

Facebook bruger en række tjenester, værktøjer og programmeringssprog til at udgøre sin kerneinfrastruktur. I frontend kører deres servere en LAMP (Linux, Apache, MySQL og PHP) stak med Memcache. Ikke en computer videnskab ekspert? Lad os se på nøjagtigt, hvad det betyder.

instagram viewer

Linux & Apache

hvordan fungerer facebook

Denne del er ret selvforklarende. Linux er en Unix-lignende computer-operativsystemkerne. Det er open source, meget tilpasselig 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, der er i brug.

MySQL

hvordan fungerer facebook

For databasen bruger Facebook MySQL på grund af dens hastighed og pålidelighed. MySQL bruges primært som en nøgleværdielager, da data fordeles tilfældigt mellem et stort sæt logiske forekomster. Disse logiske tilfælde er spredt ud over fysiske knuder, og belastningsbalancering udføres på det fysiske knudepunktniveau.

For så vidt angår tilpasninger, har Facebook udviklet en brugerdefineret partitioneringsplan, hvor en global ID er tildelt alle data. De har også et tilpasset arkiveringsskema, der er baseret på, hvor hyppige og nylige data er pr. Bruger. De fleste data distribueres tilfældigt.

PHP

hvordan fungerer facebook

Facebook bruger PHP, fordi det er et godt webprogrammeringssprog med omfattende support og et aktivt udviklerfællesskab, og det er godt til hurtig iteration. PHP er et dynamisk indtastet / fortolket scriptingsprog.

memcache

hvordan facebook fungerer

memcache er et hukommelsescache-system, der bruges til at fremskynde dynamiske databasedrevne websteder (som Facebook) ved at cache data og objekter i RAM for at reducere læsetiden. Memcache er Facebooks primære form for cache og hjælper med at lindre databasebelastningen.

At have et cache-system giver Facebook mulighed for at være så hurtig, som det er ved at huske dine data. Hvis det ikke behøver at gå til databasen, henter det bare 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. Det skal bemærkes, at PHP ikke nødvendigvis er optimeret til store websteder og derfor vanskelig at skalere. Det er heller ikke det hurtigste eksekverende sprog, og udvidelsesrammen er vanskelig at bruge.

hvordan facebook fungerer

Mike Schroepfer, Facebooks vicepræsident for teknik, foretog for nylig et interview kl EmTech @ MIT vedrørende dette. "Skalering af ethvert websted 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 websteder, kan du ikke bare tilføje flere servere for at løse problemet, fordi af Facebooks "enorme sammenkoblede datasæt." Nye forbindelser oprettes hele tiden på grund af brugeraktivitet.

Facebook er vokset så hurtigt, at de ofte står over for problemer vedrørende databasespørgsmål, cache og opbevaring af data. Deres database er enorm og stort set kompliceret. For at redegøre for dette har Facebook startet mange open source-projekter og backend-tjenester.

Hvordan fungerer Facebook? ”” Bagenden

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

1. Opret en service hvis det er nødvendigt

2. Opret et ramme / værktøjssæt for lettere oprettelse af tjenester

3. Brug det rigtige programmeringssprog til opgaven

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

Sparsomhed (protokol)

Hvordan fungerer Facebook? Nødder og bolte [Teknologi forklaret] 7 fb sparsommeligThrift er en letvægtsopkaldsramme til fjernprocedurer til skalerbar udvikling af tværsprogede tjenester. Thrift understøtter C ++, PHP, Python, Perl, Java, Ruby, Erlang og andre. Det er hurtigt, sparer udviklingstid og giver en arbejdsdeling på højtydende servere og applikationer.

Scribe (log-server)

Scribe er en server til sammenlægning af logdata, der streames 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å sparsommeligt.

Cassandra (database)

hvordan facebook fungerer

Cassandra er et databasestyringssystem designet til at håndtere store mængder data spredt på mange servere. Det styrker Facebooks Inbox Search-funktion og giver en struktureret nøgleværdi-butik med eventuel konsistens.

HipHop til PHP

HipHop til PHP er en kildekodetransformator til PHP-scriptkode og blev oprettet for at gemme serverressourcer. HipHop omdanner PHP-kildekode til optimeret C ++. Efter at have gjort dette bruger den g ++ til at kompilere den til maskinkode.

Konklusion

Kort sagt, det er Facebook. Denne artikel kunne let være 37 sider længere, hvis jeg skulle gå nærmere ind på, men for at besvare spørgsmålet “Hvordan fungerer Facebook?” Jeg tror, ​​det vil være tilstrækkeligt. Hvis du kigger forbi alle funktioner og innovationer, er hovedideen bag Facebook virkelig meget grundlæggende ”” med at holde folk tilsluttet. Facebook er klar over kraften i sociale netværk og innoverer konstant for at holde deres service bedst i branchen.

Synes du denne artikel var nyttig? Efterlad dine tanker, kommentarer og ideer nedenfor!

Steve, en community manager hos VaynerMedia, brænder for sociale medier og brand building.