Background

OpenEdu is a remote learning platform that brings together 1,700,000 learners and offers free access to over 720 online courses from 16 leading Russian universities. Any user can enroll in a course, take a final exam, and receive a certificate directly from the university that developed the course.

By migrating to Yandex Cloud, OpenEdu managed to simplify its architecture by replacing a custom-built load balancer with a ready-made, cloud-native alternative by Yandex. Thanks to this shift and through adopting managed cloud solutions, OpenEdu was able to reduce its infrastructure costs by 50%.

Switching cloud providers is like getting ready for the academic season

Launched in 2015, OpenEdu was designed from the start to run primarily in the cloud. The team made this decision because learning platforms experience fluctuating traffic: the demand peaks at the start of semesters and exam periods, while it drops significantly during holidays and vacations. This dynamic workload required a flexible infrastructure: one that could scale resources up or down as needed, without overpaying for unused capacity. It also allowed the team to offload many operational responsibilities such as hardware maintenance, system administration, and infrastructure support, helping further optimize costs.

Until mid-2020, the platform used a different cloud provider that offered limited out-of-the-box services. As a result, developers had to build and implement many solutions in-house, which added complexity to the platform architecture. Seeking a simpler, more efficient setup with ready-to-go tools, the team decided it was time to switch providers.

After evaluating various cloud platforms based on their features, pricing, and help documentation, the team opted for using Yandex Cloud. It provided the features required to migrate the major part of the infrastructure, including storage and load balancers, to the cloud, while also being compliant with the Federal Law No. 152-FZ on personal data.

In addition to cost savings, one of the key advantages of Yandex Cloud was its distributed infrastructure, with three data centers located in Central Russia. The previous provider only had two data centers.

Simplifying the platform architecture with Yandex Cloud solutions

To implement the project, OpenEdu selected three Yandex Cloud’s solutions:

Using Compute Cloud, the team deployed 60 virtual machines of varying capacity, ranging from 2 vCPUs / 2 GB RAM to 32 vCPUs / 48 GB RAM.

Past experience showed that certain components of the platform required specific setup and performance conditions. The previous provider offered little flexibility in computing capacities, providing only predefined combinations of vCPUs and RAM, which made resource planning cumbersome. After migrating to Yandex Cloud, the team gained the ability to allocate computing resources more precisely. For example, the core components of the Open edX platform, built on Python and Django, being among the most resource-intensive parts, were distributed across a larger number of virtual machines for better performance and scalability.

Meanwhile, Network Load Balancer replaced a custom load balancing solution previously built using VRRP and Keepalived. This switch significantly simplified the platform internal architecture.

The team also migrated their object storage from local virtual machines to Yandex Object Storage, thus optimizing resource usage, simplifying data management, and increasing overall storage reliability.

Over the migration period, the team redesigned some infrastructure components, which included:

  • Switching to a DDoS-protected IP address for access to one of the internal services. While most of the platform operated through Curator with key-based authentication, this setup was incompatible with an internal component using WebSockets. The issue was resolved by configuring access through a protected IP address provided by Yandex Cloud.
  • Rebuilding from scratch and improving Terraform configuration files.

The full migration of the platform infrastructure took about three weeks and ran smoothly. The team chose August, a period of minimum traffic when most students were on vacation, for the transition. During this time, the platform was temporarily paused for three days to migrate the critical components. For the rest of the time, the process was running gradually, allowing users to continue working uninterrupted without even noticing the changes.

Stable performance even under peak load

Thanks to managed cloud solutions, the platform reduced its infrastructure costs by 50%. More importantly, the new architecture based on Yandex Cloud proved highly effective during the periods of peak traffic. By re-organizing how components were distributed across VMs during the migration, the team achieved a more balanced load distribution.

The OpenEdu team actively takes advantage of the flexibility offered by the cloud: they turn VMs on and off depending on current demand. While currently doing this manually through the management console, they soon expect to start testing auto-scaling capabilities provided by Yandex Compute Cloud.

Opinion

Sergey Pokhodyayev,
Cloud Infrastructure Architect, OpenEdu
Sergey Pokhodyayev,
Cloud Infrastructure Architect, OpenEdu

We were able to optimize our financial costs and laid a solid foundation for the platform’s future growth, since Yandex Cloud offers a wide range of advanced tools we can incorporate into our project.