Background

The ITMO University specializes in IT, photonics, robotics, and other technical and scientific fields. To stand out in the education market, it implemented a system where students can build their own personalized learning paths. To make that happen, a team of enthusiastic students developed a flexible path selection system powered by Yandex Cloud services.

After initially deploying the system in the university’s own infrastructure, the team later migrated it to Yandex Cloud and further enhanced it with cloud-based tools, including Yandex Cloud Functions. The team reduced both hardware and maintenance costs while improving fault tolerance and scalability. Today, the platform caters to 9,000 students, enabling them to select courses in just 90 seconds. The system handles 6,000 requests per second, with data pre-processing taking just about 60 minutes. According to ITMO’s estimates, using cloud technology is 11 times more cost-effective per year than maintaining on-premise hardware infrastructure.

Company goal

A higher education institution in St. Petersburg, ITMO University offers programs in IT, photonics, robotics, and other technical and scientific fields. Ranked among the top 100 IT universities in the world, it hosts around 9,000 students from 88 countries.

Today, traditional university education faces competition from a wide range of online courses focusing mostly on profession-specific hands-on skills and technology stack. To meet this challenge, ITMO is enriching its academic model by introducing customized learning paths. For the 2023/2024 academic year, first-semester students could choose from 70 elective courses.

In 2020, a team of enthusiastic students kicked off a system that creates course schedules based on the student’s preferences. Originally, it was powered by the university’s own infrastructure. As the project grew in complexity, it started to require greater fault tolerance and scalability. While renting data center resources was an option, server administration would have required significant time and effort; on the other hand, expanding on-premise infrastructure was also limited to the server room area. Cloud infrastructure emerged as an ideal solution, offering flexible resource scaling while offloading hardware procurement and maintenance to the cloud provider.

While still enrolled at ITMO, the development team created a mobile app built on Yandex Cloud. They were impressed by the platform’s solid competence and support throughout a comprehensive ecosystem of user-friendly tools, which led them to also build their scheduling system, both its frontend and backend, on Yandex Cloud. Even given promising results of its first iteration, the overall system still needed further refinement to meet several key requirements:

  • Flexible infrastructure, readily scalable to handle load spikes or evolving business needs.

  • Strong performance under pressure, supporting up to 6,000 requests per second with fast data processing.

  • Zero impact on any other university’s system.

  • Cost efficiency within the ITMO’s limited resources.

After careful consideration, the team decided to fully migrate the scheduling system to a cloud, completing its refinement using Yandex Cloud.

Solution

It was a team of eight people that started developing the scheduling system in 2020, employing Go and Vue.js as the primary tech stack. The university employees contributed to verifying academic plans and scheduling.

2020: Scheduling system architecture, version 1

While version 1 successfully handled 95% of the expected load, running on university’s in-house infrastructure caused unacceptable interference with other critical systems. Physical hardware also imposed strict user limits, as only 100 users out of 4,000 could access the system concurrently. This prompted the cloud migration.

In the new version, the team implemented Cloud Functions for coding semester or year detection logic. Such functions proved ideal for on-demand bulk data processing and, combined with the new microservices architecture, are indeed a great choice when completing discrete business tasks. Cloud Functions are of much convenience in resolving ad-hoc issues, benefiting from automatic scaling without exhaustive VM management: instead, parallel function instances are spawn as needed. The team enjoyed the convenience from zero system maintenance between sporadic executions.

The project evolved through six architectural iterations, gaining new features and microservices as business requirements refined. Key milestones, for example, included migrating the ITMO.ID authentication system to Yandex Cloud and rewriting the system code base from scratch in 2023 (completed just in four weeks).

Students now design their schedule for the entire duration of their studies, accessing the system at a designated time window and selecting the subjects they need. They can also choose which semester to take each course in, as well as the timing of their classes. During this window, the service experiences peak traffic, in daytime, but the load decreases overnight, allowing the system to process and prepare data. Students are given a three-day window to make adjustments to their schedule.

To create an individual schedule, a personalized academic plan must first be developed based on the courses required for the chosen program. A dedicated microservice handles the input of this academic plan. Another microservice is responsible for scheduling: using that plan, it determines in which semester specific courses will be offered and scheduled. Ultimately, the data flows through a series of microservices, compiling a list of academic subjects according to predefined rules. Next, the code hosted in Cloud Functions determines which courses from that list are available for selection in the current semester. After that, another function checks for any scheduling conflicts, ensuring that the student gains only valid combinations of courses.

Managed Service for Kubernetes® is where the system components are deployed. Using a managed service has proven to be very convenient, especially since the team frequently updates and adds new microservices, which takes just a single click in Managed Kubernetes. Responsible for data exchange, Yandex Message Queue retrieves prepared data (academic plan structures) and sends them to Cloud Functions for further processing. Managed Service for Apache Kafka® delivers inter-service communication, also transferring course selection results into the university’s in-house infrastructure, while Application Load Balancer distributes incoming traffic evenly across the system to ensure stable performance under any load. To store and deliver frequently accessed static files, the authentication system integrates Yandex Cloud CDN. A PostgreSQL database provided by Managed Service for PostgreSQL stores the finalized schedule options, where the overall data amount for a single semester can reach up to 80 GB.

2023: Scheduling system architecture, version 6 (finalized)

With a vast number of available courses and multiple pathways for each student, the system generates trillions of possible combinations. This complexity significantly impacts processing speed and storage demands. The development team is actively working on optimizing this challenge, expecting to resolve it soon. For now, however, the range of available options has been limited to ensure smooth operation. Thanks to Yandex Cloud, particularly serverless computing, we were able to migrate to the cloud in record time and continue developing various critical systems, all this without involving infrastructure engineers. Since the workload on those systems is highly seasonal, maintaining any excess capacity would be unfeasible. Yandex Cloud serverless technology eliminates costs for idle resources, handling any unexpected traffic spikes efficiently and cost-effectively, scaling automatically with demand.

Semyon Shabanin,
Director of the Corporate Services Design Center, ITMO

Results

In September, the university’s first-year students started using the scheduling system. The platform successfully handles up to 6,000 requests per second, with 9,000 students selecting their courses in 90 seconds.

Compared to the on-premise hardware, using the cloud has proven to be 11 times more cost-efficient over 12 months, and twice as efficient over five years.

Looking ahead, the team expects to build a recommendation system to help students navigate the vast number of available courses. Once an incoming student specifies the skills they want to have developed by graduation, the system will suggest suitable education program and best-fit courses to help them achieve their goals.

The developers are also looking forward to exploring more Yandex Cloud solutions, such as YDB.

Opinion

Andrey Suvorov,
Director of the Corporate Services Development Center, ITMO
Andrey Suvorov,
Director of the Corporate Services Development Center, ITMO

With serverless approach, we are free from worrying about infrastructure setup, so we can focus entirely on implementing complex business logic and accelerating the delivery of new features to users. At the same time, serverless computing helps us build services that scale seamlessly with demand, without paying for idle resources. Moreover, Yandex Cloud offers powerful and user-friendly tools for monitoring and logging, providing us with full visibility into the performance and behavior of our features.