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.
adamlar cidden güzel yapmýþlar. sonunda da baþarý geliyor tabi:)
[...] http://www.bilalakcay.com yazmış tıklayınız [...]
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ý?