О чём эта история

Уральский федеральный университет входит в топ-10 технических вузов России. На IT-направлении ФИИТ УрФУ(Фундаментальная Информатика и Информационные Технологии) готовят будущих разработчиков. В процессе обучения студенты создают программное обеспечение для реальных компаний и сталкиваются с трудностью публикации готовых продуктов в интернете. Yandex Cloud упростил этот процесс, предоставив университету serverless технологии для развёртывания студенческих проектов в облаке.

В результате 4 из 20 команд третьекурсников успешно развернули свои приложения в Yandex Cloud, два проекта уже переданы заказчикам и запущены в продакшен. Применение serverless решений позволяет студентам быстрее разрабатывать и публиковать приложения, осваивая современные архитектурные подходы и получая реальную обратную связь от пользователей. Заказчики получают готовые продукты, которые могут оперативно интегрировать и использовать для своих задач.

Как выпускать студенческие проекты в продакшен?

ФИИТ УрФУ — IT-направление в Уральском федеральном университете, где готовят разработчиков. Лучшие абитуриенты Урала поступают сюда, чтобы научиться решать проблемы людей и бизнеса с помощью информационных технологий. Таким образом, при обучении на ФИИТ студенты пробуют создавать программные продукты, полезные обществу. В этом им помогает в том числе специальный предмет — «Проектный практикум». Студенты объединяются в команды по 3-5 человек, берут проект от реального заказчика, в течение семестра занимаются разработкой. В результате защищают проект и предоставляют клиенту готовое решение, например веб-приложение.

Зачастую команды студентов преодолевали множество сложностей, создавали ценный продукт, но сталкивались с проблемой размещения своего приложения для публичного использования. После защиты проекта созданное приложение так и оставалось на ПК студента, независимо от его потенциала для применения заказчиками. От этого проигрывали все участники: заказчики не получали ценности, а студенты не были нацелены на результат и на само обучение.

Вуз искал оптимальное решение для простого развёртывания программных продуктов студентов без больших затрат и с возможностью масштабирования от 0 до нескольких тысяч пользователей. Рассмотрев возможные варианты, выбрали облачные технологии. Решающими аргументами стали возможность взять в аренду только нужное количество ресурсов и доступ к современным управляемым сервисам, которые упрощают разработку и развёртывание приложений.

При выборе облака в ФИИТ УрФУ обращали внимание на доступность реальных инструментов для простого развёртывания, чтобы студенты могли воспользоваться технологиями без длительного обучения. Поэтому команда ФИИТ УрФУ обратила внимание на платформу Yandex Cloud. Особенно интересным предложением провайдера были serverless-сервисы, с помощью которых можно легко разрабатывать приложения, хранить данные и настраивать интеграцию с другими платформами без создания виртуальных машин и обслуживания инфраструктуры.

Также было важно минимизировать затраты. В случае использования serverless-технологий вуз будет оплачивать только фактически потребляемые ресурсы. Кроме того, в Yandex Cloud есть опция free tier, которая позволяет бесплатно пользоваться бессерверными вычислениями до первого миллиона запросов. для проектов студентов ФИИТ УрФУ это наиболее подходящий вариант, так как нагрузка на инфраструктуру обычно не высока.

Кроме того, облачная инфраструктура — индустриальный стандарт, и навыки её использования стали бы важным преимуществом для студентов ФИИТ УрФУ при трудоустройстве. В случае использования платформы Yandex Cloud студенты могут легко адаптироваться к работе с облачными технологиями, проходя бесплатный курс «Инженер облачных сервисов» от Яндекс Практикума.

Учитывая все эти возможности, ФИИТ УрФУ выбрал Yandex Cloud.

Бессерверные вычисления для удобства студентов

Прежде всего университету требовалась инфраструктура с простым способом развёртывания, подходящим для начинающих разработчиков. Сервисы Yandex Cloud позволяют разворачивать приложения, используя разные подходы. Один из популярных способов — развёртывание проектов с помощью Yandex Managed Service for Kubernetes®, но развёртывание кластера в этом случае требует навыков DevOps. Поэтому организаторы «Проектного практикума» выбрали другой сервис — Yandex Serverless Containers. С помощью него студенты могут запускать контейнеры без создания виртуальных машин и кластеров Kubernetes и загружать образы веб-приложений, созданных на любых языках программирования. Сервис автоматически разворачивает образ и масштабируется соразмерно количеству запросов.

Для поддержания бессерверных вычислений и хранения данных студенты используют сервис для управления базами данных Distributed SQL — Yandex Managed Service for YDB. Он сочетает высокую доступность и масштабируемость с поддержкой строгой консистентности и ACID-транзакций. В режиме бессерверных вычислений полностью автоматизировано масштабирование слоя хранения, слоя выполнения запросов и резервное копирование, что позволяет управлять системой с непредсказуемой нагрузкой. YDB подходит практически для любых проектов, а при использовании Yandex Managed Service for YDB вузу нужно платить только за количество выполненных запросов.

Использование serverless-технологий позволяет студентам настроить продакшен один раз, на стадии активной разработки, далее продукт работает автоматически, масштабируясь под нагрузку. Кроме того, студентам не нужно каждый раз запрашивать мощности.

