17 Maret 2012

IT'S ABOUT FACEBOOK

Mungkin dari berapa banyaknya jejaring sosial (Social Network) yang paling sering kita dengar seperti Facebook,Twitter dan MySpace, dan masih banyak lagi jejaring sosial yang lainnya yang mungkin jarang anda ketahui. Tetapi saya tidak akan menjelaskan tentang hal tersebut, di sini saya akan menjelaskan tentang sejarah singkat mengenai facebook, kemudian konsep apa yang digunakan dan teknologi apa saja yang ada pada facebook.

Sejarah Singkat tentang facebook

Facebook adalah sebuah layanan jejaring sosial dan situs web yang diluncurkan pada Februari 2004 yang dioperasikan dan dimiliki oleh Facebook, Inc. Pada Januari 2011, Facebook memiliki lebih dari 600 juta pengguna aktif. Pengguna dapat membuat profil pribadi, menambahkan pengguna lain sebagai teman dan bertukar pesan, termasuk pemberitahuan otomatis ketika mereka memperbarui profilnya. Selain itu, pengguna dapat bergabung dengan grup pengguna yang memiliki tujuan tertentu, diurutkan berdasarkan tempat kerja, sekolah, perguruan tinggi, atau karakteristik lainnya. Nama layanan ini berasal dari nama buku yang diberikan kepada mahasiswa pada tahun akademik pertama oleh administrasi universitas di AS dengan tujuan membantu mahasiswa mengenal satu sama lain. Facebook memungkinkan setiap orang berusia minimal 13 tahun menjadi pengguna terdaftar di situs ini.
Facebook didirikan oleh Mark Zuckerberg bersama teman sekamarnya dan sesama mahasiswa ilmu komputer Eduardo Saverin, Dustin Moskovitz dan Chris Hughes. Keanggotaan situs web ini awalnya terbatas untuk mahasiswa Harvard saja, kemudian diperluas ke perguruan lain di Boston, Ivy League, dan Universitas Stanford. Situs ini secara perlahan membuka diri kepada mahasiswa di universitas lain sebelum dibuka untuk siswa sekolah menengah atas, dan akhirnya untuk setiap orang yang berusia minimal 13 tahun. Mark Zuckerberg menciptakan Facemash, pendahulu Facebook, tanggal 28 Oktober 2003 ketika berada di Harvard sebagai mahasiswa tahun kedua.

Konsep yang digunakan pada facebook

Chat

Ini adalah fitur pada facebook untuk chatting ke sesama teman atau pengguna facebook.

 

Messages and Inbox


Sejak Facebook didirikan, mereka telah mengizinkan pengguna mengirim pesan satu sama lain. Seorang pengguna Facebook dapat mengirimkan pesan ke siapapun sekali waktu. Menghapus pesan dari kotak masuk seseorang tidak menghapusnya dari kotak masuk pengguna lain, serta mencegah pengirim mengirim ulang pesan yang dikirim olehnya.
Tanggal 15 November 2010, Facebook mengumumkan layanan "Facebook Messages" baru. Pada media hari itu, CEO Mark Zuckeberg mengatakan, "memang benar bahwa seseorang dapat memperoleh alamat surel @facebook.com, namun itu bukan surel." Peluncuran fitur tersebut telah diantisipasi sementara waktu sebelum pengumuman ini, dengan sejumlah pengamat menyebutnya sebagai "pembunuh Gmail". Sistem ini, yang akan diluncurkan kepada semua pengguna situs tersebut, menggabungkan pesan teks, pesan instan, dan pesan reguler, dan akan meliputi pengaturan privasi sama seperti layanan Facebook.

 

Networks, Groups, and Like Pages

Ini adalah fitur yang berhubungan jika sesama pengguna facebook  memiliki kesamaan dalam hal apapun, contohnya adalah grup teman sekelas, karena untuk lebih mudah menyampaikan informasi.

 

News Feed

Ini adalah fitur jika ada berita terbaru atau status update yang baru muncul dan bersifat umum.  

 

Notifications

Ini adalah fitur jika ada berita terbaru atau status update yang baru muncul dan berhubungan dengan si pengguna.  

 

