Масштабирование Rails-приложений

6 участников

О чём курс

Система начинает «захлебываться» при росте нагрузки — этот воркшоп показывает, как перестроить архитектуру Rails-приложения для горизонтального масштабирования без потери стабильности. Вы разберете внутреннее устройство веб-серверов Puma и Passenger, научитесь оптимизировать потребление памяти и эффективно управлять процессами, потоками и файберами в условиях высокой нагрузки. Внутри — конкретные решения для синхронизации данных через Redis и Consul, настройка мониторинга с Prometheus и стратегии разделения монолита на изолированные компоненты (Web, Jobs, Cron), чтобы масштабировать только узкие места.

Программа обучения

  • День 1. Стратегии масштабирования Rails-приложений
    • Проблемы и подходы к масштабированию
    • Введение в процессы/потоки: IO-bound и CPU-bound нагрузки
    • Архитектура веб-серверов Puma (Multi-threaded, Multi-process, Standalone), Passenger Master Process
    • Асинхронная обработка запросов: throw :async, Rack Socket Hijacking
    • Потребление памяти: Copy On Write, Garbage collection, фрагментация памяти
  • День 2. Проблемы при масштабировании Ruby-приложений
    • Кеширование: KeyDd/Redis
    • Синхронизация: Leader Election и Distributed Locking, Consul/Redlock
    • Работа с данными: Posix-File, S3/MinOO
    • Мониторинг: Victoria/Prometheus, dynamic targets
    • Service Discovery: consul, traefik
  • День 3. Разделение приложений на компоненты и налаживание взаимодействия
    • Проблемы и выгоды единой кодовой базы
    • HTTP-компонент. Rails
    • JOBS-компонент. Solid Queue, Sidekiq, Delayed Job
    • Cron/Scheduler-компонент, Rufus Scheduler
    • Вспомогательные компоненты: AMQP-listener, KAFKA-listener
    • Мониторинг компонентов приложений
    • Service Discovery компонентов приложений
Складчина создана 25 марта 2025 г. · описание обновлено 23 марта 2026 г.
1 816 ₽ 4 900 ₽