How to go about a large Kolibri deployment architecturally?

Hi, i’m looking to propose a potentially large Kolibri deployment.

Let’s hypothesize a 100+ school and 5000+ student implementation.

Ideally, we would like to deploy as a single “facility” with all learners and coaches under a single umbrella to enable single sign on and analytics for the students across a common/singular curricula.

Is such a kind of deployment possible? Can we do a front end/back end with web accelerators. How is horizontal/vertical scaling achieved?

Thanks for your time

Hello @troy.roberts
yes, having a facility with 5000 students is a possible use case. I can confirm you there are kolibri servers with 4x that amount of students. From the kolibri side, the most important point here, performance wise, is to create classrooms that are not too big. I.E. a classroom with 25 students works fine, with 100 it can be a bit slow , with 1000 will be very slow. The classrooms affect to the way information is shown. You’d keep one single facility to sign in all the users.

In terms of horizontal/vertical scaling, kolibri is a just a Django application (as Instagram was). All that applies to Django insallations apply to kolibri. For that amount of users you’ll need someone skilled in web servers technologies, using caches (redis), wsgi and nginx is the recommended setup. That’s the setup used in cloud servers running kolibri with +20000 users.
Hope this helps
José

Thank you kindly for your response.

Classroom sizes aren’t expected to cross say 50 so we should be fine there.

Is there a case study for the 20k+ installation or anyone i can get onto with regards to how they did it and lessons learned?

We would almost certainly be deploying in a cloud config.

As a first try, you can use the package kolibri-server , it’s thought to do a configuration using wsgi, nginx and redis automatically. For the size you’re talking it would require tweaks in the parameters but it should be fine for your first tests.
The package is available at Kolibri : “Learning Equality” team
and its sources are visible at GitHub - learningequality/kolibri-server: A performance-boosting access layer for Kolibri with multi-core support and improved caching

In any case I would not recommend you doing such kind of installation without having people skilled in this kind of environments, it’s a science itself.

Regards
José