Poke dan Likes

Fitur colek ditujukan sebagai "dorongan" untuk menarik perhatian pengguna lain.
Fitur likes adalah jika si pengguna menyukai status orang lain.

Status Updates

Facebook memiliki fitur bernama "status updates" (atau "status" saja) yang memungkinkan pengguna mengirimkan pesan ke semua teman mereka agar dapat dibaca.

 

URL shortener

Ini adalah fitur untuk meletakkan url yang singkat

 

Usernames & Pasword

Ini adalah fitur yang ada saat pengguna login ke dalam facebook.

 

Wall

Dinding adalah ruang di setiap halaman profil pengguna yang memungkinkan teman-teman mengirimkan pesan ke pengguna agar dibaca sekaligus menampilkan waktu dan tanggal pesan ditulis.



Teknologi yang digunakan di facebook

Membahas tentang teknologi yang digunakan, mungkin saya akan lebih menjelaskan software apa saja yang di gunakan. Dan berikut penjelasannya.

Memcached

Memcached saat ini menjadi salah satu perangkat lunak paling terkenal di internet. Ia merupakan sistem caching memori terdistribusi yang digunakan Facebook (dan banyak situs lainnya) sebagai lapisan caching antara server web dan server MySQL (karena akses database relatif lambat).Selama bertahun-tahun, Facebook telah berkali-kali melakukan optimasi pada memcached dan perangkat lunak sekitarnya (seperti mengoptimalkan penumpukan jaringan).Facebook menjalankan ribuan server memcached dengan puluhan terabyte data cache pada satu titik waktu. Kemungkinan ini merupakan instalasi memcached terbesar di dunia.

HipHop for PHP

PHP, sebagai scripting language, relatif lambat bila dibandingkan dengan kode yang berjalan secara native di server. HipHop mengubah PHP menjadi kode C++ yang kemudian dapat dikompilasi untuk menghasilkan performa yang lebih baik.

Hal ini telah memungkinkan Facebook untuk mengoptimalkan server webnya karena ia sangat bergantung pada PHP untuk melayani konten.

Sebuah tim kecil engineer (awalnya hanya tiga orang) di Facebook menghabiskan 18 bulan mengembangkan HipHop, dan sekarang telah di produksi.

Haystack

Haystack adalah sistem penyimpanan/pencarian foto berkinerja tinggi pada Facebook (Sesungguhnya Haystack adalah sebuah penyimpanan object, sehingga tidak menyimpan foto). Ia mengerjakan kerja berat, ada lebih dari 20 miliar foto yang diunggah di Facebook, dan masing-masing disimpan dalam empat resolusi yang berbeda, menghasilkan lebih dari 80 miliar foto.

Dan hal tersebut bukan hanya tentang kemampuan menangani miliaran foto, kinerja juga sangatlah penting. Seperti yang telah disebutkan sebelumnya, Facebook melayani sekitar 1,2 juta foto per detik, angka yang tidak termasuk gambar/foto dilayani oleh CDN Facebook.

BigPipe

BigPipe adalah sistem layanan halaman web dinamis yang dikembangkan oleh Facebook. Facebook menggunakannya untuk melayani setiap halaman web dalam beberapa bagian Misalnya, jendela chat diambil secara terpisah, feed berita diambil secara terpisah, dan seterusnya. Pagelets ini dapat diambil secara paralel, sehingga kenerja tetap terjaga, dan juga memungkinkan user mengakses situs dengan baik meskipun beberapa bagian dinonaktifkan atau rusak.

Cassandra

Cassandra adalah sistem open source yang berfungsi sebagai menejemen database terdistribusi. Facebook kemudian mengembangkannya dengan NoSQL dan menggunakannya untuk fitur Inbox Search. Selain facebook, sejumlah layanan lain juga menggunakannya, misalnya Digg.


Scribe

Scribe adalah sistem logging fleksibel yang digunakan secara internal oleh Facebook untuk banyak tujuan. Ia dikembangkan untuk menangani logging pada Facebook, dan secara otomatis menangani kategori logging baru yang muncul.


