Сервис my.itmo — это личный кабинет студента ИТМО. С его помощью можно следить за персональным расписанием, оценками, баллами, актуальными новостями и пользоваться сервисами ИТМО. В 2020 году его создали студенты ИТМО Андрей Суворов (сейчас аспирант и директор центра разработки корпоративных сервисов ИТМО) и Семен Шабанин (сейчас директор центра проектирования корпоративных сервисов ИТМО).
«Мы начали работу над сервисом с целью “сделать удобно для студента” — на тот момент мы уже реализовали несколько проектов: например, приложение ITMO.STUDENTS. В частности, мы хотели сделать удобный сервис выборности дисциплин: раньше специалисты делали это с помощью гугл-форм, но количество студентов и предметов росло — чтобы синхронизировать процессы, понадобилась отдельная платформа. В сентябре 2020 года, когда выборность последний раз проходила в ИСУ, было много негативных отзывов со стороны студентов: сервис был неудобный и плохо работал. Мы попытались сделать выбор удобным, и в феврале 2021 года впервые заработала выборность дисциплин на my.itmo.ru», — рассказывает директор центра проектирования корпоративных сервисов Семен Шабанин.
Архитектура веб-сервиса состоит из микросервисов. Благодаря этому сайт вмещает в себя около ста сервисов: с его помощью можно не только выбрать учебные дисциплины, но и записаться в спортивную секцию, заказать документы, подать заявку на место в общежитии и другое.
Решить задачу выбора
В ИТМО студенты сами выстраивают индивидуальную образовательную траекторию, то есть могут выбирать содержание предметов; формат (онлайн или офлайн); уровень (базовый или продвинутый); язык преподавания некоторых дисциплин (русский или английский); преподавателя; семестр, в котором учить тот или иной предмет, и даже время пар. Одна из ключевых задач сервиса my.itmo ― помочь быстро решить все эти вопросы.
Сложность в том, что дисциплины выбирают одновременно студенты нескольких курсов — это около 13 тысяч человек. Поэтому систему выборности сложно реализовать — нагрузка на сервер очень высокая, и в секунду нужно обрабатывать до 6 тысяч запросов. Кроме того, система должна учитывать большое количество дисциплин, которые можно выбирать — например, только в первом семестре первого курса таких дисциплин около 70. Из стольких предметов можно составить до полутора триллиона вариантов комбинаций.
Чтобы решить эти проблемы, разработчики использовали различные инструменты Yandex Cloud.
Программа работает так. На основании учебного плана, который специалисты загружают в систему, веб-сервис формирует список предметов, которые можно выбирать, а затем составляет индивидуальное расписание в соответствии с выбором студента. Сейчас подготовка расписания для одного студента занимает около часа.
Коллаборация с бизнесом
Инструменты Yandex Cloud Functions и Yandex Message Queue, которые использовали разработчики при создании сервиса, помогли учесть все дисциплины и возможные варианты их выбора. Кроме того, благодаря коллаборации пользователи сервиса имеют бесплатный доступ к облачным инструментам «Яндекс 360»: «Почта», «Диск», «Телемост», «Мессенджер», «Заметки» и другим.
Как отмечают разработчики, технологии Яндекса позволили сделать работу сервиса my.itmo более эффективной.
«Yandex Cloud позволяет нам тратить больше времени не на настройку и сопровождение сервисов, а на их разработку. Например, нам важно, чтобы выбор студента в сервисе выборности соответствовал правилам учебного плана. Чтобы контролировать это, мы используем различные сервисы Яндекса. В базе данных в Yandex Managed Service for PostgreSQL мы храним результаты выбора и структуру учебных планов. С помощью другого сервиса, Yandex Cloud Functions, мы обрабатываем запросы по мере их поступления. В отличие от других инструментов, этот сервис не нуждается в постоянной фоновой работе и тратит ровно столько ресурсов, сколько требуется в конкретный момент», — рассказал директор центра проектирования корпоративных сервисов Семен Шабанин.
Чтобы справляться с высокой нагрузкой на сервере, разработчики используют сервис для автоматического масштабирования и развертывания приложений Managed Service for Kubernetes, а также брокер сообщений на базе Managed Service for Apache Kafka.
От студентов — студентам
Над сервисом работают выпускники и студенты ИТМО — они могут не только получить ценный опыт, но и зарплату и официальное трудоустройство параллельно с учебой.
«Я работаю фронтенд-разработчиком в проекте уже второй год: воплощаю в жизнь визуал, который нарисовали дизайнеры, и подключаю туда бэк. В целом сервис сейчас удобнее ИСУ, но впереди предстоит еще немало работы. Важно подчеркнуть, что my.itmo — это не только продукт для студентов: в нем есть множество блоков для преподавателей и сотрудников: например, администрация физкультуры и иностранных языков. Мне нравится, что я помогаю студентам и сотрудникам родного университета, развивая полезный сервис», — рассказал один из разработчиков сервиса, магистрант факультета инфокоммуникационных технологий Андрей Береснев.
Что дальше
Следующий глобальный шаг в развитии my.itmo — создать рекомендательную систему в виде интеллектуального помощника. Он будет помогать студентам ориентироваться в дисциплинах и составлять индивидуальную траекторию обучения на основе их интересов и потребностей.
«В будущем мы планируем попробовать новые сервисы Яндекса — например, Yandex Database. Это система управления базами данных, которая может обрабатывать миллионы запросов в секунду и сохранять работоспособность при выходе из строя даже целого дата-центра. Эта система используется в проектах “Яндекс.Такси”, “Яндекс.Метрика”, “Яндекс.Маркет” и “Алиса”», — рассказал директор центра проектирования корпоративных сервисов Семен Шабанин.