Annuncio pubblicitario
Il social networking è l'arte di connettersi con coloro che condividono interessi comuni. La tua "rete" è una community che ti aiuta a rimanere unito agli altri e offre molti vantaggi. Il collegamento in rete tramite siti di social media ha rivoluzionato il modo in cui utilizziamo Internet ed è all'avanguardia di quello che oggi chiamiamo Web 2.0.
Facebook è social network. Le persone si "facebookano" a vicenda da circa 6 anni ormai Facebook il social network più utilizzato con oltre 350 milioni di utenti in tutto il mondo. Ma come funziona Facebook?
In questo articolo, parlerò dei meccanismi interni di Facebook, coprendo i suoi architettura e infrastrutture front-end / back-end "", i dadi e le viti che tengono insieme Facebook.
Come funziona Facebook? ”” Il front-end
Facebook utilizza una varietà di servizi, strumenti e linguaggi di programmazione per costituire la sua infrastruttura principale. Sul front-end, i loro server eseguono uno stack LAMP (Linux, Apache, MySQL e PHP) con Memcache. Non sei un esperto di informatica? Diamo un'occhiata a cosa significa esattamente.
Linux e Apache
Questa parte è piuttosto autoesplicativa. Linux è un kernel del sistema operativo simile a Unix. È open source, molto personalizzabile e buono per la sicurezza. Facebook esegue il sistema operativo Linux su server HTTP Apache. Apache è anche gratuito ed è il web server open source più popolare in uso.
MySQL
Per il database, Facebook utilizza MySQL per la sua velocità e affidabilità. MySQL viene utilizzato principalmente come archivio di valori-chiave poiché i dati vengono distribuiti in modo casuale tra un ampio set di istanze logiche. Queste istanze logiche sono distribuite su nodi fisici e il bilanciamento del carico viene eseguito a livello di nodo fisico.
Per quanto riguarda le personalizzazioni, Facebook ha sviluppato uno schema di partizionamento personalizzato in cui un ID globale è assegnato a tutti i dati. Hanno anche uno schema di archiviazione personalizzato basato sulla frequenza e la frequenza dei dati recenti per utente. La maggior parte dei dati viene distribuita in modo casuale.
PHP
Facebook utilizza PHP perché è un buon linguaggio di programmazione Web con ampio supporto e una comunità di sviluppatori attiva ed è utile per una rapida iterazione. PHP è un linguaggio di scripting digitato / interpretato in modo dinamico.
memcache
memcache è un sistema di memorizzazione nella cache che viene utilizzato per velocizzare i siti Web dinamici basati su database (come Facebook) memorizzando nella cache dati e oggetti nella RAM per ridurre i tempi di lettura. Memcache è la principale forma di memorizzazione nella cache di Facebook e aiuta ad alleviare il caricamento del database.
Avere un sistema di memorizzazione nella cache consente a Facebook di essere veloce come lo è nel ricordare i tuoi dati. Se non è necessario accedere al database, verranno semplicemente recuperati i dati dalla cache in base al proprio ID utente.
Svantaggi dell'utilizzo di LAMPADA
Facebook ha capito che ci sono degli svantaggi nell'utilizzo dello stack LAMP. In particolare, PHP non è necessariamente ottimizzato per siti Web di grandi dimensioni e quindi difficile da ridimensionare. Inoltre, non è il linguaggio con l'esecuzione più rapida e il framework di estensione è difficile da usare.
Mike Schroepfer, Vice President of Engineering di Facebook, ha recentemente rilasciato un'intervista a EmTech @ MIT al riguardo. "Ridimensionare qualsiasi sito Web è una sfida", ha detto Schroepfer, "ma ridimensionare un social network ha sfide uniche".
Ha continuato dicendo che a differenza di altri siti Web, non è possibile semplicemente aggiungere più server per risolvere il problema perché dell '"enorme set di dati interconnessi" di Facebook. Le nuove connessioni vengono create continuamente a causa dell'attività dell'utente.
Facebook è cresciuto così rapidamente che spesso si trovano ad affrontare problemi riguardanti le query del database, la memorizzazione nella cache e l'archiviazione dei dati. Il loro database è enorme e ampiamente complesso. A tale scopo, Facebook ha avviato molti progetti open source e servizi di back-end.
Come funziona Facebook? ”” Il back-end
I servizi di backend di Facebook sono scritti in una varietà di linguaggi di programmazione diversi tra cui C ++, Java, Python ed Erlang. La loro filosofia per la creazione di servizi è la seguente:
1. Crea un servizio se necessario
2. Crea un framework / set di strumenti per facilitare la creazione di servizi
3. Utilizzare il linguaggio di programmazione giusto per l'attività
Un elenco di tutti gli sviluppi open source di Facebook è disponibile qui. Discuterò alcuni degli strumenti essenziali che Facebook ha sviluppato.
Parsimonia (protocollo)
parsimonia è un framework di chiamate di procedura remota leggero per lo sviluppo di servizi multilingue multilingue. Thrift supporta C ++, PHP, Python, Perl, Java, Ruby, Erlang e altri. È veloce, consente di risparmiare tempo di sviluppo e offre una divisione del lavoro su server e applicazioni ad alte prestazioni.
Scribe (log server)
Scriba è un server per aggregare i dati di registro trasmessi in streaming in tempo reale da molti altri server. È un framework scalabile utile per la registrazione di una vasta gamma di dati. È costruito sopra Thrift.
Cassandra (database)
cassandra è un sistema di gestione di database progettato per gestire grandi quantità di dati distribuiti su molti server. Alimenta la funzione di ricerca di Posta in arrivo di Facebook e fornisce un archivio valori-chiave strutturato con eventuale coerenza.
HipHop per PHP
HipHop per PHP è un trasformatore di codice sorgente per il codice di script PHP ed è stato creato per risparmiare risorse del server. HipHop trasforma il codice sorgente PHP in C ++ ottimizzato. Dopo aver fatto ciò, usa g ++ per compilarlo in codice macchina.
Conclusione
In poche parole, questa è Facebook. Questo articolo potrebbe facilmente essere più lungo di 37 pagine se dovessi approfondire, ma per rispondere alla domanda "Come funziona Facebook?" Penso che questo sarà sufficiente. Se guardi oltre tutte le funzionalità e le innovazioni, l'idea alla base di Facebook è davvero molto semplice "" mantenendo le persone connesse. Facebook si rende conto del potere dei social network ed è in costante innovazione per mantenere il proprio servizio il migliore del settore.
Hai trovato questo articolo utile? Lascia i tuoi pensieri, commenti e idee qui sotto!
Steve, Community Manager di VaynerMedia, è appassionato di social media e costruzione di marchi.