top of page
Writer's pictureALIF Consulting

Design and build Moodle deployment with Azure NetApp Files

Updated: Jun 12

Moodle is one of the most popular and widely adopted free, open-source learning management systems. With more than 30 percent of the global market share, Moodle has more than 180,000 customers worldwide.

Since the emergence of COVID-19, Moodle has seen a surge in growth. The company is now the market leader in learning management systems. This growth has forced Moodle to explore options for quickly expanding its business and enabling customers to quickly and efficiently deploy Moodle instances in the cloud. Moodle architecture relies on the Network File System (NFS) 3.0 protocol (NFSv3) for content storage.

Moodle strives to meet the demands of home workers and to provide the best possible user experience. As a result, Moodle requires:

  • Consistent high-throughput, low-latency access to shared storage.

  • A way to scale up the solution to accommodate an increasing number of concurrent users. Customers prefer autoscaling configurations.

This article outlines a solution that meets Moodle's needs. At the core of the solution is Azure NetApp Files, a first-party Azure file storage service. You can use this service to migrate and run the most demanding enterprise-scale file workloads in the cloud:

  • Native Server Message Block (SMB) version 3, NFSv3, and NFSv4.1 file shares

  • Database workloads

  • Data warehouse workloads

  • High-performance computing applications

By providing a high-bandwidth, low-latency solution for workloads, Azure NetApp Files meets Moodle's performance requirements. This solution is also flexible. Deployments can grow or shrink on demand to make your configuration cost-effective.



Potential use cases

This solution applies to Moodle deployments. Moodle organisations span many industries, including education, business, IT, and finance.


Architecture

In a single region, this solution provides highly available access to the Moodle app and other components.

You can also use two regions to implement this solution. With two regions, the solution provides disaster recovery. To protect against an unlikely Azure region failure, you replicate the data volumes to the second region. Only the Azure NetApp Files volumes need to be present in that region.



Moodle deployment with Azure NetApp Files

Dual-region disaster recovery setup


Dual-region disaster recovery setup

Components

  • Moodle is a free, open-source learning management system.

  • Azure Database for MySQL is a fully managed relational database service that's based on the community edition of the open-source MySQL database engine.

  • Azure Cache for Redis is a fully managed, in-memory data store that's based on the open-source software Redis.

  • Azure Virtual Machine Scale Sets provide a way to manage a group of load-balanced virtual machines (VMs). The number of VMs in a set automatically increases or decreases in response to demand or a defined schedule.

  • Azure NetApp Files makes it easy to migrate and run file-based applications with no code changes. This shared file-storage service is a joint development from Microsoft and NetApp, a Microsoft partner.

  • Cross-region replication provides a way to replicate data asynchronously from an Azure NetApp Files volume in one region to another Azure NetApp Files volume in another region. This capability provides data protection during region-wide outages or disasters.

  • Azure Application Gateway is a load balancer that manages traffic to web applications.

  • Traffic Manager is a load balancer that distributes traffic to applications across global Azure regions. Traffic Manager also provides public endpoints with high availability and quick responsiveness.

Alternatives

To deploy Moodle, you can use any NFS-based shared file service that meets very low latency, high IOPS, and high throughput requirements. These conditions are especially important for high numbers of concurrent users. You can use an NFS service built on top of a set of Linux VMs. However, this approach presents manageability, scalability, and performance challenges. In contrast, Azure NetApp Files offers a competitive, low-latency solution that delivers excellent performance and secure access to NFS shared storage.


Considerations

Keep the following points in mind when you implement this solution.

Scalability

This solution scales up or down as needed:

  • Virtual Machine Scale Sets provide automatic scaling of resources.

  • You can easily and non-intrusively scale the Azure NetApp Files capacity pools and volumes up and down to meet demand.

  • You can adjust the Azure NetApp Files volume service level, which can be either Standard, Premium, or Ultra. The level you select affects the throughput limit of volumes with automatic quality of service (QoS).

Security

You must provide a valid Secure Shell (SSH) protocol 2 (SSH-2) RSA public-private key pair for all deployment options. The length should be at least 2048 bits. Azure doesn't support other key formats, such as ED25519 and ECDSA.

Resiliency

Azure NetApp Files is built on a bare-metal fleet of redundant, solid-state hardware. The service operates without interruption, even during maintenance operations.

Disaster recovery

As Architecture explains earlier in this article, you can make the solution more resilient. You can provide disaster recovery by adding a secondary region and using Azure NetApp Files cross-region replication. This functionality efficiently replicates the NFS volumes to a secondary passive region. The application runs in that secondary region during the unlikely event of a complete region failure.


Pricing

Consider a medium-sized to large-sized Moodle deployment of approximately 5,000 users with a 10 percent concurrency ratio. The recommended throughput for this case is about 500 MBps. You can build this type of system on a Linux-based Standard_D32s_v4 VM that uses 8 TB of P60 managed disk.

Azure NetApp Files offers a more cost-effective solution. It achieves the recommended throughput of 500 MBps but uses only 4 TB of Ultra service-level capacity. The Premium and Standard service levels are also often sufficient, further improving the cost-effectiveness. Even when the scale of the application is larger, and the application requires more Azure NetApp Files capacity, these service levels can likely deliver the recommended throughput.



127 views0 comments

Comments


bottom of page