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

Skyeng — онлайн-школа английского языка. Занятия в Skyeng проводятся на собственной веб-платформе Vimbox, которая связывает студентов и преподавателей со всего мира, а также хранит весь образовательный контент. Сейчас в школе занимается больше 100 тысяч учеников, со времени основания проведено уже 10 миллионов уроков.

Раньше тестовое окружение находилось на виртуальных машинах в AWS, но разработчиков Skyeng не устраивал долгий пинг (из Москвы около 50 мс, из остальных городов — еще больше) и довольно высокая стоимость. После переноса тестового окружения в Yandex Cloud удалось снизить пинг в два раза, снять ограничения на дисковые операции и снизить стоимость содержания в полтора раза.

Как снять ограничения на количество дисковых операций и не переплачивать

На момент миграции в Skyeng было около 80 разработчиков (сейчас более 200). У каждого есть своя облачная копия всей обучающей платформы.

Типичный тестовый сервер, с которым имеет дело каждый разработчик, содержал на момент миграции следующую конфигурацию: два ядра CPU, 8 ГБ RAM, 50 ГБ SSD. Раньше эти серверы располагались в Amazon Web Services. Тарифный план предоставлял каждому серверу 3 IOPS/ГБ, т. е. 150 операций с диском в секунду. Компания росла, и разработчикам стало этого не хватать. У текущего облачного провайдера снять ограничения на количество операций, не увеличив объем SSD или не переходя на инстансы типа С, было нельзя.

Также, чтобы организовать быструю и бесперебойную работу при использовании удаленного XDebug, команде нужен был стабильно хороший пинг до серверов. У текущего провайдера средний пинг составлял 100 мс, из Москвы — 50 мс, так что возникали ощутимые задержки.

В Skyeng приняли решение сменить облачного провайдера и перейти на Yandex Cloud для тестовых окружений. Ключевым фактором для перехода была возможность получить серверы с необходимыми техническими характеристиками без ограничения на дисковые операции и с требуемым пингом.

70 виртуальных машин из одного образа

Первым этапом стала миграция серверов из окружения разработки и тестирования. С этим самостоятельно справились технические специалисты Skyeng. Для решения задачи выбрали Yandex Compute Cloud, машины с двумя ядрами vCPU, 8 ГБ RAM, 50 ГБ SSD. На них развернули серверы разработчиков и базы данных PostgreSQL, MySQL®, Elasticsearch.

Чтобы понять, сколько виртуальных машин нужно, потребовалось время. Сначала разработчики столкнулись с трудностями при разворачивании баз данных, из-за того что производительность дисковых подсистем облачных машин отличалась от производительности «железных» серверов. Skyeng решили использовать больше отдельных виртуальных серверов. Таким образом проблема была решена.

Поскольку конфигурация тестовых машин была одинаковая для всех разработчиков, сделали образ одного сервера (тестинга), который затем размножили с помощью Terraform на 70 сотрудников.

Производительность растет, а пинг — снижается

Миграция заняла около месяца. Благодаря переносу тестовых серверов Skyeng в Yandex Cloud пинг до Москвы уменьшился в десять раз — до 5 мс, средний пинг — в два раза, до 50 мс. Это значительно ускорило разработчикам пошаговую отладку.

Помимо этого, появилась возможность изменять отдельные параметры сервера. Если у разработчиков Skyeng возникнут специфические задачи, настройки инфраструктуры могут быть точечно изменены на необходимые. Стоимость услуг сервиса при этом не меняется.

В результате проекта компании Skyeng удалось сэкономить около 60 тысяч рублей в месяц по сравнению с тем, сколько они платили предыдущему провайдеру за менее подходящие серверы. Если же сравнивать с инстансами type C от Amazon Web Services, переход на которые Skyeng рассматривал как альтернативу, то экономия получилась еще больше — 200–300 тысяч в месяц. Затраты на проект окупились меньше чем за год.

Сейчас в Yandex Cloud компания Skyeng использует больше 250 виртуальных машин и отдельные серверы с PostgreSQL, MySQL, Elasticsearch, Prometheus и VPN-шлюз.

Мнение

Артем Науменко,
руководитель инфраструктуры Skyeng
Артем Науменко,
руководитель инфраструктуры Skyeng

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