К нам обратилась онлайн-платформа образования «SkillUp» из Казани — стартап, запустивший курсы по программированию и дизайну. За последние 6 месяцев количество пользователей выросло с 500 до 5 000, и рост продолжался. Клиент столкнулся с критическими проблемами масштабирования.
Ситуация на момент обращения:
- Платформа работала на 2 VPS-серверах (Docker Compose) — часто не справлялись с нагрузкой
- Во время вебинаров (300-500 одновременных пользователей) сервис падал
- Деплой нового кода требовал 15-минутного простоя
- Нет автомасштабирования — ручное добавление ресурсов только после жалоб пользователей
- 6 микросервисов: веб-фронтенд, API, видеостриминг, чат, платёжный шлюз, email-уведомления
Клиент хотел получить инфраструктуру, которая автоматически масштабируется при пиках нагрузки (вебинары, запуск курсов), позволяет обновлять код без простоя и самовосстанавливается при сбоях.
Особенно болезненными были запуски новых курсов — в день старта курса на платформу приходило в 5-8 раз больше пользователей, чем обычно. Серверы не справлялись, страницы загружались по 15-20 секунд, видео буферизировалось, чат отваливался. По подсчётам клиента, каждый такой инцидент стоил 50 000-100 000 рублей из-за возвратов и оттока пользователей.
Команда разработки состояла из 5 человек: 3 бэкенд-разработчика, 1 фронтендер и 1 DevOps-инженер на полставки. Они уже использовали Docker для локальной разработки и Docker Compose на серверах, но понимали, что переросли это решение. CI/CD был организован через GitHub Actions, но деплой требовал 15-минутного простоя — процесс включал остановку контейнеров, пулл новых образов и запуск.
Видеостриминговый сервис был наиболее ресурсоёмким компонентом — он обеспечивал трансляцию вебинаров и запись лекций. Именно он первым падал при пиках нагрузки. Платёжный шлюз и email-уведомления, напротив, потребляли минимум ресурсов, но были критичны для бизнеса — их недоступность означала потерю оплат.