21/03/2020 · bigbluebutton scalelite online-ders canlı-ders bigbluebutton-scale bigbluebutton-ölçeklendirme

BigBlueButton ile Geniş Kitlelere Canlı Ders Vermek.

Bu makaleyi dünya genelinde pandemi olarak ilan edilen ve çok tehlikeli Covid-19 salgınından dolayı eğitim ve öğretim faaliyetlerinin uzaktan eğitim yoluyla verilebilmesinde kendi altyapınızı oluşturabilmeniz için yol gösterici olması adına yazıyorum.

Eş zamanlı olarak öğrenci ve eğitmenlerin bir araya gelebileceği ticari ve açık kaynak kodlu birçok web konferans sistemi bulunmaktadır. Adobe Connect, WizIQ, OpenMeetings, Microsoft Teams ve BigBlueButton örnek olarak verilebilir. Bu çalışmada BigBlueButton üzerinde durulacaktır.

BigBlueButton hem açık kaynak kodlu olması hem de birçok öğrenme ortamına kolay entegrasyonu sayesinde sıklıkla tercih edilen bir web konsferans sistemidir. Sunmuş olduğu gelişmiş API (Application Programing Interface) sayesinde özel olarak geliştirilen projelere de kolaylıkla entegre edilebilmektedir.

Gelelim geniş kitlelere aynı anda canlı/senkron ders verme kısmına. Açıkcası bu hiç de kolay bir iş değil. Aynı anda eğitmenlerin ve öğrencilerin bağlanbileceği ses, video, sunum, sohbet ve masaüstü gibi farklı paylaşımların yapıldığı bir ortamda, bir kişi (n) sesini paylaşıyorsa diğer kişiselere (n-1) aynı anda bu sesin iletilmesi durumu söz konusudur. Video, masaüstü, sohbet ve sunumu da işin içine kattığınızda olayın ciddiyetinin farkına varıyoruz.

Peki ne yapmalıyız?

Gerek diğer web projelerinde gerek web projelerinde eğer bir yoğunluk varsa, bu yoğunluk ile başa çıkabilmek için yoğunluğu dağıtmamız/ölçeklendirmemiz gerekir. Eğer ticari biri web konferans sistemi kullanıyorsanız bunu ürünü satın aldığınız firma zaten yapmaktadır. Siz paranızı ödeyip bu sistemi rahatlıkla kullanabilirsiniz. Ama pandemi gibi durumlarda bu tarz sistemlere olan taleplerden hizmet vermesi ile sorunlar yaşabileceğini göz ardı etmemenizi önererek bir B planı yapmanız tavsiye edilmektedir.

BigBluButton ile dikey olarak bir ölçeklendirme yapamıyoruz. Yatay olarak bir ölçeklendirme işlemi yapabiliyoruz. Nedir bu yatay ve dikey ölçeklendirme? Hemen açıklayalım, dikey ölçeklendirme bir sunucunun kaynak arttırımı (ram, cpu vb.) olarak ifade edilirken, yatay ölçekleme bir sunucu yerine birden çok sunucunun aynı anda aynı işi yapabilmeksi olarak ifade edilebilir.

BigBluButton hizmetini yapılandıracağımız sunucunun kaynaklarını arttırsak daha geniş kitlere hizmet sunamaz mıyız? Hayır. Çünkü üzerinde barındığı bazı servisler (NodeJS) buna izin vermemektedir. Ders anlatımı sırasında kesintiler yaşanmasına sebep olmaktadır.

Dikey ölçeklendirme ile bu durumun yükün farklı sunuculara dağıtılmasını sağlayabiliriz. Derslerin aynı anda bir sunucu üzerinde yapılması yerine farklı sunucular üzerinde yapılmasını sağlayarak aynı anda daha çok dersin verilmesini sağlayabiliriz.

Tam bu noktada Scalelite projesi bizim için kurtarıcı olacaktır. Bu proje sayesinde birbirinden bağımsız olarak yapılandırılan BigBlueButton sunucularının yönetimi sağlanabilmektedir. Scalelite sizin genel bir API hizmeti sunmaktadır.

alt

Örnek bir senaryo olması açısında çalıştığım kurumda oluşturduğumuz yapı hakkında kısaca bilgi paylaşmak isterim.

Aynı anda en az 2000 öğrenciye hizmet verecek şekilde bir yapı oluşturduk. Bu yapıda bir Scalelite, 11 BigBluButton sunucusu bulunmaktadır. Ve bu yapıyı Öğrenme Yönetim Sisitemi (ÖYS) ile entegre ettik. Bu sayede dersini ÖYS üzerinde açan her eğitmen senkron bir ders yapmak istediğinde yoğunluk durumuna göre bir BigBlueButton sunucusuna yönlendirilerek dersini yapabilmektedir.

ÖYS tarafında aktif olarak Sakai kullanmaktayız. Sakai ile öğrenci bilgi sistemi arasında sağladığımız entegrasyon sayesinde her eğitmen öğrenci bilgi sistemi üzerindeki üzerine tanımlı dersi Sakai'de otomatik olarak açabilmektedir. Bu sayede uzaktan eğitim yoluyla senkron ders verme sürecinde öğrenci ekleme/çıkarma, davet etme gibi durumlarla vakit kaybetmeden öğrenme-öğretme sürecine yoğunlaşabilmektedir.

Son olarak BigBlueButton sunucularında anlık olarak yapılan toplantıları ve katılımcaları görüntüleyebileceğiniz ekran aşağıdaki gibi olduğunu belirtmek isterim.

alt

https://github.com/blindsidenetworks/scalelite
https://github.com/bigbluebutton/bigbluebutton