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. Menurut The Harvard Crimson, situs ini mirip dengan Hot or Not, dan menggunakan "foto yang diperoleh dari Facebook (buku wajah) di sembilan asrama, menempatkan dua foto berdampingan pada satu waktu dan meminta pengguna memilih yang mana yang paling seksi".
Untuk menyelesaikannya, Zuckerberg meretas ke bagian jaringan komputer Harvard yang dilindungi dan menyalin gambar-gambar ID pribadi asrama. Harvard pada waktu itu tidak memiliki "buku wajah" (direktori berisi foto dan informasi dasar) mahasiswa. Facemash menarik 450 pengunjung dan 22.000 tampilan foto pada empat jam pertama mengudara.
Situs ini langsung diteruskan ke beberapa server grup kampus, namun dimatikan beberapa hari kemudian oleh administrasi Harvard. Zuckerberg dihukum karena menembus keamanan kampus, melanggar hak cipta, dan melanggar privasi individu, dan terancam dikeluarkan. Namun, hukuman tersebut dibatalkan. Zuckerberg memperluas proyek awalnya ini pada semester tersebut dengan membuat peralatan studi sosial untuk menghadapi ujian final sejarah seni, dengan mengunggah 500 lukisan Augusta ke situs webnya, dengan satu gambar per halaman disertai kotak komentar. Ia membuka situs tersebut kepada teman sekelasnya, dan mereka mulai saling berbagi catatan.
Pada semester berikutnya, Zuckerberg mulai menulis kode untuk situs web baru pada Januari 2004. Ia terinspirasi, katanya, oleh editorial The Harvard Crimson tentang insiden Facemash. Pada 4 Februari 2004, Zuckerberg meluncurkan "The Facebook" yang awalnya berada di situs web TheFacebook.com.
Keanggotaan awalnya dibatasi kepada mahasiswa Harvard College saja, dan pada bulan pertama, lebih dari setengah mahasiswa sarjana di Harvard terdaftar di situs ini. Eduardo Saverin (pebisnis), Dustin Moskovitz (programer), Andrew McCollum (seniman grafis), dan Chris Hughes segera bergabung dengan Zuckerberg untuk membantu mempromosikan situs web ini. Bulan Maret 2004, Facebook memperluas diri ke Stanford, Columbia, dan Yale. Situs ini kemudian dibuka ke sekolah Ivy League lain, Universitas Boston, Universitas New York, MIT, dan secara perlahan beberapa universitas di Kanada dan Amerika Serikat.
Facebook meluncurkan versi sekolah menengah atas pada September 2005 yang dianggap Zuckerberg sebagai tahap logis selanjutnya. Pada waktu itu, jaringan sekolah menengah membutuhkan undangan untuk bergabung. Facebook kemudian memperluas persyaratan keanggotaannya kepada karyawan dari sejumlah perusahaan, termasuk Apple Inc. dan Microsoft. Facebook kemudian dibuka tanggal 26 September 2006 kepada setiap orang yang berusia 13 tahun dan ke atas dengan alamat surel yang sah.
Lalu lintas ke Facebook meningkat stabil setelah 2009. Jumlah pengunjung Facebook mengalahkan Google pada 13 Maret 2010. Facebook juga menjadi jejaring sosial teratas dari delapan pasar perorangan di Asia, yaitu Filipina, Australia, Indonesia, Malaysia, Singapura, Selandia Baru, Hong Kong dan Vietnam, sementara merek lain masih mempertahankan posisi teratas mereka di beberapa pasar, termasuk Orkut milik Google di India, Mixi.jp di Jepang, CyWorld di Korea Selatan, dan Wretch.cc milik Yahoo! di Taiwan.
Konsep yang digunakan pada Facebook
Media sering memperbandingkan Facebook dengan MySpace, namun satu perbedaan utama di antara kedua situs tersebut adalah tingkat kustomisasinya. Perbedaan lainnya adalah persyaratan Facebook agar pengguna dapat mengatur identitas asli mereka, dan langkah tersebut tidak diterapkan di MySpace. MySpace mengizinkan pengguna mendekorasi profil mereka menggunakan HTML dan Cascading Style Sheets (CSS), sementara Facebook hanya mengizinkan teks mentah. Facebook memiliki sejumlah fitur yang dapat berinteraksi dengan pengguna. Salah satunya adalah Dinding, kotak di setiap halaman profil pengguna yang mengizinkan teman mereka mengirimkan pesan kepada pengguna tersebut; Colek, yang memungkinkan pengguna mengirimkan "colekan" virtual satu sama lain (pemberitahuan memberitahu pengguna bahwa mereka telah dicolek); Foto, tempat pengguna dapat mengunggah album dan foto; dan Status, yang memungkinkan pengguna untuk memberitahukan teman mereka mengenai keberadaan dan tindakan mereka saat itu. Tergantung pengaturan privasinya, setiap orang yang dapat melihat sebuah profil pengguna dapat juga melihat Dinding pengguna. Bulan Juli 2007, Facebook mulai mengizinkan pengguna mengirimkan lampiran di Dinding, berbeda dari Dinding sebelumnya yang terbatas pada konten teks saja.
Sepanjang waktu, Facebook menambahkan fitur ke situsnya. Pada 6 September 2006, News Feed diluncurkan yang ditempatkan di setiap halaman utama pengguna dan memberitahukan informasi seperti perubahan profil, acara berikutnya, dan ulang tahun teman pengguna. Hal ini memungkinkan pengirim spam dan pengguna lain memainipulasi fitur-fitur tersebut dengan membuat acara bohong atau ulang tahun bohong demi menarik perhatian ke profil atau kampanye tersebut. Awalnya, News Feed memunculkan ketidakpuasan di antara pengguna Facebook; sejumlah di antaranya mengeluh karena terlalu berantakan dan penuh dengan informasi yang tidak perlu, sementara pengguna lain menganggapnya mudah bagi pengguna untuk melacak aktivitas seseorang (seperti perubahan status hubungan, acara, dan percakapan dengan pengguna lain).
Facebook Notes diperkenalkan pada 22 Agustus 2006, sebuah fitur blog yang mengizinkan tag dan penanaman gambar. Pengguna dapat mengimpor blog dari Xanga, LiveJournal, Blogger, dan layanan blog lain. Sepanjang minggu 7 April 2008, Facebook merilis aplikasi pesan instan berbasis Comet bernama "Chat" ke sejumlah profil, yang mengizinkan pengguna berkomunikasi dengan teman dan fungsinya sama seperti pengantar pesan instan berbasis desktop.
Facebook meluncurkan Gifts pada 8 Februari 2007 yang memungkinkan pengguna mengirimkan hadiah virtual kepada temannya yang muncul di profil penerima. Masing-masing hadiah berharga $1,00 dan pesan pribadi dapat disertakan pada setiap hadiah. Tanggal 14 Mei 2007, Facebook meluncurkan Marketplace, yang memungkinkan pengguna mengirimkan iklan pendek gratis. Marketplace telah dibanding-bandingkan dengan Craigslist oleh CNET, yang menunjukkan bahwa perbedaan utama antara keduanya adalah daftar yang dikirimkan pengguna di Marketplace hanya bisa dilihat oleh pengguna yang berada di jaringan yang sama seperti pengguna tersebut, sementara daftar yang dikirimkan di Craigslist dapat dilihat oleh semua orang.
Tanggal 13 Juni 2009, Facebook memperkenalkan fitur "Usernames", yaitu halaman-halaman dapat ditautkan menggunakan
URL yang lebih simpel seperti
http://www.facebook.com/facebook
dibandingkan dengan
http://www.facebook.com/profile.php?id=20531316728
. Banyak telepon pintar baru menawarkan akses ke Facebook melalui peramban web atau aplikasi mereka. Aplikasi Facebook yang resmi diluncurkan untuk iPhone OS, Android OS, dan WebOS. Nokia dan Research In Motion menyediakan aplikasi Facebook pada telepon genggam mereka. Lebih dari 150 juta pengguna aktif mengakses Facebook melalui telepon genggam yang terdaftar pada 200 operator di 60 negara.
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, surel, dan pesan reguler, dan akan meliputi pengaturan privasi sama seperti layanan Facebook. Dijuluki "Project Titan", Facebook Messages memakan 15 bulan dalam pengembangannya.
Teknologi Yang Digunakan pada Facebook
Facebook melayani 570 miliar tampilan halaman per bulan (menurut Google Ad Planner). Foto di Facebook lebih banyak daripada gabungan semua situs foto lainnya. Lebih dari 3 milyar foto di-upload setiap bulannya. Facebook melayani 1,2 juta foto per detik. Ini tidak termasuk gambar dilayani oleh CDN Facebook. Lebih dari 25 miliar konten (status update, komentar, dll) yang di-share setiap bulan. Facebook memiliki lebih dari 30.000 server (jumlah ini adalah data tahun lalu!).
Dalam beberapa hal Facebook masih merupakan situs yang berbasis LAMP (sejenisnya), namun diubah dan diperluas operasinya dengan memasukkan banyak elemen dan layanan lain, dan dimodifikasi pendekatannya menjadi seperti yang ada saat ini.
Sebagai contoh:
* Facebook masih menggunakan PHP, tetapi telah dibuat compilernya sehingga dapat diubah menjadi kode asli pada server webnya, sehingga meningkatkan kinerja.
* Facebook menggunakan Linux, tetapi telah dioptimalkan untuk keperluan sendiri (terutama dalam hal jaringan).
* Facebook menggunakan MySQL, tetapi terutama sebagai key-value persistent storage, moving joins and logic ke server web karena optimasinya lebih mudah dilakukan di sana (di “sisi lain” dari memcached).
Lalu ada custom-written systems, seperti Haystack, sebuah object store yang sangat scalable digunakan untuk melayani foto-foto di Facebook yang banyak sekali, atau Scribe, sistem logging yang dapat beroperasi pada skala Facebook.
Software yang digunakan dalam Facebook
· 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 (disebut “pagelets” untuk menghasilkan kinerja yang optimal.
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.
· 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.