Justin TV canlı yayın altyapısını anlatan sunumum.
Sunum iki parçadan oluşuyor:
-> İlk parça Justin TV'nin altyapısını anlatıyor.
-> İkinci parça ise temel network performans parametrelerini inceliyor. Justin TV canlı yayın altyapısı olduğu için, aldığı yayını en kısa sürede izleyenlerine iletmek zorunda. Yayını izleyenlerin dünyanın çeşitli yerlerinde, çeşitli internet hızlarında kullanıcılar olduğunu düşünürsek, internet üzerinde canlı yayın sunmanın kolay bir iş olmadığını söyleyebiliriz. İkinci parçada bu veriyi son kullanıcıya hızlıca iletebilmek için internet üzerinde karşılaşılan problemler ve bunları aşmak için kullanılan teknikleri irdeledim. Aslında aynı teknikleri İçerik Dağıtım Ağları (CDN'ler) da kullanmakta.
3. Justin.tv?
Canlı video yayınlama
4 veri merkezi (data center)
Anlık ortalama 2000 yayın
Saniyede 5.6 GB (45Gbps) veri aktarımı
Günlük ortalama maksimum yoğunluk: 13.75 GB (110Gbps)
Bugüne kadarki en yüksek yoğunluk: 62.5 GB (500Gbps)
200 video sunucusu
Hepsinde 2x gigabit (1Gbps) kart var. (sunucu başına 2Gbps ?)
6. Justin.tv Video Altyapısı
Video sunucusu (Wowza)
Yayın alabiliyor.
Yayın sunabiliyor.
Havada codec dönüşümü yapabiliyor (on-the-fly transcoding).
Canlı yayın bellekten sunuluyor.
Yayın diskten okunmuyor.
Gelen yayın arşiv amaçlı diske kaydediliyor.
Her türlü cihaza video sunabiliyor.
Adobe Flash, iOS, Android, Windows Phone, …
Veri aktarımını, cihazın ve ağın hızına göre otomatik ayarlama
7. Justin.tv Video Altyapısı
Usher (Yayın yönetimi sunucusu)
Video sunucularda özel bir yapılandırma yok.
Yayınların kaç makineye dağılacağı
Hangi yayının hangi makinede olacağı yönetimi
Parametreler:
Hangi veri merkezinde (data center) ne kadar yük var?
Bütün sunucuların yük dağılımı
Bir yayının hangi sunucularda bulunduğu
İzleyicilerin IP adresleri ve hangi ülkeden geldikleri
-Eğer izleyicinin ISP’si ile anlaştılarsa- izleyicinin IP adresinin rota tablosu bilgisi
Eğer bir yayın bir veri merkezinde ise onu aynı veri merkezinde tutmaya çalışıyor.
8. Justin.tv Video Altyapısı
Usher (devam…)
Yük dengeleme
Kullanıcının IP adresini ve lokasyonunu bilince ona göre rota çiziyor.
Paketin geçeceği yolu azaltmaya çalışıyor.
3 saniyede bir sistem yükünü kontrol ediyor.
12. Unicast - Multicast
Unicast (Tekli gönderim)
iki bilgisayar arasındaki bağlantı
Multicast (Çoklu gönderim)
Tek bağlantı birden fazla
bilgisayara dağıtılır.
Yayını almak isteyenler yayına
kaydolurlar.
Yayın multicast olan IP adresi
tarafından dağıtılır.
Router’ın multicast yayınları
desteklemesi gerekir.
13. Justin.tv Video Altyapısı
Peering yapıyorlar.
Bu sayede kullanıcılara yakınlar.
Multicast yapamıyorlar.
4 veri merkezi arasında ana bir
networkleri var.
Veri merkezleri arasında multicast
trafik var.
Anlık izleme artışları
Maçlar
Ünlülerin twit hesapları..
…
Bandwidth?
18. Ağ Performansı: Gecikme
Gecikme az olmalı.
Kriterler
Hat kalitesi (bandwidth)
Cihaz kalitesi
Aradaki cihaz sayısının az olması
http://merry.netsys.more.net/cgi-pub/latency_map.py