Как платформа для хакатонов Codenrock масштабировала бизнес в облаке

Краткий пересказ YandexGPT
  • Codenrock — социальная сеть для IT-специалистов, которая помогает им развивать навыки и добиваться карьерного роста через участие в хакатонах, играх и соревнованиях.
  • Платформа Codenrock объединяет более 75 тысяч человек и работает с более чем 100 компаниями, среди которых Совкомбанк, «Магнит», МТС, Ростелеком и другие.
  • До 2020 года Codenrock использовала гибридную IT-инфраструктуру, но из-за необходимости соблюдения российского законодательства и исключения лицензионных рисков начала искать российское облачное решение.
  • Компания выбрала Yandex Cloud из-за аналогичного набора технологий и сервисов, возможности хранения данных в России, относительно низкой стоимости развёртывания систем и соответствия требованиям по защите данных.
  • Миграция на Yandex Cloud заняла около месяца и прошла в три этапа: сначала были перенесены второстепенные сервисы, затем основная функциональность платформы, и в конце — критически важные сервисы.
  • В Yandex Cloud используются различные сервисы, включая Yandex Object Storage, Yandex Managed Service for PostgreSQL, Yandex Managed Service for MySQL, Yandex Managed Service for Redis, Yandex Managed Service for ClickHouse, Yandex Message Queue, Yandex Cloud CDN, Yandex Cloud DNS, Yandex Virtual Private Cloud, Yandex Container Registry.
  • В результате миграции платформа стала масштабируемой, уменьшилось количество инфраструктурных инцидентов, снизилась нагрузка на команду DevOps, и компания смогла сосредоточиться на разработке, а не на поддержании работы серверов.
  • Codenrock планирует подключить дополнительные сервисы Yandex Cloud, например YandexGPT.
  • CTO Codenrock отметил, что переход в Yandex Cloud упростил работу с инфраструктурой, позволил сэкономить финансовые и человеческие ресурсы.

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

Компания Codenrock — социальная сеть для IT-специалистов, предоставляющая им возможность развития навыков и карьерного роста за счёт участия в хакатонах, играх и соревнованиях, организованных различными компаниями.

Эта платформа помогает участникам мероприятий раскрыть свои умения и таланты, найти подходящую работу, создать прототип своего продукта, выиграть призы, попробовать реализовать идеи и расширить портфолио. Такие форматы помогают как начинающим, так и опытным специалистам.

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

В результате компания обеспечила горизонтальное масштабирование своих систем при высокой нагрузке, уменьшила количество инфраструктурных инцидентов, и сейчас платформа бесперебойно работает с аудиторией, превышающей 75 000 человек.

Задача компании

Codenrock — одна из ведущих компаний на рынке организации хакатонов, игр, IT-соревнований. В последнее время компания превратилась из площадки для мероприятий в социальную сеть для специалистов информационной сферы, в которую входят свыше 75 тысяч человек.

Организаторами выступают компании различных направлений, которые внедряют IT-решения и ищут себе в команду подходящих сотрудников. Компании-организаторы укрепляют свой бренд на рынке, закрывают потребности в кадрах, получают инновационные идеи и готовые проекты. Codenrock работает с более чем 100 компаниями, в их числе: Совкомбанк, «Магнит», МТС, Ростелеком, «Лаборатория Касперского», «Самолёт», ГК «Иннотех», Sportmaster Lab, Райффайзенбанк, Saudi Aramco и другие.

Среди продуктов Codenrock:

  • платформа для организации и проведения внешних и внутренних хакатонов и IT-соревнований;
  • платформа для организации соревнований по машинному обучению;
  • игры для IT-аудитории;
  • площадка для проведения митапов;
  • площадка для сбора идей от сотрудников компании.

До 2020 года компания Codenrock использовала гибридную IT-инфраструктуру, включая значительное количество сервисов, которые с начала работы компании размещались на серверах крупного зарубежного облачного провайдера. Необходимость соблюдения российского законодательства и исключения лицензионных рисков привела к тому, что Codenrock в 2020 году стала искать эффективное решение среди российских поставщиков аналогичных технологий. Кроме того, всё возрастающая нагрузка на систему создавала проблемы — требовалось найти способ быстрого горизонтального масштабирования.

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

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

  • обеспечивает аналогичный набор технологий и сервисов, который предоставлял прежний облачный провайдер;
  • обеспечивает возможность хранения информации на серверах, которые находятся на территории России;
  • предлагает относительно низкую стоимость развёртывания систем;
  • предлагает инфраструктуру, отвечающую требованиям обработки информации в соответствии с международным генеральным регламентом о защите данных и российским законом № 152-ФЗ.

Кроме того, предполагалось, что размещение на одной облачной платформе позволит оптимизировать затраты на собственное оборудование.

Миграция за месяц

Система Codenrock прошла путь от приложения, состоящего из нескольких форм и расположенного на одном сервере, до полноценной SaaS-платформы, включающей в себя как крупный сервис, который можно считать монолитным решением, так и набор более мелких сервисов. В платформе используются как решения с открытым исходным кодом, например Gitlab (Community Edition) для хранения решений участников, так и свои сервисы, например по запуску и автоматической проверке алгоритмических задач.

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

Полноэкранное изображение

Используемый стек технологий: Python, PHP, JavaScript и Kotlin — объектно-ориентированный язык программирования, работающий поверх Java Virtual Machine.

Переход на Yandex Cloud компания осуществляла самостоятельно, с помощью собственных DevOps-специалистов. Он занял приблизительно месяц.

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

Все сервисы, как внутренние, так и внешние, расположены в инфраструктуре Yandex Cloud в контейнерах, развёрнутых в Yandex Managed Service for Kubernetes®, а также на обычных виртуальных машинах.

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

Перенос данных не вызвал особенных трудностей и прошёл штатно.

Обработчик очередей для обмена сообщениями между компонентами распределённых приложений и микросервисов Yandex Message Queue задействован для реализации большого числа асинхронных задач в различных сервисах компании. Кроме этого, в обновлённом решении Codenrock используются такие сервисы Yandex Cloud, как:

  • Yandex Cloud CDN — для организации сети распространения контента.
  • Yandex Cloud DNS — для администрирования записей DNS и DNS‑запросов.
  • Yandex Virtual Private Cloud — для управления облачными сетями, которые передают информацию между ресурсами Yandex Cloud.
  • Yandex Container Registry — для управления образами и контейнерами Docker.

Сейчас компания планирует подключить дополнительные сервисы, такие как YandexGPT.

Результаты

Миграцию на облачную инфраструктуру удалось осуществить за месяц и без даунтайма сервисов Codenrock.

Все поставленные цели миграции достигнуты, платформа в полном объёме бесперебойно работает на облачной инфраструктуре, обслуживая более чем семидесятипятитысячную аудиторию Codenrock.

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

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

Кроме того, благодаря гарантированному SLA облака удалось значительно снизить количество инфраструктурных инцидентов.

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

Мнение

Наш переход в Yandex Cloud существенно упростил работу с инфраструктурой проекта. Удобно, когда все сервисы в одном месте. Быстро и безопасно, когда они внутри одной сети. Наша компания выиграла и в финансовых, и в человеческих ресурсах после перехода на Yandex Cloud.
Никита Хорев,
CTO Codenrock

Решим вашу IT-задачу

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