Canlı yayın arşivlerini yönetmek, özellikle küçük ölçekli medya sistemlerinde sürekli karşılaşılan bir zorluk olmuştur. Tipik olarak, bu sistemler sürekli açık bir kayıt cihazıyla başlar; ne zaman bir şey olmasa bile maliyetleri sürekli artırır. Fakat gerçekten ihtiyacımız olan şey, yalnızca canlı yayın anlarında kritik olan bir altyapıdır.
Shiftbloom Studio'da ben de bu sorunu çözmek için sistemi ikiye ayırdım: gözlem hücreleri ve hasat hücreleri. Bu yaklaşımla, hem maliyetleri önemli ölçüde düşürdüm hem de sistemin yönetimini basitleştirdim. İşte nasıl yaptım.
Sürekli Açık Kayıt Cihazından Ayrışma
Canlı yayınları yakalamak için sürekli hazır olmak zorundayız. İlk dakikalarda yaşanabilecek kayıplar, geri alınamaz sonuçlara yol açabilir. Ancak canlı yayın dışındaki tüm işlemler—geri yüklemeler, VOD indirmeleri, kırpıntı aktarımları, onarımlar ve yeniden kodlamalar—öncelik gerektirmeyen arka plan görevleridir. Bu görevler birkaç saniye gecikmeyle, darbeli kapasitede ya da sıradan bir VPS ya da dizüstü bilgisayarda bile çalıştırılabilir.
Bu farkındalıkla sistemi ikiye ayırdım:
- Gözlem hücreleri: Yalnızca canlı yayınları kaydetmek için (zaman kritik)
- Hasat hücreleri: Tüm arka plan işlemleri için (geciktirilebilir)
Üç Temel Bileşen ve Rolleri
1. Ana Gemi (Mothership)
Ana gemi, sistemin kontrol düzlemi olarak çalışan basit bir cron görevidir. Veritabanındaki kuyruk boyutlarını, aktif yayın kanallarını ve çalışan gözlem hücrelerini sürekli izler. Ardından aşağıdaki kararları verir:
- Kaç adet hasat hücresinin çalışması gerektiği
- Hangi kanallar için gözlem hücresi oluşturulması gerektiği
Ana geminin görevi, veritabanını tek kaynak olarak kullanmak ve sistemdeki tüm kararları buradan yönetmektir. Bu basitlik, sistemi daha güvenilir ve ölçeklenebilir kılar.
2. Gözlem Hücreleri
Her bir gözlem hücresi yalnızca bir canlı yayın kanalını kaydeder. Atamalarını çevre değişkenleri üzerinden alır:
env OBSERVER_VOD_ID=12345 OBSERVER_CHANNEL_ID=67890 OBSERVER_CHANNEL_LOGIN=kullanici_adi OBSERVER_CHANNEL_NAME=Kanal_AdiGözlem hücresi, atama aldığında derhal kayda başlar, HLS segmentlerini nesne depolamaya yazar ve kalp atışları gönderir. Yayın çevrimdışı olduktan sonra kısa bir bekleme penceresine sahiptir; bu pencere, yayınların aniden kapanıp yeniden bağlanması durumunda devreye girer. Aksi takdirde, birçok küçük ve bozuk VOD parçası oluşabilir.
3. Hasat Hücreleri
Hasat hücreleri, tüm arka plan işlemlerini gerçekleştiren bileşenlerdir: VOD indirme, yeniden kodlama, bozuk dosyaların onarımı vb. Docker'ın çalışabildiği her yerde çalışabilirler—AWS görevleri, küçük bir VPS ya da hatta bir dizüstü bilgisayar. Yalnızca PostgreSQL ve nesne depolamaya dışarıdan erişim gereksinirler.
Değişenler: Performans ve Verimlilik
Önceden, canlı yayın kaydı ve arka plan işlemleri aynı altyapıyla yönetiliyordu. Bu yaklaşım, sistemin gereksiz yere karmaşık ve maliyetli olmasına neden oluyordu. İki tür işi ayırdıktan sonra elde edilen iyileştirmeler dikkat çekiciydi:
Önceki Durum | Sonraki Durum --- | --- Canlı kanallar aktif değil | Tam kayıt cihazı sürekli çalışıyor Gözlem hücreleri yok | Kuyruk dolu kapasitesi sürekli tahsis ediliyor Hasat hücreleri yok | Büyük arşivler aktif verilerle karışık
Bu değişiklikle, 15.5 TB'lik arşiv verisini yalnızca 36 saat içinde aktardım ve canlı yayın akışlarında tek bir kare bile kaybetmedim. Sistem ayrıca daha basit ve anlaşılır hale geldi; her bileşenin rolü net bir şekilde tanımlanmıştı.
En Büyük Ders: Kritik ve Kritik Olmayan İşlerin Ayrımı
Bu dönüşümün en büyük kazancı, belirli bir araç ya da platforma geçiş yapmak değildi. Asıl öğrenilen, şu anda yapılmak zorunda olan işler ile sonra yapılabilecek işler arasındaki net sınırı çizmekti. Çoğu VOD arşiv sistemi her iki tür işi de aynı şekilde yönetmeye çalışır. Oysa bu işleri ayrı desenler olarak ele almak, sistemi çok daha doğal ve verimli hale getirir.
Shiftbloom Studio'da geliştirdiğim bu mimari, canlı yayın arşivlerinin karmaşık ve öngörülemeyen doğasına karşı esnek bir çözüm sunuyor. Düşük maliyetli, ölçeklenebilir ve yönetimi kolay bir altyapı, yayıncıların odaklanması gereken asıl işlere—içerik üretimine—daha fazla zaman ayırmasını sağlıyor.
Bu yaklaşımı benimseyen yayıncılar, canlı yayın arşivlerini yönetme konusunda daha etkili ve verimli bir yol bulabilirler. Siz de benzer zorluklarla karşılaşıyorsanız, bu mimariyi kendi sistemlerinize uyarlamayı düşünebilirsiniz.
Yapay zeka özeti
Shiftbloom Studio, canlı yayın arşivlerini yönetmek için monolitik sistemden nasıl vazgeçti? Gözlem ve hasat hücreleriyle maliyetleri %40 azaltan mimariyi keşfedin.