Сервис для создания API-шлюзов Yandex API Gateway позволяет студентам обрабатывать запросы к API сервисов в своих приложениях с минимальной задержкой. Удобно, что при пиковой нагрузке сервис автоматически масштабируется, чем минимизирует задержку ответов. для доступа к сайту продукта применяется сервис Yandex Cloud DNS.

Для сборки версии своего приложения студентам достаточно запустить SSH-скрипт в интерфейсе командной строки Yandex Cloud CLI.

В развёрнутой инфраструктуре вуз оплачивает только хранение и операции с данными в бессерверном режиме. при этом специальный тариф от Yandex Cloud позволяет бесплатно производить 1 млн операций в месяц.

Сначала ФИИТ решил протестировать развёртывание на примере проекта, приуроченного к фестивалю «Дни космоса» в Екатеринбурге.

Студенты разрабатывали систему бронирования мест на события в рамках фестиваля «Дни космоса» в Екатеринбурге — ежегодного мероприятия, которое приурочено к празднованию Дня космонавтики.

Фестиваль, организованный фондом «Хочу в науку» при поддержке мэрии Екатеринбурга, позволяет гостям посетить десятки мероприятий, посвящённых космосу и его исследованию. Посещение бесплатное, но количество мест ограничено. Например, в планетарии экскурсии проводятся для групп до 20 человек. Соучредитель фонда «Хочу в науку» Ксения Кантор предложила студентам ФИИТ УрФУ разработать систему бронирования билетов для мероприятия.

Разработку нужно было закончить за полтора месяца, к 1 апреля. В проекте участвовали трое студентов.

Чтобы быть уверенными в возможности развёртывания продакшена, команда проекта протестировала инфраструктуру, развернув «заглушку» приложения. Бэкенд на Python развернули в Yandex  Serverless Container, фронтенд на React разместили в объектном хранилище Yandex Object Storage. для хранения данных выбрали Yandex Managed Service for YDB, а API Gateway позволил использовать один URL-адрес для всех частей приложения. Затем, ближе ко времени релиза, команда зарегистрировала реальный домен и с помощью сервисов Yandex Cloud настроила DNS и выпуск сертификатов для работы HTTPS.

Релиз приложения состоялся в срок, в начале апреля. 8 апреля посетители пришли на фестиваль и прошли по своим билетам, полученным через приложение, на выбранные мероприятия. Разработанное веб-приложение успешно отработало с 8 по 15 апреля. Системой бронирования воспользовались около 650 уникальных пользователей, было выдано около 2000 билетов на мероприятия.

После запуска приложения студенты столкнулись с необходимостью изменить тип данных для хранения дат рождения посетителей. Внести эти доработки помогла реальная обратная связь от пользователей. Возможность получить отзывы от аудитории и внести по ним правки — одно из самых ценных преимуществ использования Yandex Cloud в обучении. Теперь студенты могут понимать потребности целевой аудитории и учитывать их при реализации продукта. Проект команды на конкурсе УрФУ оказался среди 24 лучших студенческих работ за учебный год и одним из 4-х лучших по IT-тематике. Созданный продукт доступен для демонстрации потенциальным работодателям.

Сейчас студенты уже используют инфраструктуру для развёртывания собственных продакшен-решений. Эксперимент оказался успешным, и ФИИТ УрФУ решил в дальнейшем внедрять сервисы облачной платформы в процесс обучения.

Тестирование с участием реальных пользователей перед трудоустройством в IT-компании

Serverless-технологии Yandex Cloud позволяют студентам УрФУ разрабатывать полезные приложения, публиковать их и получать реальную обратную связь от пользователей. Будущие разработчики уже на этапе обучения могут разобраться, какие архитектурные решения более удачны и тщательно подготовиться к профессии, применив свои знания на практике. А УрФУ смог построить полноценный учебный процесс с помощью serverless-технологий и обучать начинающих разработчиков.

Четыре команды студентов ФИИТ УрФУ уже развернули свои приложения в serverless-инфраструктуре Yandex Cloud, два проекта дошли до стадии коммерческого внедрения и переданы заказчикам.

В планах ФИИТ УрФУ в партнёрстве с Yandex Cloud масштабировать этот результат: рассказывать студентам об успешных кейсах сокурсников, предоставлять бонусы за развёртывание приложений в виде дополнительных баллов на защите проектов, а также давать конкретные рекомендации и шаблоны приложений, в частности предлагать пройти курс Яндекс Практикума «Инженер облачных сервисов». Увидев реальный результат работы студентов, заказчики также всё больше заинтересованы предлагать им идеи востребованных продуктов.

Мнение

Иван Домашних,
руководитель направления ФИИТ УрФУ
Иван Домашних,
руководитель направления ФИИТ УрФУ

Serverless-технологии Yandex Cloud увеличивают опыт, который могут получить студенты IT-направлений от проектного обучения. Происходит это за счёт возможности опубликовать свои разработки и получить обратную связь от реальных пользователей, а также за счёт использования инструментов развёртывания, которые реально используются в индустрии. Рекомендую обращаться к коллегам из Yandex Cloud для повышения качества IT-образования