Jejaring sosial adalah suatu seni berhubungan dengan orang-orang yang
berbagi minat yang sama. Jaringan Anda adalah sebuah komunitas yang
membantu menjaga Anda bersatu dengan orang lain dan menawarkan banyak
manfaat. Jaringan melalui situs media sosial telah merevolusi cara kita
menggunakan Internet dan berada di barisan depan dari apa yang
sekarang kita sebut Web 2.0.
Facebook adalah jejaring sosial. Orang-orang telah “facebooking”
selama lebih dari 6 tahun, membuat Facebook menjadi jaringan sosial
yang paling sering digunakan dengan lebih dari 500 juta pengguna di
seluruh dunia. Tapi bagaimana Facebook bekerja?
Pada artikel ini, saya akan membahas isi Facebook, meliputi
arsitektur dan infrastruktur frontend / backend yang mengendalikan
Facebook bersama-sama.
Bagaimana Cara Kerja Facebook – The Front End
Facebook menggunakan berbagai layanan, peralatan, dan bahasa
pemrograman untuk membuat infrastruktur inti. Pada ujung depan, server
mereka menjalankan LAMP (Linux, Apache, MySQL, dan PHP) stack dengan
Memcache. Anda bukan seorang ahli ilmu komputer? Mari kita lihat apa
artinya.
Linux & Apache
Bagian ini cukup jelas. Linux
adalah Unix seperti kernel sistem operasi komputer. Ini open source,
mudah disesuaikan, dan baik untuk keamanan. Facebook menjalankan sistem
operasi Linux di Apache HTTP Server. Apache juga open source gratis dan merupakan web server yang paling populer di gunakan.
MySQL
Untuk database, Facebook menggunakan MySQL karena kecepatan dan kehandalan. MySQL
digunakan terutama sebagai penyimpan nilai kunci sebagai data secara
acak didistribusikan diantara set besar kasus logis. Contoh-contoh logis
tersebar di seluruh node fisik dan load balancing yang dilakukan di
tingkat simpul fisik.
Sejauh kustomisasi yang bersangkutan, Facebook telah mengembangkan
skema partisi kustom di mana ID global ditugaskan untuk semua data.
Mereka juga memiliki skema pengarsipan kustom yang didasarkan pada
bagaimana data yang sering dan aktual pada basis per-user. Data yang
paling aktual didistribusikan secara acak.
VP Teknologi Facebook, Jeff Rothschild memberikan beberapa rincian
pada konferensi pengguna MySQL terakhir. Rothschild mengatakan Facebook
sekarang berjalan 10.000 server, termasuk 1.800 server MySQL yang
diawasi oleh hanya dua database administrator.
PHP
Facebook menggunakan PHP karena itu adalah bahasa pemrograman web
yang baik dengan dukungan luas dan komunitas pengembang yang aktif dan
hal ini baik untuk iterasi yang cepat. PHP adalah bahasa pemrograman script yang dinamis.
Memcache
Memcache adalah
sistem caching memori yang digunakan untuk mempercepat database website
dinamis (seperti Facebook). Dengan caching data dan objek dalam RAM
untuk mengurangi waktu membaca. Memcache adalah media cache utama
Facebook membantu meringankan beban database.
Memiliki sistem caching memungkinkan Facebook untuk bisa sangat cepat
memanggil data Anda. Karena tidak harus pergi ke database, memcache
hanya akan mengambil data Anda dari cache berdasarkan ID pengguna Anda.
Kekurangan untuk Menggunakan LAMP
Facebook telah menyadari bahwa ada kerugian untuk menggunakan LAMP
stack. Terutama, PHP tidak selalu bisa dioptimalkan untuk website besar
dan karena itu sulit untuk skala. Juga, itu bukan bahasa tercepat untuk
dijalankan. Dan kerangka ekstensi sulit untuk digunakan.
Mike Schroepfer,
Wakil Presiden Facebook Teknik, baru-baru melakukan wawancara di EmTech
@ MIT tentang ini. “Scaling situs web apapun adalah sebuah tantangan,”
kata Schroepfer, “tapi skala jaringan sosial memiliki tantangan yang
unik.”
Dia melanjutkan dengan mengatakan bahwa tidak seperti situs lain,
Anda tidak bisa hanya menambahkan server lebih untuk memecahkan masalah
karena koneksi Facebook Baru dibuat untuk semua waktu karena aktivitas
pengguna “Dataset besar saling berhubungan besar”.
Facebook telah tumbuh begitu cepat sehingga mereka sering dihadapkan
dengan isu-isu mengenai query database, caching, dan penyimpanan data.
Database mereka sangat besar dan sangat kompleks. Untuk menjelaskan hal
ini, Facebook telah mulai banyak proyek open source dan layanan
backend.
Bagaimana Cara Kerja Facebook? – Back End
Backend layanan 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 / toolset untuk menciptakan layanan dengan mudah
3. Gunakan bahasa pemrograman yang tepat untuk semua tugas
Daftar semua perkembangan open Facebook source dapat ditemukan di sini. Saya akan membahas beberapa alat-alat penting yang telah dikembangkan Facebook.
Thrift (protokol)
Thrift adalah kerangka remote procedure call
lintas bahasa. Thrift mendukung C + +, PHP, Python, Perl, Java, Ruby,
Erlang, dan lain-lain. Ini cepat, menghemat waktu pengembangan, dan
menyediakan pembagian tenaga kerja bekerja pada server dan aplikasi
dengan kinerja tinggi.
Scribe (log server)
Scribe
adalah server untuk menggabungkan data log dialirkan secara real-time
dari server lain. Ini adalah kerangka kerja terukur berguna untuk
menyimpan log beragam data. Hal ini dibangun di atas Thrift.
Cassandra (database)
Cassandra
adalah sistem manajemen database yang dirancang untuk menangani
sejumlah besar data yang tersebar pada banyak server. Ini kekuatan fitur
Kotak Pencarian Facebook dan menyediakan penyimpanan nilai kunci
terstruktur dengan sangat konsisten.
Hiphop untuk PHP
Hiphop untuk PHP
adalah kode sumber transformator untuk kode script PHP dan diciptakan
untuk menghemat sumber daya server. Hiphop mengubah source code PHP ke
dioptimalkan C++. Setelah melakukan hal ini, menggunakan g++ untuk
mengkompilasi ke kode mesin.
Kesimpulan
Singkatnya, itulah Facebook. Artikel ini dengan mudah bisa menjadi
37 halaman lebih lama jika saya harus membahas lebih rinci, namun untuk
menjawab pertanyaan “Bagaimana Facebook bekerja?” Saya pikir ini akan
cukup. Jika Anda melihat masa lalu semua fitur dan inovasi ide utama di
balik Facebook benar-benar sangat mendasar “menjaga orang terhubung”.
Facebook menyadari kekuatan jaringan sosial dan terus berinovasi untuk
menjaga layanan mereka yang terbaik dalam bisnis ini.
0 komentar:
Post a Comment