Facebook’un arkasında ne var?
Facebook, -şöhreti, getirdikleri ve hakkındaki iddialar bir yana- sonuçta bir yazılım… Bu kadar çok kullanılan bir uygulamanın arkaplanında ve teknik altyapısında neler var?
Önce birkaç istatistik… (Facebook sayfasından)
- Siteye ortalama her gün 250 bin yeni kayıt oluyor.
- Ayda ortalama 65 milyar sayfa gösterimi var.
- Kullanıcıların en az yarısı her gün giriyor.
- Dünya’nın en çok kullanılan fotoÄŸraf paylaşım uygulaması… En yakın üç rakibinin toplamından daha fazla resim gösterimi yapılıyor.
- Facebook platformunu kullanan 7 binden fazla uygulama yazılmış. Her gün yüzden fazla yeni uygulama ekleniyor.
Teknik altyapıya gelince…
- Neredeyse tamamen açık kaynaklı uygulamalar kullanılmış.
- Yazım dili PHP. Arka planda çalışan bazı uygulamalar Java, Python ve Perl kullanıyor. Ayrıca C++ uyumlu uygulamalar için gcc ve Boost kütüphaneleri kullanılmış. Yine, c++ uygulamalarının daha sağlıklı çalışması için kendileri phpembed adlı bir kütüphane yazmışlar.
- Sunucularda Linux yüklü. Web server olarak Apache kullanılıyor. Dünyanın her yerinde hızlı çalışması için içeriğin çoğunu Akamai sunucularında tutuyorlar.
- Sistemde 2 milyardan fazla fotoÄŸraf dosyası yüklü. Bunlar diskte yaklaşık 200 terabyte yer tutuyor. Kullanıcılar her hafta 80 milyon civarında resim yüklüyor. Her fotoÄŸraf için 4 ayrı boy tutulduÄŸundan, bu 300 milyondan fazla resim dosyası demek. OluÅŸan yoÄŸunluÄŸu karşılayabilmek için, yüklenen fotoÄŸrafları iÅŸleyen bir çok sunucu var. Ayrıca bir grup sunucu, iÅŸlenmiÅŸ fotoÄŸrafları Akamai’ye gönderiyor. Bazı fotoÄŸrafları tutmak üzere kendi dosya sunucuları da var.
- Veritabanı olarak MySQL kullanılıyor. Birbirine bağlı binlerce MySQL veritabanları var.
- Veritabanından bilgi çekmek çok yavaş olduğu için cache (önbellek) mekanizması kullanılıyor. memcached isimli açık kaynaklı uygulamayı kendi yazdıkları kodlarla geliştirmişler. (detaylı bilgi)
- Sitenin neredeyse belkemiÄŸi bu uygulama. Kullanıcı profillerini, arkadaÅŸ bilgilerini, uygulamaları hep önbellekte (RAM’de) tutuyor ve çok hızlı gelmesini saÄŸlıyorlar.
- 400′den fazla memcached sunucusu var.
- 5 Terabyte’dan fazla RAM önbellekleme için kullanılıyor.
- memcached sorgularının daha hızlı çalışması için TCP yerine UDP portunu kullanmışlar.
- Ayrıca APC kütüphanesini kullanarak sayfa görüntülemeyi 30 kat hızlandırmışlar.
- Kendi yazdıkları site içi arama motorunu kullanıyorlar. Ayda 1 milyara yakın arama yapılıyor. Önbellek için 2 terabyte civarında RAM ayrılmış. Ortalama sonuç süresi 100 milisaniye civarında imiş.
- Yazdıkları kodu yerinde debug etmek için phpsh adlı bir komut satırı kütüphanesi yazmışlar. Ana bilgisayara yükleyip bağlandığınızda komut satırından php kodları yazıp çıktısını görüyorsunuz.
- Versiyon yönetimi için Subversion ve git kullanıyorlar.
Yani, Facebook olmak istiyorsanız altyapınızı da ona göre kuracaksınız.
Yorumlar
Yazı hakkında ne dediler?
Link Verenler
Bu yazıdan bahseden Internet siteleri...
adamlar cidden güzel yapmışlar. sonunda da başarı geliyor tabi:)
Merhabalar Bilal Bey,
Bu detaylı paylaşım için gerçekten teÅŸekkürler, çünkü “önce altyapı sonra oluÅŸum” terminolojisi apaçık ortaya çıkıyor bu anlatımınızla Facebook’ta.
Ayrıca yazılım dünyasında üst seviye projelerin çoğunda pek tercih edilmeyen php ve mysql in bu projede böyle bir altyapı ile kullanılması platformlar için çok iyi bir referans bence.
Paylaşımınıza sağlık,
Sevgi ve Saygılarımla.
ÅŸaşırdım kaldım….
güzel araştırma olmuş kendilerimi vermiş bu bilgiyi ?
Yazı güzel, ama resim guvenlik dogrulaması daha guzel. Rapidin yeni resim guvenlik dogrulama uygulaması berbat.Hangi rakamda kedi var, hangisinde yok seçene kadar canım çıktıııı…
paylaşımın için saol..Peki Facebook’un arkasında kimin olduÄŸunu biliyor musunuz? 400 sunucudan bahsediliyor az deÄŸil.. Ayrıca yazılan yazılımlar kaliteli, ayrıca geliÅŸtirme de yapmÅŸlar.. tahmini olan var mı?