Oglas
Društveno umrežavanje umjetnost je povezivanja s onima koji imaju zajedničke interese. Vaša "mreža" je zajednica koja vam pomaže da ostanete ujedinjeni s drugima i nudi mnoge prednosti. Umrežavanje putem web lokacija društvenih medija revolucioniralo je način na koji koristimo internet i prednjači u onome što danas nazivamo Web 2.0.
Facebook je društvene mreže. Ljudi su "facebooking" jedni druge već oko 6 godina, što je stvaranje Facebook najkorištenija društvena mreža s preko 350 milijuna korisnika širom svijeta. Ali kako funkcionira Facebook?
U ovom ću članku raspravljati o unutarnjem radu Facebooka, koji pokriva njegov rad arhitektura i sučelje / pomoćna infrastruktura "" matice i vijke koji drže Facebook zajedno.
Kako djeluje Facebook? "" Prednji kraj
Facebook koristi razne usluge, alate i programske jezike za sastavljanje svoje osnovne infrastrukture. Na prednjem kraju njihovi poslužitelji pokreću LAMP (Linux, Apache, MySQL i PHP) skup sa Memcacheom. Nije stručnjak za informatiku? Pogledajmo točno što to znači
Linux i Apache

Ovaj je dio prilično sam razumljiv. Linux je jezgra operacijskog sustava računala slična Unixu. To je open source, vrlo prilagodljiv i dobar za sigurnost. Facebook pokreće Linux operativni sustav na Apache HTTP poslužiteljima. apaš također je besplatan i najpopularniji je otvoreni izvorni web poslužitelj.
MySQL

Za bazu podataka, Facebook koristi MySQL zbog njegove brzine i pouzdanosti. MySQL prvenstveno se koristi kao pohrana ključa i vrijednosti, jer se podaci nasumično raspodjeljuju među velikim nizom logičkih instanci. Te se logičke instance šire na fizičke čvorove, a uravnoteženje opterećenja vrši se na razini fizičkog čvora.
Što se tiče prilagođavanja, Facebook je razvio shemu prilagođene particije u kojoj je svim podacima dodijeljen globalni ID. Oni također imaju prilagođenu shemu arhiviranja koja se temelji na učestalosti i nedavnih podataka o korisniku. Većina podataka distribuira se nasumično.
PHP

Facebook koristi PHP jer je dobar web programski jezik s opsežnom podrškom i aktivnom zajednicom programera te je dobar za brzu iteraciju. PHP je dinamički tipkani / interpretirani skriptni jezik.
predmemorija

predmemorija je sustav za predmemoriranje u memoriji koji se koristi za ubrzavanje dinamičnih web stranica vođenih baza podataka (poput Facebooka) keširanjem podataka i objekata u RAM-u radi smanjenja vremena za čitanje. Memcache je glavni oblik Facebooka predmemoriranja i pomaže u ublažavanju učitavanja baze podataka.
Postojanje sustava za predmemoriranje omogućava Facebooku da bude brz kao i prilikom opoziva vaših podataka. Ako ne mora ići u bazu podataka, samo će dohvatiti vaše podatke iz predmemorije na temelju vašeg korisničkog ID-a.
Nedostaci korištenja LAMP-a
Facebook je shvatio da postoje nedostaci korištenja LAMP staka. Značajno je da PHP nije nužno optimiziran za velike web stranice i stoga ih je teško mjeriti. Također, to nije najbrži izvršni jezik, a okvir za proširenje je teško koristiti.

Mike Schroepfer, Facebook potpredsjednik strojarstva, nedavno je obavio intervju na EmTech @ MIT u vezi s tim. "Skaliranje bilo kojeg web mjesta predstavlja izazov," rekao je Schroepfer, "ali skaliranje društvene mreže ima jedinstvene izazove."
Nastavio je da za razliku od drugih web lokacija ne možete jednostavno dodati više poslužitelja da biste riješili problem Facebookove "velike međusobno povezane baze podataka." Stalno se stvaraju nove veze zbog aktivnosti korisnika.
Facebook je tako brzo porastao da su često suočeni s pitanjima u vezi s upitima u bazama podataka, spremanjem podataka i pohranom podataka. Njihova baza podataka je ogromna i u velikoj mjeri složeno. Da bi to objasnio, Facebook je pokrenuo mnoštvo projekata otvorenog koda i sigurnosnih usluga.
Kako funkcionira Facebook? "" Stražnji kraj
Facebook pomoćne usluge napisane su u raznim programskim jezicima, uključujući C ++, Java, Python i Erlang. Njihova filozofija za stvaranje usluga je sljedeća:
1. Stvorite uslugu Ako je potrebno
2. Stvorite okvir / skup alata za lakše stvaranje usluga
3. Koristite pravi programski jezik za zadatak
Popis svih Facebookovih otvorenih izvora možete pronaći ovdje. Raspravljat ću o nekoliko bitnih alata koje je Facebook razvio.
Isplativost (protokol)
Štedljivost lagan je okvir za daljinsko pozivanje za razvoj skalabilnih usluga na više jezika. Thrift podržava C ++, PHP, Python, Perl, Java, Ruby, Erlang i druge. To je brzo, štedi vrijeme razvoja i omogućava podjelu rada na visoko performansnim poslužiteljima i aplikacijama.
Scribe (dnevnik poslužitelja)
Pisar je poslužitelj za agregiranje podataka dnevnika koji se u stvarnom vremenu struji s mnogih drugih poslužitelja. To je skalabilan okvir koristan za bilježenje širokog niza podataka. Izgrađen je na vrhu Thrifta.
Cassandra (baza podataka)

Cassandra je sustav za upravljanje bazama podataka dizajniran za obradu velikih količina podataka raspoređenih na mnogim poslužiteljima. Omogućuje Facebookovu značajku pristigle pošte i pruža strukturiranu trgovinu ključeva i vrijednosti s mogućom dosljednošću.
HipHop za PHP
HipHop za PHP je transformator izvornog koda za PHP skript kod i stvoren je za spremanje resursa poslužitelja. HipHop pretvara PHP izvorni kod u optimizirani C ++. Nakon što to učini, koristi g ++ za sastavljanje u strojni kod.
Zaključak
Ukratko, to je Facebook. Ovaj članak bi mogao biti lakši za 37 stranica ako bih htio detaljnije detaljnije odgovoriti na pitanje "Kako funkcionira Facebook?" Mislim da će ovo biti dovoljno. Ako proučite sve značajke i inovacije, glavna ideja koja stoji iza Facebooka je zaista vrlo osnovno ”” zadržavanje ljudi u vezi. Facebook shvaća snagu društvenih mreža i stalno inovira kako bi njihovu uslugu održao najboljom u poslu.
Je li vam ovaj članak bio koristan? Ostavite svoje misli, komentare i ideje u nastavku!
Steve, menadžer zajednice u VaynerMediji, strastveno se bavi društvenim medijima i izgradnjom robne marke.