Hadoop dan Hive
 
Hadoop adalah implementasi map-reduce open source yang memungkinkan untuk melakukan perhitungan data dalam jumlah besar. Facebook menggunakannya untuk analisis data (dan seperti yang kita ketahui, Facebook memiliki data dalam jumlah yang besar).

Hive dikembangkan oleh Facebook, dan dengannya dimungkinkan untuk menggunakan query SQL terhadap Hadoop, sehingga lebih mudah bagi non-programmer untuk menggunakannya.

Baik Hadoop dan Hive adalah open source dan digunakan oleh sejumlah layanan besar, misalnya Yahoo dan Twitter.


Thrift
 
Facebook menggunakan beberapa bahasa yang berbeda untuk beberapa layanannya. PHP digunakan untuk front-end, Erlang digunakan untuk Chat, Java dan C + + juga digunakan di beberapa tempat (dan mungkin bahasa lainnya juga).

Thrift adalah cross-language framework yang dikembangkan secara internal untuk mengikat semua bahasa yang berbeda tersebut, sehingga memungkinkan komunikasi antar bahasa tersebut. Hal ini memudahkan Facebook untuk pengembangan lintas-bahasanya.


Varnish

Varnish adalah akselerator HTTP yang bertindak sebagai penyeimbang beban dan juga konten cache yang kemudian dapat dilayani secepat kilat. Facebook menggunakan Varnish untuk melayani foto dan gambar profil, penanganan miliaran permintaan setiap hari. Seperti hampir semua yang digunakan Facebook, Varnish adalah open source.

Hal-hal lain yang membantu Facebook berjalan lancar

Kita telah menyebutkan beberapa perangkat lunak yang membangun sistem Facebook dan membantu layanannya dengan benar. Tetapi penanganan sistem sebesar itu merupakan tugas yang kompleks. Berikut adalah hal-hal yang dilakukan Facebook untuk menjaga agar layanannya tetap berjalan lancar.


Gradual releases and dark launches

Facebook memiliki sistem yang mereka sebut Gatekeeper yang memungkinkan mereka menjalankan kode yang berbeda untuk sekumpulan pengguna yang berbeda. Ini memungkinkan Facebook untuk melakukan rilis bertahap fitur-fitus baru, pengujian A/B, mengaktifkan fitur tertentu hanya untuk karyawan Facebook, dll.

Gatekeeper juga memungkinkan Facebook untuk melakukan sesuatu yang disebut “dark launches”, yaitu untuk mengaktifkan unsur-unsur dari fitur tertentu di balik layar sebelum ditayangkan (tanpa sepengetahuan pengguna).

Hal ini berfungsi sebagai tes nyata dan membantu mengekspos kemacetan dan masalah-masalah lain sebelum fitur tersebut secara resmi diluncurkan. Dark launches biasanya dilakukan dua minggu sebelum peluncuran resmi.


Profiling of the live system

 
Facebook memonitor sistemnya secara cermat dan juga memantau kinerja setiap fungsi PHP dalam live production environment. Profiling PHP ini dilakukan dengan menggunakan sebuah tool open source yang bernama XHProf.


Gradual feature disabling for added performance

 
Jika Facebook mengalami masalah kinerja, ada sejumlah tuas yang secara bertahap menonaktifkan fitur kurang penting untuk meningkatkan kinerja fitur utama Facebook.

Kalau kita perhatikan, ternyata Facebook banyak menggunaka open source untuk membangun sistemnya. Tidak hanya menggunakan, Facebook juga memberikan kontribusi untuk perangkat lunak open source seperti Linux, memcached, MySQL, Hadoop, dan lainnya.
Lebih daripada itu, Facebook juga menjadikan software-software yang dikembangkan secara internal oleh mereka sebagai open source. Contoh proyek open source yang berasal dari Facebook adalah HipHop, Cassandra, Thrift dan Scribe.

Daftar software open source di mana Facebook terlibat dalam pengembangannya dapat di lihat di halaman Facebook’s Open Source.


Semoga berguna bagi yang membacanya.....



            


Tidak ada komentar:

Posting Komentar