О чем эта история
Крупнейшая российская общеобразовательная онлайн-школа и библиотека видеоуроков по школьной программе ИнтернетУрок осуществляет обучение через собственную платформу. Для поддержания работы высоконагруженных сервисов компания использовала разные облачные платформы по всему миру и арендовала собственные стойки в ЦОДах.
Задача компании
ИнтернетУрок — это крупнейшая российская общеобразовательная онлайн-школа и библиотека видеоуроков по школьной программе. Обучение более 18000 детей из России и 100 стран мира осуществляется полностью в онлайн-режиме через собственную платформу. Кроме того, у сайта библиотеки более 3,5 миллионов пользователей ежемесячно. На платформе размещены 5000 видеоуроков, 4300 конспектов, 6300 тестов и 8200 тренажеров. Таким образом, ИнтернетУрок предоставляет полную экосистему для дистанционного обучения.
Чтобы поддерживать работу высоконагруженных сервисов, компания долгое время использовала разные облачные платформы по всему миру и арендовала собственные стойки в ЦОДах. В 2019 году было решено начать рефакторинг сервисов и переезд в единое облако. Для этого нужно было найти надежного партнера в России, который подходил бы по всем требованиям, и перенести все мощности на его инфраструктуру.
Как выбрать облако в России
Учитывая такие особенности работы онлайн-школы, как большое количество чувствительных персональных данных учеников, а также необходимость поддерживать работу сервисов даже при высокой нагрузке, будущая облачная платформа должна была соответствовать ряду критериев:
- Высокий уровень безопасности и соблюдение российского законодательства о персональных данных.
- Наличие необходимых облачных сервисов и подходящая дорожная карта их развития.
- SLA на облачные сервисы и оперативная поддержка.
- Прозрачное ценообразование.
IT-команда компании провела тестирование облачных провайдеров в России и остановилась на Yandex Cloud, так как облачная платформа Яндекса соответствовала этим критериям и активно развивала управляемые сервисы. Кроме того, платформа прошла сертификацию на соответствие требованиям безопасности информации и персональных данных, подтвердила выполнение всех требований ФЗ-152, Постановления Правительства № 1119 и Приказа ФСТЭК № 21.
Миграция в Yandex Cloud двумя командами
Перенос инфраструктуры на сервисы Yandex Cloud начался в 2020 году. Данные с собственных и арендованных серверов переехали в хранилища и управляемые СУБД на облачной платформе. Но, так как основная платформа ИнтернетУрок написана на Ruby в 2012–2013 годах и часть библиотек уже не общедоступна, при миграции из AWS необходимо было сделать рефакторинг кода. Было решено разделить переезд на два параллельных процесса, в которых участвуют несколько команд:
- Команды развития — занимаются созданием всех новых сервисов, которые сразу же базируются в Yandex Cloud, вся новая разработка написана на стеке PHP/React.
- Команда поддержки — занимается обновлением, оптимизацией и рефакторингом кода на Ruby, чтобы полностью переехать на облачную платформу Яндекса.
На данный момент в облаке используются следующие сервисы:
- Yandex Compute Cloud — на виртуальных машинах развернуты основные сервисы онлайн‑школы. Каждый сервис находится в кластере, который базируется на трех нодах в разных зонах, что обеспечивает стабильность и отказоустойчивую работу.
- Yandex Managed Service for PostgreSQL — почти все продукты онлайн‑школы построены на реляционной БД PostgreSQL, сервера также кластеризируются на трех нодах.
- Yandex Managed Service for ClickHouse — для чат-ботов и аналитики. В ClickHouse собирается вся BigData компании.
- Yandex Managed service for Elasticsearch — используется для быстрого поиска по данным учеников.
- Yandex Managed Service for Redis™ — для чат-ботов и рекомендательной системы. В Redis хранятся быстрые данные, а также весь кэш приложений.
- Yandex Managed Service for Apache Kafka® — используется как брокер сообщений для передачи данных в ClickHouse. Apache Kafka может быстро собирать в себе сообщения в реальном времени со всех продуктов интернет-школы для дальнейшей агрегации и передачи их в BigData‑хранилище.
- Yandex Object Storage — все файлы хранятся в S3-хранилище, что обеспечивает к ним быстрый доступ и гибкое масштабирование сервисов.
- Yandex Network Load Balancer — балансировка внутри кластеров.
Также в разных продуктах используются Yandex Virtual Private Cloud, Yandex Container Registry, Yandex Certificate Manager и Yandex Cloud DNS. На данный момент компания начала внедрение сервиса для визуализации и анализа данных в Yandex DataLens для отслеживания и анализа внештатных ситуаций на серверах. Параллельно команды начали работу и над новой платформой онлайн-школы, которая разрабатывается целиком в Yandex Cloud.
Компания Elastic ограничила доступ к сервису Elasticsearch для пользователей Yandex Cloud с апреля 2024 года. В связи с этим Yandex Managed service for Elasticsearch стал недоступен на платформе. Мы рекомендуем использовать Yandex Managed service for OpenSearch, который сопоставим по функциональности с Elasticsearch. Чтобы легко перенести данные в сервис Yandex Managed Service for OpenSearch, воспользуйтесь нашей инструкцией.
Стабильность и новые возможности
Перенос данных и сервисов в единое облако Yandex Cloud продолжается, но уже в разы повысилась скорость, стабильность и реакция на инциденты. Ресурсы онлайн-школы, расположенные на Amazon, открывались за 400 мс, в то время как на Yandex Cloud — всего за 130 мс. Кроме того, компания нашла новые возможности в сервисах Yandex Cloud. В частности, школа обратила внимание на сервис машинного обучения Yandex DataSphere, есть планы внедрить в чат-бот Yandex SpeechKit. Компания активно использует Yandex Managed Service for ClickHouse, на базе которого строится аналитика и готовятся к запуску рекомендательные сервисы.
В ближайшие планы компании входит следующее развитие платформы:
- Внедрить в Библиотеку уроков рекомендательную нейросеть, которая будет подбирать материалы, исходя из персональной статистики пользователя и больших данных.
- Запустить чат-бот для ответов на часто задаваемые вопросы пользователей, а также ответы по глоссарию (с поиском определения), классифицировать обращения в техподдержку.
- Повысить удобство пользовательского интерфейса Интерактивной системы зачисления (это система для документооборота между учениками и школой) и начать постепенную переработку всего интерфейса Домашней школы.
- Запустить проект геймификации и доски достижений, которые помогут ученикам быстрее адаптироваться и концентрироваться на самом важном.
Мнение
Yandex Cloud по нашему мнению является лучшим российским облачным сервисом по ряду факторов. От безопасности персональных данных до цены и реализации сервисов. При миграции нам очень помогала техподдержка, инженеры из Яндекса были очень вовлечены в процесс. Мы даже выступали бета-тестерами новых сервисов. В планах переехать полностью в облако и развивать разные ML-сервисы.