Эквио — LMS для мобильных сотрудников
Компания (Эквио) вышла на рынок корпоративных образовательных систем (LMS) в 2014 году. Исторически на нем представлены платформы нескольких ИТ-гигантов, но Эквио сосредоточилась на мобильных пользователях и компанииях, у которых значительна доля сотрудников работает на выезде. У них не всегда есть рабочее место в офисе, но смартфон или планшет есть у каждого.
Платформа Эквио объединяет видеохостинг, корпоративный портал, социальную сеть, планировщик задач и программу мотивации. Обучение сотрудников строится на основе интерактивных видеороликов, записываемых руководителем или специалистом. В качестве обучающего материала можно использовать любое видео со смартфона, SCORM, PDF, HTML5 или запись вебинара. При этом руководитель видит процесс прохождения курсов подчиненными и их ответы на контрольные вопросы. Геймификация процесса обучения помогает повысить вовлеченность и удержание внимания сотрудников. Так, в одном из крупных проектов «Эквио», более 85% пользователей взаимодействуют с платформой хотя бы раз в месяц. Это высокий показатель для дистанционного обучения.
Несмотря на молодость платформы, ее клиентами стали крупные российские и международные компании: МТС, Kärcher, Mondelēz и многие другие. Выход на международные корпорации и быстрый рост количества пользователей поставили перед Эквио новые требования к стандартизации, надежности, отказоустойчивости и масштабированию сервисов. В результате платформа Эквио перенесла свою инфраструктуру в Yandex Cloud.
Пределы ручного управления
По состоянию на начало 2020 года инфраструктура Эквио базировалась на сервисах двух облачных провайдеров. Контейнеризация сервисов обеспечивалась инструментами Docker, но общая система управления отсутствовала.
При повышении нагрузки инженерам приходилось добавлять ресурсы в ручном режиме через веб-интерфейс провайдера. Ручное управление неизбежно снижает оперативность реакции и увеличивает время устранения сбоев. Плохая совместимость инфраструктуры разных клиентов, расположенной в облаках разных провайдеров или собственных облачных решениях, вызывала сложности при развертывании обновлений.
Необходимость немедленной модернизации всей архитектуры платформы стала очевидной. Руководство Эквио приняло решение о стандартизации виртуальной инфраструктуры на основе кластеров Kubernetes. Одновременно разрабатывалась новая концепция поддержки и обновлений платформы на основе модели GitOps, включающей в себя управление «инфраструктурой как кодом».
Какие преимущества получила Эквио с переходом на новую организацию инфраструктуры:
- автоматизация многих стандартных процессов;
- повышение надёжности и отказоустойчивости сервисов;
- улучшение работы платформы под высокими нагрузками;
- широкие возможности масштабирования «в реальном времени»;
- унификация развертывания платформы для новых клиентов;
- снижение нагрузки на команду DevOps.
В итоге были сформулированы критерии выбора единого облачного провайдера:
- Расположение инфраструктуры на территории РФ c обеспечением третьего уровня защищенности (3 УЗ) в соответствии с требованиями 152-ФЗ «О персональных данных».
- Предоставление облачным провайдером кластера Kubernetes как сервиса.
- Возможность использования инструментов Terraform для развертывания кластера Kubernetes.
- Предоставление объектного хранилища как сервиса, чтобы сократить время развертывания платформы под новых клиентов.
- Конкурентоспособные цены на аренду облачной инфраструктуры.
- Оперативная техническая поддержка со стороны архитекторов и инженеров облачного провайдера.
По результатам сравнения облачных провайдеров было выбрано Yandex Cloud, как наиболее полно удовлетворяющее всем перечисленным выше требованиям.
Managed Kubernetes как дважды два
«Коронакризис» и переход сотрудников большинства предприятий на удаленную работу привели к значительному росту спроса на онлайн-сервисы, в том числе образовательные. Компаниям пришлось сворачивать мероприятия и командировки, а также программы очного обучения и ввода новых сотрудников. Они начали переводить все возможные коммуникации в онлайн.
Уже сейчас в общем облачном сервисе Эквио Онлайн, где работают 88 клиентов (включая пилотные проекты), зарегистрировано более 120 тысяч пользователей из более чем 350 тысяч во всех проектах Эквио.
С введением режима самоизоляции нагрузка на сервисы Эквио и частота использования платформы уже существующими клиентами выросли почти в два раза. Лучше всего активность пользователей отражает показатель количества запросов к серверам платформы. Если до карантина в рабочие дни нагрузка составляла в среднем 80–90 rps (requests per second — запросов в секунду), то в апреле она выросла до 150-170 rps, а в пиках достигала 190 rps. Вероятно, тенденция перехода к дистанционному обучению сохранится и после окончания пандемии. Поэтому команда Эквио ускорила переход на Yandex Cloud.
Процесс начался в марте и занял около двух месяцев. Его основными этапами были:
- Разработка и тестирование файлов конфигурации Terraform, описывающих инфраструктуру сервиса, проходили с середины марта по начало апреля.
- В течение апреля производился перенос баз данных и их и развертывание в Облаке.
- К середине апреля в Yandex Cloud переехали окружения для тестирования и разработки. Началась подготовка к переносу продакшена.
- В конце апреля начался перенос производственного (production) окружения и его нагрузочное тестирование.
- В начале мая запущена продуктовая эксплуатация на сервисах Yandex Cloud.
Таким образом, перенос основных сервисов и данных занял менее двух месяцев. Работы проводились силами всего двух инженеров.
Yandex Cloud берет на себя всю подготовку низкоуровневого окружения, и клиенту остается только настроить конфигурацию кластера под архитектуру своих сервисов.
На июнь 2020 года в Yandex Cloud работают три кластера в Managed Service for Kubernetes.
Кластер с общей облачной платформой Эквио Онлайн работает на региональном мастере, распределенном по трем зонам доступности. Работу платформы поддерживают в среднем 12 подов, работающих на 5-7 узлах кластера. Количество узлов и подов может гибко изменяться в зависимости от нагрузки.
На зональных мастерах работают два сервисных кластера: на первом развернуты окружения для разработки и тестов, на втором — поисковая машина Elasticsearch.
Для технических нужд задействовано несколько виртуальных машин в Yandex Compute Cloud.
Сейчас архитектура основного кластера Эквио Онлайн выглядит так:
На «старом» облаке горизонтальное масштабирование происходило в виде добавления ресурсов на виртуальную машину через веб-интерфейс провайдера. Это делалось инженерами вручную при получении алертов о повышенной нагрузке на бэкенд платформы. Если пользователи проявляли повышенную активность в нерабочее для инженеров время, они могли почувствовать замедление работы.
В кластере Kubernetes такой проблемы нет. В конфигурации кластера настроено пиковое значение нагрузки на серверы бэкенда. Масштабирование платформы при росте нагрузки происходит путем увеличения числа подов в сервисе. При нехватке ресурсов для новых подов, кластер автоматически добавляет новый узел. Когда нагрузка падает, платформа уменьшает число подов и удаляет простаивающие узлы. Таким образом оптимизируется использование вычислительных ресурсов и не приходится платить за простаивающие мощности.
Еще одно серьезное преимущество технологии Kubernetes — автоматизация развертывания нового системного ландшафта для крупных клиентов, требующих выделенной инфраструктуры. Подготовку такого кластера выполняют скрипты Terraform и файлы YAML с описанием сервисов. При запуске скриптов в Yandex Cloud создается новый кластер Kubernetes и в нем запускается полный набор пользовательских сервисов и СУБД.
Сейчас платформа Эквио в Managed Service for Kubernetes использует в сумме 160 ядер CPU, 330 ГБ оперативной памяти, 2.5 ТБ на SSD для приложений и баз данных. При необходимости новые ресурсы подключаются автоматически в пределах, заданных конфигурацией.
Статический контент (видео и другие обучающие материалы) объемом 3 ТБ хранится на одном из сторонних облаков. Он будет перенесен в объектное хранилище Yandex Cloud после решения проблемы с совместимостью версий API.
Итоги перехода
Инфраструктура «Эквио» теперь работает на кластерах Managed Kubernetes в Yandex Cloud и готова принять новых клиентов. Все данные находятся на территории РФ, что обеспечивает соответствие законодательству и уменьшает время отклика для пользователей.
Модернизация обычно требует значительных материальных затрат. Но для Эквио переход был осуществлен собственными силами и принес положительный экономический эффект. Затраты на поддержку облачной инфраструктуры в Yandex Cloud снизились на 32,5% по сравнению с предыдущим провайдером. Этого удалось достичь за счет автоматизации, гибкого использования ресурсов и более выгодных тарифов.
Для типовых операций — например, подготовки ландшафта для нового клиента или управления конфигурацией существующей инфраструктуры — используется инструментарий Terraform. Выполнение типовых действий с помощью скриптов вместо ручной настройки через веб-интерфейс облачного провайдера решает сразу две задачи. Во-первых, существенно сокращается время развертывания кластера для нового клиента, а масштабирование действующих сервисов происходит автоматически. Во-вторых, уменьшается нагрузка на команду DevOps и из процесса конфигурирования устраняются ошибки, связанные с человеческим фактором. Для компании это означает повышение надежности сервисов и уровня обслуживания клиентов.
Мнение
Переход на Yandex Cloud даст нашим заказчикам ещё более стабильный уровень сервиса, гарантию безопасности данных, прогнозируемость работы платформы. Команда Эквио сможет улучшить стандарты техподдержки и более гибко реагировать на внезапный рост нагрузки при увеличении количества работающих пользователей на платформе. Новая облачная площадка позволит сделать функциональные обновления платформы более предсказуемыми и безопасными, сократить скорость разработки нового функционала от идеи до реализации. У разработчиков Эквио появилась возможность активнее тестировать продуктовые гипотезы и быстрее воплощать их в жизнь.