Reklaam
Suhtlusvõrgustikud on kunst, mis loob ühenduse loomise nendega, kellel on ühised huvid. Teie „võrgustik” on kogukond, mis aitab hoida teid teistega ühtsena ja pakub palju eeliseid. Võrgustike loomine sotsiaalmeedia saitide kaudu on murranud seda, kuidas me Internetti kasutame, ja on esirinnas selles, mida me nüüd nimetame Web 2.0.
Facebook on sotsiaalvõrgustik. Inimesed on juba umbes 6 aastat üksteist facebookimas käinud ja teinud Facebook enimkasutatud suhtlusvõrgustik üle 350 miljoni kasutajaga kogu maailmas. Kuid kuidas Facebook töötab?
Selles artiklis käsitlen Facebooki sisemist tööd, kattes selle arhitektuur ja esikülje infrastruktuur ”- mutrid ja poldid, mis hoiavad Facebooki koos.
Kuidas Facebook töötab? ”” Esiplaan
Oma põhiinfrastruktuuri moodustamiseks kasutab Facebook mitmesuguseid teenuseid, tööriistu ja programmeerimiskeeli. Esiservas töötavad nende serverid Memcache'iga LAMP (Linux, Apache, MySQL ja PHP) korstnad. Kas pole arvutiteaduste ekspert? Vaatame täpsemalt, mida see tähendab.
Linux ja Apache
![kuidas facebook töötab?](/f/ed97f1528d99679c86f793d82b1611a9.png)
See osa on üsna iseenesest mõistetav. Linux on Unixi-tüüpi arvuti opsüsteemi kernel. See on avatud lähtekoodiga, väga kohandatav ja turvalisuse tagamiseks hea. Facebook juhib Linuxi opsüsteemi Apache HTTP-serverites. Apache on ka tasuta ja on populaarseim kasutatav avatud lähtekoodiga veebiserver.
MySQL
![kuidas facebook töötab?](/f/769f1d8b11f5da56b45c18a98baff1a8.png)
Andmebaasi jaoks kasutab Facebook MySQL-i kiiruse ja usaldusväärsuse tõttu. MySQL kasutatakse peamiselt võtmeväärtuse salvestusruumina, kuna andmed on juhuslikult jaotatud suure hulga loogiliste eksemplaride vahel. Need loogilised juhtumid on jaotatud füüsiliste sõlmede vahel ja koormuse tasakaalustamine toimub füüsilise sõlme tasemel.
Kohandamiste osas on Facebook välja töötanud kohandatud jaotusskeemi, milles kõigile andmetele omistatakse globaalne ID. Neil on ka kohandatud arhiveerimise skeem, mis põhineb sellel, kui sagedased ja uuemad andmed on kasutaja kohta. Enamik andmeid jaotatakse juhuslikult.
PHP
![kuidas facebook töötab?](/f/9d99c475ec400760a037f243501bd495.png)
Facebook kasutab PHP-d, kuna see on hea veebiprogrammeerimiskeel, millel on ulatuslik tugi ja aktiivne arendajakogukond ning see on hea kiireks iteratsiooniks. PHP on dünaamiliselt trükitud / tõlgendatud skriptikeel.
Memcache
![kuidas facebook töötab](/f/9228c8c72b716cc981473eaf91487b1e.png)
Memcache on mälu vahemällu salvestamise süsteem, mida kasutatakse dünaamiliste andmebaasipõhiste veebisaitide (näiteks Facebooki) kiirendamiseks andmete ja objektide vahemällu salvestamisega RAM-is, et vähendada lugemisaega. Memcache on Facebooki peamine vahemällu salvestamise vorm ja aitab leevendada andmebaasi koormust.
Vahemällusüsteemi olemasolu võimaldab Facebookil olla sama kiire kui teie andmete meenutamine. Kui see ei pea andmebaasi minema, tõmbab ta teie kasutajatunnuse põhjal lihtsalt vahemälus olevad andmed.
Varjukülg on LAMP-i kasutamine
Facebook on mõistnud, et LAMP-virna kasutamisel on varjukülgi. Nimelt ei ole PHP tingimata optimeeritud suurte veebisaitide jaoks ja seetõttu on seda raske skaleerida. Samuti pole see kõige kiiremini täidesaatev keel ja laiendraamistikku on keeruline kasutada.
![kuidas facebook töötab](/f/512f2c1f94ce2eae858312d8cb9f77e8.png)
Mike Schroepfer, Facebooki inseneri asepresident tegi hiljuti intervjuu saidil EmTech @ MIT selle kohta. "Mis tahes veebisaidi muutmine on väljakutse," ütles Schroepfer, "kuid sotsiaalse võrgustiku muutmiseks on ainulaadseid väljakutseid."
Ta jätkas, et erinevalt teistest veebisaitidest ei saa probleemi lahendamiseks lihtsalt rohkem servereid lisada, kuna Facebooki “tohutult ühendatud andmestikust”. Kasutajate aktiivsuse tõttu luuakse kogu aeg uusi ühendusi.
Facebook on kasvanud nii kiiresti, et nad seisavad sageli silmitsi andmebaasipäringute, vahemällu salvestamise ja andmete säilitamise probleemidega. Nende andmebaas on tohutu ja suuresti keeruline. Selle arvessevõtmiseks on Facebook käivitanud palju avatud lähtekoodiga projekte ja taustateenuseid.
Kuidas Facebook töötab? ”” Tagaosa
Facebooki taustateenused on kirjutatud paljudes erinevates programmeerimiskeeltes, sealhulgas C ++, Java, Python ja Erlang. Nende teenuste loomise filosoofia on järgmine:
1. Looge teenus vajadusel
2. Teenuste hõlpsamaks loomiseks looge raamistik / tööriistakomplekt
3. Kasutage ülesande jaoks õiget programmeerimiskeelt
Kõigi Facebooki avatud lähtekoodiga arengute loendi leiate siit. Arutlen mõnedest olulistest tööriistadest, mille Facebook on välja töötanud.
Säästlikkus (protokoll)
Säästlikkus on kerge kaugprotseduuride kõneraamistik laiendatavate keeltevaheliste teenuste arendamiseks. Thrift toetab C ++, PHP, Python, Perl, Java, Ruby, Erlang jt. See on kiire, säästab arendusaega ja tagab suure jõudlusega serverite ja rakenduste tööjaotuse.
Scribe (logiserver)
Kirjatükk on server reaalajas voogesitatud logiandmete koondamiseks paljudest teistest serveritest. See on skaleeritav raamistik, mis on kasulik paljude andmete registreerimiseks. See on üles ehitatud säästu peal.
Cassandra (andmebaas)
![kuidas facebook töötab](/f/5db48a76b7da15fe6ea709428380f246.png)
Cassandra on andmebaasihaldussüsteem, mis on loodud töötlema suures koguses paljudesse serveritesse jaotatud andmeid. See annab funktsiooni Facebooki postkastiotsingu funktsioon ja pakub struktureeritud võtmeväärtuse poodi, millel on võimalik järjepidevus.
HipHop PHP jaoks
HipHop PHP jaoks on PHP skriptikoodi lähtekooditrafo ja see loodi serveriressursside säästmiseks. HipHop muudab PHP lähtekoodi optimeeritud C ++ -ks. Pärast seda kasutab g ++ masinkoodiks kompileerimiseks.
Järeldus
Lühidalt - see on Facebook. See artikkel võib hõlpsalt olla 37 lehekülge pikem, kui peaksin lähemalt uurima, kuid vastuseks küsimusele “Kuidas Facebook töötab?” Arvan, et sellest piisab. Kõigist funktsioonidest ja uuendustest mööda vaadates on Facebooki peamine idee väga lihtne ””, mis hoiab inimesi ühenduses. Facebook mõistab sotsiaalsete võrgustike tugevust ja on pidevalt uuenduslik, et hoida nende teenust ettevõttes parimal viisil.
Kas see artikkel oli teile kasulik? Jäta oma mõtted, kommentaarid ja ideed allpool!
VaynerMedia kogukonnajuht Steve tegeleb kirglikult sotsiaalmeedia ja brändide loomisega.