İlan
Sosyal ağ, ortak çıkarları paylaşanlarla bağlantı kurma sanatıdır. “WorkAğınız” başkalarıyla birleşmenize yardımcı olan ve birçok avantaj sunan bir topluluktur. Sosyal medya siteleri aracılığıyla ağ kurmak, interneti kullanma şeklimizde devrim yarattı ve şu anda Web 2.0 dediğimiz şeyin ön saflarında yer alıyor.
Facebook dır-dir sosyal ağ. İnsanlar yaklaşık 6 yıldır birbirlerini "facebook'luyorlar" Facebook dünya çapında 350 milyondan fazla kullanıcısı olan en çok kullanılan sosyal ağ. Peki Facebook nasıl çalışır?
Bu makalede, Facebook’un iç işleyişini tartışacağım. mimari ve ön uç / arka uç altyapısı ””.
Facebook Nasıl Çalışır? ”” Kullanıcı Arayüzü
Facebook, temel altyapısını oluşturmak için çeşitli hizmetler, araçlar ve programlama dilleri kullanır. Ön uçta, sunucuları Memcache ile bir LAMP (Linux, Apache, MySQL ve PHP) yığını çalıştırır. Bilgisayar bilimi uzmanı değil misiniz? Bunun tam olarak ne anlama geldiğine bakalım.
Linux ve Apache
Bu kısım oldukça açıklayıcı. Linux Unix benzeri bir bilgisayar işletim sistemi çekirdeğidir. Açık kaynak, çok özelleştirilebilir ve güvenlik için iyidir. Facebook, Linux işletim sistemini Apache HTTP Sunucuları üzerinde çalıştırıyor.
Apaçi ayrıca ücretsizdir ve kullanımda en popüler açık kaynaklı web sunucusudur.MySQL
Veritabanı için Facebook, hızı ve güvenilirliği nedeniyle MySQL kullanıyor. MySQL veri büyük bir mantıksal örnek kümesi arasında rasgele dağıtıldığından, öncelikle bir anahtar / değer deposu olarak kullanılır. Bu mantıksal örnekler fiziksel düğümlere yayılır ve yük dengeleme fiziksel düğüm düzeyinde yapılır.
Özelleştirmeler söz konusu olduğunda, Facebook tüm verilere genel bir kimlik atandığı özel bir bölümleme planı geliştirdi. Ayrıca, her kullanıcı için ne sıklıkta ve yakın zamanda verilere dayalı özel bir arşivleme şemasına da sahiptir. Verilerin çoğu rastgele dağıtılır.
PHP
Facebook PHP'yi kullanıyor çünkü kapsamlı destek ve aktif bir geliştirici topluluğu ile iyi bir web programlama dili ve hızlı yineleme için iyi. PHP dinamik olarak yazılmış / yorumlanmış bir betik dilidir.
memcache
memcache okuma süresini azaltmak için RAM'deki verileri ve nesneleri önbelleğe alarak dinamik veritabanı güdümlü web sitelerini (Facebook gibi) hızlandırmak için kullanılan bir bellek önbellek sistemidir. Memcache, Facebook’un birincil önbellekleme biçimidir ve veritabanı yükünü hafifletmeye yardımcı olur.
Önbellek sistemine sahip olmak, Facebook'un verilerinizi hatırlamadaki kadar hızlı olmasını sağlar. Veritabanına gitmek zorunda değilse, verilerinizi kullanıcı kimliğinize göre önbellekten alır.
LAMBA Kullanmanın Dezavantajları
Facebook, LAMP yığınını kullanmanın dezavantajları olduğunu fark etti. Özellikle, PHP büyük web siteleri için mutlaka optimize edilmemiştir ve bu nedenle ölçeklendirilmesi zordur. Ayrıca, en hızlı yürütme dili değildir ve uzantı çerçevesinin kullanımı zordur.
Facebook’un Mühendislik Başkan Yardımcısı Mike Schroepfer geçtiğimiz günlerde EmTech @ MİT bununla ilgili. Schroepfer, “Herhangi bir web sitesini ölçeklendirmek zor bir iştir,” dedi.
Diğer web sitelerinden farklı olarak, sorunu çözmek için daha fazla sunucu ekleyemeyeceğinizi söyledi. Facebook’un “birbirine bağlı büyük veri kümesi” nin Kullanıcı etkinliği nedeniyle her zaman yeni bağlantılar oluşturulur.
Facebook o kadar hızlı büyüdü ki, genellikle veritabanı sorguları, önbellekleme ve veri depolama ile ilgili sorunlarla karşılaşıyorlar. Veritabanı çok büyük ve büyük ölçüde karmaşık. Bunu hesaba katmak için, Facebook birçok açık kaynaklı proje ve arka uç hizmeti başlattı.
Facebook Nasıl Çalışır? ”” Arka Uç
Facebook’un arka uç hizmetleri C ++, Java, Python ve Erlang gibi çeşitli programlama dillerinde yazılmıştır. Hizmet yaratma felsefeleri aşağıdaki gibidir:
1. Hizmet oluşturma gerekirse
2. Hizmetlerin daha kolay oluşturulması için bir çerçeve / araç seti oluşturun
3. Görev için doğru programlama dilini kullanın
Facebook’un tüm açık kaynak geliştirmelerinin bir listesini burada bulabilirsiniz. Facebook'un geliştirdiği önemli araçlardan birkaçını tartışacağım.
Tasarruf (protokol)
tutumluluk ölçeklenebilir diller arası hizmet geliştirme için hafif bir uzaktan yordam çağrısı çerçevesidir. Thrift, C ++, PHP, Python, Perl, Java, Ruby, Erlang ve diğerlerini destekler. Hızlıdır, geliştirme süresinden tasarruf sağlar ve yüksek performanslı sunucular ve uygulamalarda iş bölümü sunar.
Scribe (günlük sunucusu)
çizici diğer birçok sunucudan gerçek zamanlı olarak yayınlanan günlük verilerinin toplanması için bir sunucudur. Geniş bir veri dizisini günlüğe kaydetmek için kullanışlı ölçeklenebilir bir çerçevedir. Thrift'in üzerine inşa edilmiştir.
Cassandra (veritabanı)
kötü olayları önceden haber veren kimse birçok sunucuya dağılmış büyük miktarda veriyi işlemek için tasarlanmış bir veritabanı yönetim sistemidir. Facebook’un Gelen Kutusu Arama özelliğini destekler ve nihai tutarlılığa sahip yapılandırılmış bir anahtar / değer deposu sağlar.
PHP için HipHop
PHP için HipHop PHP kod kodu için bir kaynak kodu dönüştürücüsüdür ve sunucu kaynaklarını kaydetmek için oluşturulmuştur. HipHop, PHP kaynak kodunu optimize edilmiş C ++ 'a dönüştürür. Bunu yaptıktan sonra, makine koduna derlemek için g ++ kullanır.
Sonuç
Özetle, bu Facebook. Daha ayrıntılı olarak ele alırsam, ancak “Facebook nasıl çalışır?” Sorusuna cevap verirsem bu makale kolayca 37 sayfa daha uzun olabilir. Tüm özelliklerin ve yeniliklerin geçmişine bakarsanız Facebook'un arkasındaki ana fikir gerçekten çok temel ””. Facebook, sosyal ağların gücünü fark ediyor ve hizmetlerini sektörde en iyi tutmak için sürekli yenilikler yapıyor.
Bu makaleyi faydalı buldunuz mu? Düşüncelerinizi, yorumlarınızı ve fikirlerinizi aşağıya bırakın!
VaynerMedia Topluluk Yöneticisi Steve, sosyal medya ve marka oluşturma konusunda tutkulu.