It is the second article of the Cloud Opportunities for Educational Institutions series, whereby I’ve been “thinking out loud” and sharing some high-level but technical perspectives in how educational institutions (from where the series’ title raises) have been implementing Azure services in their projects. If you have arrived just now into this discussion, I strongly recommend you the reading of the first post, available by chasing this link. It will give you a sense toward “where” this content is going to head you to.
Learning Management System (LMS)
On today’s post, I want to start discussing Learning Management Systems (LMS) a little bit. That is because these tools have been playing a critical role in today’s educational organizations meaning that nowadays they are the entry point for almost everything that happens inside a modern educational institution.
If you have been working with education over the last fifteen to eighteen years as I do, you probably must remember that the “LMS concept” is actually an evolution of that “e-Learning” concept, which raised commercially for the first time back in mid 90’s. Driven by internet popularization, the primary goal of those systems (e-Learning) was to provide an online platform where students would study by themselves getting some help of a virtual tutor whose was provided by the institution in charge for that course.
Over time, educational institutions learned that would make much sense if they could integrate another pedagogical and academic routines on top of that e-learning tools as well. Of course, it happened all over fifteen to eighteen years ago until it lands on the scenario we have today; the robust tools capable to deliver technical content out, to consolidate students learning performance through different AI algorithms behind the scenes, to generate insights regarding students evasion and, so forth. The Figure below (originally published in The University of Alabama website) summarizes this evolution.
The understanding about the evolution of that platforms is essential because it is going to give us a sense of “why” we’ve been seen day-after-day both schools and universities relying on the power of the public clouds to deliver even more rich experiences their students through their moderns and powerful LMS solutions. Let’s take a look in some built-in characteristics and capabilities often provided by modern LMS platforms.
As mentioned before, a modern LMS should be able to address out in a unique, online, and multi-screen platform, needs for both students, teachers, institution’s managers, and further crew. Meaning, tuition management, students enrollment, students’ online activities, online and offline tests, live classroom, content management, useful reports for parents, students and institution’s crew, data-driven automated events, among dozens of other possibilities.
The value of public cloud to LMS platforms
Honestly, we don’t need to make so much effort to understand the value of the public cloud for these platforms. Why? Let’s take a look in some reasonable and vital points that would justify that affirmation.
- Seasonality: The experience working with education has shown that LMS platforms usually presents an irregular usage pattern. I mean, there are certain periods of time over the month/quarter/year where that platforms are more utilized than others. For instance: when teachers and they publish tests results are made public to students and their parent’s consumption. Overall, the demand for that platform usually increases (number of parallel users on top of it) considerably in that period, once students are running crazy through either mobile apps or institution’s website to check out their performance on those tests. Only public cloud platforms like Azure would be able to provide efficiency on both the elasticity side (needed when usage peaks occur) and, on the cost-effective side (when the platform is vacant and would proactively deprovision unused resources).
- Democratic: Nowadays there are several LMS platforms in the market. From the free ones (like Moodle, for example) to robust and expansive others, like Blackboard, and others. There is no pattern regarding technology. Each one of these platforms usually seats on top of different technologies and frameworks and as we all know, often is an IT responsibility providing a safe and performative environment for those solutions. What a hard work it might be! Fortunately, we can count on the public clouds to help us satisfactorily achieve this goal. As you may know, by using platforms like Azure, for example, you will have the ability to quickly spin up from a simple web app service to host to a small LMS to a complex cluster environment with multiple Virtual Machines, and different networks interconnect through VPNs in hybrid scenarios to host highly distributed LMS systems. The here point is: regardless the underlying technology stack needed to run a given LMS platform, Azure will provide a safe, high-scalable and democratic way to accomplish that.
- Cost: If a given institution needs to handle a critical mission environment for LMS (which is pretty standard nowadays), “keep the lights flashing” locally is going to be expensive. First, you’ll need to provision infrastructure by the peak, even knowing that in a given point in time “compute power” is being wasted once you’d not operating with the expected concurrence; And we all know that computational waste = money waste. Now imagine that, even predicting a bunch of resources based upon the peak presented last period taken as parameter for this, for some unexpected reason, the institution starts to face outages (the reasons may vary: the number of students has grown considerably, and it wasn’t adequately considered to do that prediction, unexpected instability on the internet link, and so forth). How much does that fact cost?
- High-availability: We mentioned earlier, LMS are not an apartheid technology anymore. It is not something that teachers and students can optionally use for a given reason. It is mandatory, once it has been used by institutions to concentrate students interaction, content, generate insights and reports, administrative operations, and so forth. The damage caused by LMS outage surpasses the financial aspect. It is all about stain out institution’s image, and you know how complicated is to keep a critical mission environment up and running with the help of specialized services like those provided by the public cloud.
There are so many aspects through the which we could leverage the value of the public cloud to those platforms. What say about big data? These platforms are currently generating tons of valuable data every single day. How to digest, process and extract information of it without services like Azure Datalake, Databricks, HD Insights, and others? Also, connected to it, could we use the services of intelligence on top of this universe of data to generate something meaningful to the institutions? For sure we can.
A practical example: Moodle
If you work with education at some level you know, for sure, that Moodle is a free and open-source LMS platform; and it is enormous! Present in 200+ countries around the globe, Moodle is undoubtedly one of the most successful LMS platforms in the market. You can see more about Moodle usage following this link.
Because Brazil, US, and Canada are part of my working territory at Microsoft, I’ve been seen customers of all kinds, sizes, and relevance using the most different implementations and applications on top of Moodle. From small and straightforward scenarios (where a simple Azure Web with a small MySQL database is sufficient to support it) to the big and complex ones, with thousands of users concurring for resources in a single environment.
As Cloud Architects, customers often come up to us with a logical question: “How can I take advantage of Microsoft Azure to make my Moodle resilient, scalable and high-available without compromise my budget for it?”. Fortunately, we have different ways to accomplish it by using Azure. However, the engineering team has developed a handy starting point for that – an ARM template that builds a high-scalable environment for Moodle on Azure. The model is publicly available on Github and accessible through this link.
The documentation is entirely available onto that repository and is pretty comprehensive. Basically, by selecting one of the options available, will be able to deploy from a small to a highly-concurrent Moodle environment for your institution.
How does this template work?
In order to deliver a high-scalable architecture, Microsoft rely on the combination of platform services (PaaS) like Redis Cache, Storage Account, MySQL or SQL Database and so forth and the flexibility and power of Azure infrastructure services, like Virtual Machines (VM), virtual networks and such. The architectural view for that is available below.
As you can see, by deploying one those options available on Azure’s Github repository, actually you will be creating a public load balance (which receives the users requests) that has the duty to distribute the workloads over the instances available underneath it, in the Virtual Machine Scale Sets (VMSS), the one who will effectively run out the Moodle application. Because VMSS can expand and retract itself based upon the demand received, you have the guarantee that your frontend can afford whatever amount of workload dynamically, reducing the possibilities of outage for that piece.
To maximize the frontend’s performance, you can choose to activate both Varnish and Redis Cache to store (and deliver) static objects temporarily. Also, to guarantee the efficient distribution of the Moodle’s files on the backend, the solution relies on a scalable pool of VMs running Gluster FS.
Optionally, if you can easily integrate that Moodle implementation with some additional plugins made available by Microsoft, like Azure Search integration (to speed up searches on top of the platform), Azure Active Directory integration for authentication and more. Pretty cool, han?
It is important to mention that this is an ARM template. What does it mean? That you can change the way that it is happening and adapt it out to your needs. Recently we’ve got a customer in US interested in putting a WAF (Web Application Firewall) in front of the whole structure (which makes a lot of sense, doesn’t it?). We’ve worked together to prove the concept of replacing the Azure load balance by another Azure service, called Application Gateway (AG), as AG has the ability to do both load balancing, SSL offloading and WAF. So, go ahead and customize it! If you need help, let us know.
Also, the repository brings a clear vision about costs tied to each one of the deployment options available. This is important for you to measure costs x benefits in having this.
Moodle is pretty cool, but this is just an example of what is possible. Customers are doing Moodle, Canvas, Blackboard, their own solutions and so much more. In common? Azure (and Office 365 with its integrations through Graph API) supporting the majority of these complex infrastructures right-the-way.
The experience working with customers in education has been showing the LMS platforms actually presents a huge fit (in technical terms) with cloud platforms like Azure; Considering that the Digital Transformation process in EDU undoubtedly needs, some point, touch the way that these platforms have been implemented, at least in my perspective, it sounded essential for me to share a bit of what I’ve been seen on this regarding out there.
Hope it helps.