Ölçeklenebilir BigBlueButton Barındırması Açıklanıyor: Tek Sunucudan Akıllı Kümelere

Video konferans altyapısına derinlemesine bir bakış: Monolitik sunuculardan kendi kendini onaran, yüksek kullanılabilirlikli kümelere geçişi anlamak.


BigBlueButton, sanal sınıflar ve konferanslar için önde gelen açık kaynaklı çözüm olarak kendini kanıtlamıştır. Ancak kuruluşlar büyüdükçe kaçınılmaz olarak bir "performans duvarına" çarparlar. Soru, "Nasıl kurarım?"dan "2.000 eşzamanlı kullanıcıyı nasıl kararlı şekilde barındırırım?"a dönüşür.

BigBlueButton’ı ölçeklendirmek, tek bir makineye daha fazla CPU gücü eklemekten (Dikey Ölçekleme) ibaret değildir; mimaride temel bir değişiklik (Yatay Ölçekleme) gerektirir. Aşağıda barındırma evriminin üç aşamasını açıklıyoruz.

01

Tek Sunucu Kurulumu

Standart bir "monolitik" kurulumda, her bileşen tek bir fiziksel veya sanal makinede bulunur. Buna HTML5 istemcisi, Kurento/MediaSoup medya sunucusu, Redis ve beyaz tahta veritabanı dahildir.

Benzetme: Küçük Bir Kafe

Tek bir sunucuyu, tek baristalı bir mahalle kafesi gibi düşünün. 50 ila 200 müşteri için mükemmel çalışır. Hizmet hızlı ve doğrudandır. Ancak aynı anda 500 kişi içeri girmeye çalışırsa sıra kapının dışına taşar, siparişler karışır ve sistem sürünmeye başlar.

Teknik Darboğaz: BigBlueButton HTML5 istemcisini çalıştıran Node.js tek iş parçacıklıdır. 64 çekirdekli bir sunucunuz olsa bile, çok fazla kullanıcının bulunduğu tek bir toplantı ana iş parçacığını doyuma ulaştırabilir ve herkes için gecikmeye neden olabilir. Genellikle pratik sınır sunucu başına 200-300 eşzamanlı kullanıcıdır.
02

Açık Kaynak Küme: Scalelite

Tek sunucu sınırını aşmak için topluluk "Scalelite"ı geliştirdi. Scalelite, ön yüzünüz (Moodle/Greenlight) ile bir BigBlueButton sunucu havuzu arasında konumlanan bir yük dengeleyicidir.

Scalelite Nasıl Çalışır

Scalelite, toplantıları izlemek için bir PostgreSQL veritabanını ve önbellekleme için Redis’i içeren karmaşık bir yığına dayanır. Kayıtlı sunucuların CPU yükünü ve kullanıcı sayısını kontrol etmek için periyodik olarak yoklama yapar. Yeni bir toplantı isteği geldiğinde, Scalelite isteği en az meşgul sunucuya yönlendirir.

  • Yatay Ölçekleme: Teorik olarak havuza sonsuz sayıda sunucu ekleyebilirsiniz.
  • Kayıt Kabusu: Scalelite ile ilgili büyük bir baş ağrısı kayıt yönetimidir. Toplantılar farklı sunuculara dağılmış olduğundan, kayıtları bir araya getirmek için karmaşık paylaşımlı depolama sistemleri (NFS veya S3) kurmanız gerekir. Kayıt aktarılmadan önce bir sunucu arızalanırsa veriler çoğu zaman kaybolur.
Benzetme: Otel Resepsiyonisti

Scalelite bir otel resepsiyonisti gibi davranır. Misafirler resepsiyona gelir ve resepsiyonist onlara bir oda (sunucu) tahsis eder. Ancak yüzlerce farklı odadan gelen "kayıp eşya" (kayıtlar) takibini yapmak lojistik bir mücadeleye dönüşür.

