О компании

«Открытое образование.рф» — образовательная платформа, объединяющая 1,7 миллиона обучающихся и предлагающая бесплатный доступ к более чем 720 онлайн-курсам от шестнадцати ведущих вузов России. Любой пользователь может пройти онлайн-курс, сдать итоговый экзамен и затем получить сертификат вуза-разработчика онлайн-курса.

Переход в Yandex Cloud дал возможность упростить архитектуру платформы и отказаться от поддержки собственного решения для балансировки нагрузки в пользу аналога от Yandex. Использование платформенных облачных сервисов позволило сократить затраты на инфраструктуру на 50%.

Смена облачного провайдера как подготовка к учебному «сезону»

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

С первым облачным провайдером «Открытое образование» работали до лета 2020 года. У него не было большого выбора готовых сервисов, поэтому разработчикам нужно было разрабатывать и внедрять собственные решения. Это серьезно усложняло внутреннюю архитектуру платформы. Клиент захотел упростить ее и решил сменить провайдера на того, у которого было бы много готовых сервисов.

Команда «Открытого образования» протестировала разные облачные платформы: оценила их возможности, стоимость и документацию. В итоге остановились на Yandex Cloud: он предлагает сервисы, которые позволяют перенести в облако еще больше инфраструктуры (например, хранилище и балансировщик) и удовлетворяет требованиям 152-ФЗ.

Еще одним преимуществом Yandex Cloud, помимо уменьшения стоимости, стало то, что у него есть три распределенных дата-центра: в Московской, Владимирской и Рязанской областях. У прошлого провайдера их было только два.

Облегчение архитектуры платформы за счет сервисов Yandex Cloud

Для реализации проекта клиент выбрал несколько сервисов:

С помощью Compute Cloud развернули 60 виртуальных машин разной мощности: от 2 vCPU до 32 vCPU, от 2Гб до 48Гб RAM.

Прошлый опыт показал, что на платформе «Открытое образование.рф» есть некоторые сервисы, которым требовались особенные условия и мощности. У прошлого провайдера было мало гибкости при выборе мощности: предоставлялся выбор из списка с жестко заданными комбинациями vCPU и RAM, что сильно усложняло работу. Во время переезда в Yandex Cloud появилась возможность гибко распределять мощности. Например, ядро платформы Open edX, написанное на Python с использованием фреймворка Django — одна из самых ресурсозатратных частей платфомы, поэтому его компоненты были разбиты на большее количество виртуальных машин.

Использование сервиса Network Load Balancer позволило заменить собственное решение для баланса нагрузки, которое было сделано на основе VRRP и keepalived. Это упростило внутреннюю архитектуру платформы.

Объектное хранилище со своих виртуальных машин перенесли на Object Storage. С помощью этого сэкономили ресурсы, упростили работу с объектным хранилищем и повысили его надежность.

В процессе переезда изменили некоторые элементы инфраструктуры:

  • Заменили доступ к одному из внутренних сервисов на защищенный от DDoS IP-адрес. Основная часть платформы работала через Qrator с раскрытием ключей, но это оказалось несовместимо с одним из внутренних сервисов, работающем на WebSockets. Эту проблему удалось устранить благодаря доступу через защищенный IP-адрес от Yandex Cloud.
  • Переписали с нуля и повысили качество файлов конфигурации Terrafrom.

Переезд всей инфраструктуры занял около трех недель и прошел без проблем. Для этого выбрали период наименьшей нагрузки — август, когда у всех студентов каникулы. В это время на три дня пришлось остановить платформу для переноса критичных компонентов, остальное время миграция шла плавно, и пользователи ничего не замечали.

Стабильная работа даже при пиковых нагрузках

Использование платформенных облачных сервисов позволило на 50% сократить затраты на инфраструктуру, при этом облачная инфраструктура на базе Yandex Cloud хорошо показала себя в период пиковой посещаемости. За счет того, что при переезде поменяли разбивку сервисов по виртуальным машинам, удалось добиться более равномерной нагрузки на сервисы.

Команда «Открытого образования» активно пользуется возможностью гибкого управления ресурсами: отключает и подключает машины в зависимости от нагрузки. Пока это делается вручную через панель управления, но в ближайшее время планируется начать тестирование возможностей Yandex Compute Cloud по автомасштабированию облака.

Мнение

Сергей Походяев,
архитектор облачной инфраструктуры платформы «Открытое образование.рф»
Сергей Походяев,
архитектор облачной инфраструктуры платформы «Открытое образование.рф»

Мы смогли оптимизировать финансовые затраты и заложили крепкий фундамент для дальнейшего развития платформы, т. к. Yandex Cloud предоставляет очень много интересных сервисов, которые можно будет в будущем использовать в нашем проекте.