Yanıtlar:
Çok basit bir kurulumda, bir DNS girişi bir sunucuya ait olan bir IP'ye gider. Dünyadaki herkes o tek makineye gidiyor. Yeterli trafik olduğunda, YouTube’un boyutuna gelmeden çok önce başa çıkmak için çok fazla. Basit bir senaryoda, bir yük dengeleyici ekliyoruz. Yük dengeleyicinin görevi, trafiği tek bir sunucu olarak belirirken çeşitli arka uç sunucularına yönlendirmektir.
YouTube'da olduğu kadar çok veri bulunduğundan, tüm sunucuların tüm videolara hizmet vermesini beklemek çok fazla olurdu, bu nedenle eklemek için başka bir indirme katmanımız var : paylaşma . Tartışmalı bir örnekte, bir sunucu "A" ile başlayan, bir diğeri "B" vb. İle başlayan her şeyden sorumludur.
Sonunda, bant genişliği daha da yoğunlaşıyor ve bir odaya LOT veri taşıyorsunuz. Şimdi süper popüler olduğumuz için onu o odadan uzaklaştırıyoruz. Burada önemli olan iki teknoloji, İçerik Dağıtım Ağları ve Anycasting'dir .
Dünyanın her yerinde bu büyük statik dosyaların istendiği yerde, barındırma sunucularımın doğrudan bağlantılarını işaretlemeyi bırakıyorum. Bunun yerine, CDN sunucuma bir bağlantı koymak. Birisi bir videoyu izlemeyi istediğinde, CDN sunucumdan ister. CDN zaten videoya sahip olmak, barındırma sunucusundan bir kopya istemek veya beni yönlendirmekten sorumludur. Bu ağın mimarisine göre değişecektir.
Bu CDN nasıl yardımcı olur? Aslında, bir IP aslında dünyanın birçok yerinde bulunan birçok sunucuya ait olabilir. İsteğiniz bilgisayarınızı terk ettiğinde ve ISS'nize gittiğinde, yönlendiricileri bu IP'ye giden en iyi yolu (en kısa, en hızlı, en düşük maliyetli ... ne olursa olsun) eşler. Genellikle bir CDN için, en yakın Tier 1 ağınızın yanında veya yanında olacaktır .
Bu yüzden YouTube'dan bir video istedim. Depolandığı asıl makine en azından
iad09s12.v12.lscache8.c.youtube.comve
tc.v19.cache5.c.youtube.com. Bunlar web sayfamın kaynağında gözüküyor ve bir tür indeksleme sunucusu tarafından sağlandı. Şimdi, Maine'den, tc19 sunucusunun Miama, Florida'da olduğunu gördüm. Washington’dan, tc19 sunucusunu San Jose, Kaliforniya’da buldum.
Büyük siteler için çeşitli teknikler kullanılır.
www.youtube.com-> herhangi bir sayıda IP adresi
DNS’e bakalım:
www.youtube.com is an alias for youtube-ui.l.google.com. youtube-ui.l.google.com has address 188.8.131.52 youtube-ui.l.google.com has address 184.108.40.206 youtube-ui.l.google.com has address 220.127.116.11 youtube-ui.l.google.com has address 18.104.22.168 youtube-ui.l.google.com has address 22.214.171.124 youtube-ui.l.google.com has address 126.96.36.199 youtube-ui.l.google.com has address 188.8.131.52 youtube-ui.l.google.com has address 184.108.40.206 youtube-ui.l.google.com has address 220.127.116.11 youtube-ui.l.google.com has address 18.104.22.168 youtube-ui.l.google.com has address 22.214.171.124 youtube-ui.l.google.com has IPv6 address 2001:4860:800f::88
Böylece www.youtube.com aslında birkaç IP adresine gidebilir.
Tek bir IP, herhangi bir sayıda Özerk Sistem tarafından (İnternet üzerinden bir Ağ) aynı anda ele alınabilir. Örneğin, kök DNS sunucularının birçoğu ve Google’ın
126.96.36.199DNS sunucusu, dünyanın dört bir yanındaki herhangi bir noktadan yayınlanmaktadır. Fikir şu ki, ABD’de iseniz, ABD ağına ve İngiltere’nde iseniz, Birleşik Krallık ağına çarpmışsınızdır.
Sadece açık olduğunuz için
www.youtube.com, bu, tüm içeriğin aynı sunucudan gelmesi gerektiği anlamına gelmez. Bu sitede haklar
sstatic.netyerine statik kaynaklar kullanılıyor
serverfault.com.
Örneğin, Kaley Cuoco'nun Slave Leia PSA'sını izlersek , medyanın hizmet ettiğini görürüz
v10.lscache5.c.youtube.com.
Sizi temin ederim, Youtube'un birden fazla internet bağlantısı var. Diğer tüm tekniklere rağmen, Youtube gerçekten tek bir site ve tek bir sunucu olsa bile, teorik olarak video sunmakta olduğu diğer tüm ağlarla da bağlantı kurabiliyordu. Gerçek dünyada elbette mümkün değil, ama fikri düşün.
Bu fikirlerin herhangi biri veya tümü (ve daha fazlası!) Bir İçerik Dağıtım Ağı'nı desteklemek için kullanılabilir . Daha fazla bilgi edinmek istiyorsanız bu makaleyi okuyun.
YouTube’un (yani Google’ın) yalnızca bir sunucusu olduğunu hayal etmek yanlıştır; Bu bilgiler , bu hizmeti destekleyen sistemin ölçeğini göstermeye yardımcı olabilir.
Yalnızca tek bir varlık noktanız olsa bile, kesinlikle yük dengeleyici ve benzeri araçlar kullanarak tek bir adın arkasında birden fazla sunucuya ve hatta IP'ye sahip olabilirsiniz.
Yine de Google’ın çok fazla ilgi çekici noktası var ve İnternet’te birden fazla yerde aynı IP’yi yayınlama tekniği olan AnyCast gibi araçları kullanın ve insanların altyapıyı desteklemek için en yakın sunucu havuzuna yönlendirmelerini sağlayın.
Bazı şeylerin ağ tarafına biraz dokunacağım: Google’ın dünyadaki 73 benzersiz veri merkezinde (kendileri dahil değil) bir Varlık Noktası (PoP) var. Onlar 69 benzersiz İnternet alışverişinin bir üyesidir . Google peeringdb'de listelenen diğer ağlardan daha fazla veri merkezinde ve Internet Exchange noktasında.
Google’ın toplam internet değişim kapasitesi> 1.5Tbps’dir ve 1.5Tbps’in, Google’da> 100Mbps trafiği olan ancak 2-3Gbps civarında tahmin ettiğimden daha az olduğu ağlar için ayrılmıştır. Sahip sonra 'yeterli hacim' , sen özel bakarken (PNI) taşınır.
Internet Exchange eşleştirme ve özel eşleşmeye ek olarak (AS15169 ile), YouTube ayrıca bir transit ağ da işletmektedir: AS43515 ve benim ödediğim başka bir ağ, AS36040 ücretli perakendecilik / taşma içindir. Google ayrıca faaliyet Google Global Cache ISS'ler kendi ağı içinde daha da lokal olarak dağıtmak için, sunucular. (Peeringdb'deki veriler, bgp.he.net).
Deneyimlerime dayanarak, YouTube'un video sunacak bir yer seçmek için IP konum belirleme veya Anycast'tan çok daha fazlasını kullandığına inanıyorum.
Google çok büyük bir küresel omurga ağı işletiyor, karanlık elyaflara sahipler, denizaltı kabloları finanse ettiler . YouTube'un sağladığı trafik hacmi çok büyük! YouTube’un yoğun trafik hacmi> 12Tbps olduğunu tahmin ediyorum. Google , etki alanları arası İnternet trafiğinin en az% 7'sini (ve muhtemelen>% 10'unu) temsil eder .
Bu nedenle, sorunuzu bir ağ perspektifinden yanıtlamak için YouTube gibi ölçeklendirmek için, ağınızdaki büyük bir yatırım yapmanız gerekiyor - zemindeki fiberden WDM donanımına ve yönlendiricilere kadar. İçeriği ve ağı kullanıcılarınıza mümkün olduğunca yakın tutmalısınız. Bu, genellikle eşleştirme, IX'ler ve belki biraz geçiş anlamına gelir. Trafiği mümkün olduğunca eşit ve dağıtılmış bir şekilde tutmak için içeriğin nereden alınacağını kullanıcılara akıllıca söyleyebilmelisiniz. Ve elbette, günde 4 milyar görüntüyü saklamak, işlemek, dönüştürmek ve sunmak için devasa sunucu altyapısına sahip olmalısınız!
Sunucu tarafını merak ediyorsanız , yakın zamanda yayımlanan bazı veri merkezi görüntülerini parçalayan bir blog yazısı yazdım .
Büyük ölçekli sistemler ve bu şirketlerin kullandığı teknolojiler hakkında daha fazla bilgi edinmek istiyorsanız, şimdi en iyi kaynak http://highscalability.com
Google veya Akamai gibi en büyük şirketler, her zaman kendileri tarafından yazdıkları / oluşturdukları bileşenlere sahiptir. (örneğin Akamai hizmetleri için bir web sunucusu geliştirdi)