Sınırlama: Scalelite, API isteklerini sunuculara iletmeden önce değiştirir. Bu da çoğu zaman standart bir BigBlueButton API’sine doğrudan bağlantı bekleyen belirli üçüncü taraf entegrasyonlarla uyumluluğu bozar.
03
Önerilen Çözüm

Bir Sonraki Seviye: bbbserver Akıllı Dengeleme

bbbserver’da, standart Scalelite kurulumlarının sınırlamalarını fark ettik. Azami kararlılık, hijyen ve şeffaflık için tasarlanmış, bize ait bir yük dengeleme mimarisi oluşturduk.

Çözüldü: Kayıt Toplama

Standart kümelerde görülen "kayıp kayıt" sorununu tamamen ortadan kaldırdık. Sistemimiz, kırılgan NFS bağlantılarına ihtiyaç duymadan tüm düğümlerden kayıtları otomatik olarak toplar, işler ve merkezileştirir. Tüm verileriniz için tek, güvenilir bir depo elde edersiniz.

24 Saatlik Yeniden Kurulum Döngüsü

BigBlueButton sunucuları zamanla "dijital toz"—geçici dosyalar ve bellek sızıntıları—biriktirir. Benzersiz "Temiz Başlangıç" protokolümüz sunucuları otomatik olarak boşaltır ve yazılımı her 24 saatte bir tamamen yeniden kurar. Esasen her gün yepyeni bir sunucu elde edersiniz.

%100 API Uyumluluğu

API işlevlerini maskeleyebilen Scalelite’in aksine, akıllı dengeleyicimiz %100 doğrudan geçiş uyumluluğu sunar. Özel bir Moodle eklentisi, kurumsal bir LMS veya özel bir betik kullanıyor olun, tek bir sunucuya bağlıymış gibi tam olarak çalışacaktır.

Kendi Kendini Onaran Altyapı

Bir düğüm Kurento hatası veya ses gecikmesi bildirirse, sistemimiz onu anında izole eder, bakım moduna alır ve birkaç dakika içinde bir yedek örnek başlatır. Manuel müdahale gerekmez.

Benzetme: Kendi Kendini Temizleyen Lüks Tatil Köyü

Her misafir ayrıldıktan sonra odanın sadece temizlenmediği — tamamen yenilendiği bir tatil köyü hayal edin. Concierge (Yük Dengeleyicimiz) ayrıca tüm misafir bagajının (kayıtların) ana lobiye otomatik olarak taşınmasını sağlar, böylece odalarda asla hiçbir şey geride kalmaz.

Ölçeklendirme Hakkında Sıkça Sorulan Sorular

Yeniden başlatma belleği (RAM) temizler, ancak konfigürasyon sapmalarını, bozulmuş geçici dosyaları veya güncellenmiş paket bağımlılıklarını düzeltmez. Tam bir yeniden kurulum, yazılım yığınının "Altın İmajımız" ile birebir aynı olmasını sağlar ve "rastgele" hataların %99'unu ortadan kaldırır.

Hayır. NFS bağlarını ve aktarım betiklerini yönetmeniz gereken, kendi barındırdığınız Scalelite kurulumlarının aksine, bbbserver yaşam döngüsünün tamamını yönetir. Ham veriyi toplar, kaydı işler ve size sorunsuz bir şekilde sunar.

Kesinlikle. Sistemimiz %100 API uyumlu olduğundan, geçiş genellikle LMS'inizde veya ön uç uygulamanızda "Base URL" ve "Secret" değerlerini değiştirmek kadar basittir.

"Taze" bir sunucunun kararlılığını deneyimleyin

Yük dengeleme yapılandırmaları, veritabanı eşitlemesi ve API çakışmaları için endişelenmeyi bırakın. Yönetilen, kendi kendini iyileştiren bir küme ortamı için bbbserver'a geçin.

Planları ve Fiyatları Görüntüle