Scalelite lazy deployment (Part II)
Aggregating BigBlueButton recordings using Scalelite local file system
Scalelite is an open-source load balancer, designed specifically for BigBlueButton [1], that evenly spreads the meeting load over a pool of BigBlueButton servers. It makes the pool of BigBlueButton servers appear to a front-end application such as Moodle [2], as a single and yet very scalable BigBlueButton server.
It was released by Blindside Networks [3] under the AGPL license on March 13, 2020, in response to the high demand of Universities looking into scaling BigBlueButton as a result of the COVID-19 pandemic [4].
The full source code is available on GitHub and pre-built docker images can be found on DockerHub.
As a response to the high demand of people asking how to scale BigBlueButton with just a little or not experience at all with this kind of technology, back in April 2020 I wrote a simple docker-compose script and published the article Scalelite lazy deployment explaining how to perform an all-in-one manual deployment on AWS using docker-compose.
The focus of that article is to recreate the steps that can be followed for doing a deployment like the one BigBlueButton has for backing their demo cluster that at the time this article is written holds about 500k user accounts.
One particularity of that deployment though is that it does not offer recordings.
But since anyone who wants to deploy BigBlueButton and scale it at some level would want to have recordings, I added two more scripts to the Git repository and explain here how to use them. In the hopes that those using them will lean basics and find on their own the way that better fits to their needs.
The BigBlueButton recordings
The Scalelite recording handling
Single node deployment
As the goal of this article is to explain how to complete the deployment so Scalelite is able to handle the recordings, we assume that there is a Scalelite server running with the scalelite-run script and it has at least one BigBlueButton server installed with the bbb-install script, that is linked to it. For starting from the scratch, check the article Scalelite lazy deployment.
Updates to Scalelite
The first step is signing in the Linux console and becoming root.
sudo -i
Fetching the scripts
We make sure that we have the latest code.
cd scalelite-rungit pull origin master
We should see the file with the initialization script init-recordings-scalelite.sh.
ls -l init-recordings-scalelite.sh
Should see an ouput like this:
-rwxr-xr-x 1 ubuntu ubuntu 948 Nov 26 10:07 init-recordings-scalelite.sh
Simply execute the script.
./init-recordings-scalelite.sh
Updates to BigBlueButton
The first step is signing in the Linux console and becoming root.
sudo -i
Fetching and executing the script
The script for enabling BigBlueButton to integrate processed recordings into Scalelite is part of the scalelite-run repository, and it can be execute directly as in:
wget -qO- https://raw.githubusercontent.com/jfederico/scalelite-run/master/init-recordings-bigbluebutton.sh | bash -s -- -s <URL_HOST>
Replace <URL_HOST> with its corresponding value (E.g. scalelite.example.com).
Once the this script is executed, follow the instruction shown at the end.
Add this key to /home/bigbluebutton/.ssh/authorized_keys in scalelite:ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGxdXbluIgsP/gKawiLavm5lL9n5IGXciV/jJ8gse/Na bigbluebutton@bbb1.aws.blindside-dev.com
Adding BigBlueButton public key to Scalelite
Go back Scalelite console and simply edit the file as instructed.
vi /home/bigbluebutton/.ssh/authorized_keys
Set the INSERT mode <Shift+a>, add the key shown in the previous step .
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGxdXbluIgsP/gKawiLavm5lL9n5IGXciV/jJ8gse/Na bigbluebutton@bbb1.aws.blindside-dev.com
And save the file <Shift+z><Shift+z>.
That’s it!, enjoy.
References
[1] BigBlueButton. In Wikipedia. Retrieved Apr 27, 2020 from https://en.wikipedia.org/wiki/BigBlueButton
[2] Moodle. In Wikipedia. Retrieved Apr 27, 2020 from https://en.wikipedia.org/wiki/Moodle
[3] Blindside Networks. In Blindside Networks website. Retrieved Apr 27, 2020 from https://blindsidenetworks.com/about-us/
[4] Schaffhauser, Dian (Mar 03, 2020). Coronavirus Pushes Online Learning Forward. Retrieved Apr 27, 2020 from https://campustechnology.com/articles/2020/03/03/coronavirus-pushes-online-learning-forward.aspx