Iklan
Jejaring sosial adalah seni menghubungkan dengan mereka yang memiliki minat yang sama. "Etworknetwork" Anda adalah komunitas yang membantu Anda tetap bersatu dengan orang lain dan menawarkan banyak manfaat. Jaringan melalui situs media sosial telah merevolusi cara kita menggunakan Internet dan berada di garis depan dari apa yang sekarang kita sebut Web 2.0.
Facebook adalah jaringan sosial. Orang-orang telah saling “facebooking” selama sekitar 6 tahun sekarang Facebook jejaring sosial yang paling banyak digunakan dengan lebih dari 350 juta pengguna di seluruh dunia. Tapi bagaimana cara kerja Facebook?
Dalam artikel ini, saya akan membahas cara kerja dalam Facebook, yang membahasnya Arsitektur dan infrastruktur frontend / backend ”” mur dan baut yang menyatukan Facebook.
Bagaimana Cara Kerja Facebook? "" Ujung Depan
Facebook menggunakan berbagai layanan, alat, dan bahasa pemrograman untuk membangun infrastruktur intinya. Di ujung depan, server mereka menjalankan tumpukan LAMP (Linux, Apache, MySQL, dan PHP) dengan Memcache. Bukan ahli ilmu komputer? Mari kita lihat apa artinya itu.
Linux & Apache

Bagian ini cukup jelas. Linux adalah kernel sistem operasi komputer yang mirip Unix. Ini open source, sangat dapat disesuaikan, dan bagus untuk keamanan. Facebook menjalankan sistem operasi Linux di Server HTTP Apache. Apache juga gratis dan merupakan server web open source paling populer yang digunakan.
MySQL

Untuk database, Facebook menggunakan MySQL karena kecepatan dan keandalannya. MySQL digunakan terutama sebagai penyimpan nilai-kunci karena data didistribusikan secara acak di antara sejumlah besar instance logis. Instance logis ini tersebar di seluruh node fisik dan load balancing dilakukan pada level node fisik.
Sejauh menyangkut kustomisasi, Facebook telah mengembangkan skema partisi kustom di mana ID global diberikan untuk semua data. Mereka juga memiliki skema pengarsipan khusus yang didasarkan pada seberapa sering dan data terkini berdasarkan per pengguna. Sebagian besar data didistribusikan secara acak.
PHP

Facebook menggunakan PHP karena itu adalah bahasa pemrograman web yang bagus dengan dukungan luas dan komunitas pengembang aktif dan bagus untuk iterasi cepat. PHP adalah bahasa skrip yang diketik / ditafsirkan secara dinamis.
Memcache

Memcache adalah sistem caching memori yang digunakan untuk mempercepat situs web yang digerakkan oleh basis data dinamis (seperti Facebook) dengan menyimpan data dan objek dalam RAM untuk mengurangi waktu membaca. Memcache adalah bentuk utama caching Facebook dan membantu meringankan beban basis data.
Memiliki sistem caching memungkinkan Facebook untuk secepat mengingat data Anda. Jika tidak harus pergi ke database, itu hanya akan mengambil data Anda dari cache berdasarkan ID pengguna Anda.
Kerugian Menggunakan LAMP
Facebook telah menyadari bahwa ada kerugian untuk menggunakan tumpukan LAMP. Khususnya, PHP belum tentu dioptimalkan untuk situs web besar dan karenanya sulit untuk diukur. Juga, itu bukan bahasa yang mengeksekusi tercepat dan kerangka kerja ekstensi sulit digunakan.

Mike Schroepfer, Wakil Presiden Teknik Facebook, baru-baru ini melakukan wawancara di EmTech @ MIT tentang ini. "Menskalakan situs web apa pun adalah sebuah tantangan," kata Schroepfer, "tetapi penskalaan jaringan sosial memiliki tantangan unik."
Dia melanjutkan dengan mengatakan bahwa tidak seperti situs web lain, Anda tidak bisa hanya menambah server untuk menyelesaikan masalah karena dari "kumpulan data saling terhubung besar Facebook". Koneksi baru dibuat sepanjang waktu karena aktivitas pengguna.
Facebook telah tumbuh begitu cepat sehingga mereka sering dihadapkan dengan masalah tentang permintaan basis data, caching, dan penyimpanan data. Basis data mereka sangat besar dan sebagian besar kompleks. Untuk menjelaskan hal ini, Facebook telah memulai banyak proyek sumber terbuka dan layanan backend.
Bagaimana Cara Kerja Facebook? "" The Back End
Layanan backend Facebook ditulis dalam berbagai bahasa pemrograman yang berbeda termasuk C ++, Java, Python, dan Erlang. Filosofi mereka untuk penciptaan layanan adalah sebagai berikut:
1. Buat layanan jika diperlukan
2. Buat kerangka kerja / toolset untuk pembuatan layanan yang lebih mudah
3. Gunakan bahasa pemrograman yang tepat untuk tugas itu
Daftar semua pengembangan sumber terbuka Facebook dapat ditemukan di sini. Saya akan membahas beberapa alat penting yang telah dikembangkan Facebook.
Hemat (protokol)
Penghematan adalah framework panggilan prosedur jarak jauh yang ringan untuk pengembangan layanan lintas-bahasa yang dapat diskalakan. Hemat mendukung C ++, PHP, Python, Perl, Java, Ruby, Erlang, dan lainnya. Cepat, menghemat waktu pengembangan, dan menyediakan pembagian kerja di server dan aplikasi berkinerja tinggi.
Penulis (server log)
Penulis adalah server untuk mengumpulkan data log yang dialirkan secara real-time dari banyak server lain. Ini adalah kerangka kerja skalabel yang berguna untuk mencatat beragam data. Itu dibangun di atas Hemat.
Cassandra (database)

Cassandra adalah sistem manajemen basis data yang dirancang untuk menangani sejumlah besar data yang tersebar di banyak server. Ini memperkuat fitur Pencarian Kotak Masuk Facebook dan menyediakan toko nilai kunci terstruktur dengan konsistensi akhirnya.
HipHop untuk PHP
HipHop untuk PHP adalah transformator kode sumber untuk kode skrip PHP dan dibuat untuk menghemat sumber daya server. HipHop mengubah kode sumber PHP menjadi C ++ yang dioptimalkan. Setelah melakukan ini, ia menggunakan g ++ untuk mengkompilasinya ke kode mesin.
Kesimpulan
Singkatnya, itu Facebook. Artikel ini bisa dengan mudah menjadi 37 halaman lebih lama jika saya masuk ke lebih detail, tetapi untuk menjawab pertanyaan "Bagaimana cara kerja Facebook?" Saya pikir ini sudah cukup. Jika Anda melihat melewati semua fitur dan inovasi, ide utama di balik Facebook benar-benar sangat mendasar "" membuat orang tetap terhubung. Facebook menyadari kekuatan jejaring sosial dan terus berinovasi untuk menjaga layanan mereka yang terbaik dalam bisnis.
Apakah menurut Anda artikel ini bermanfaat? Tinggalkan pikiran, komentar, dan ide Anda di bawah ini!
Steve, Manajer Komunitas di VaynerMedia, sangat menyukai media sosial dan pengembangan merek.