Программирование [Thinknetica] Масштабирование Rails-приложений

Регистрация
7 Апр 2025
Сообщения
10,778
Реакции
81
Автор: Thinknetica​
Название: Масштабирование Rails-приложений​

cover.jpg

Продолжительность: 6 ч 23 мин Количество уроков: 3 Видео Язык: Русский Вес архива: 1,26 ГБ


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

Кому подходит этот воркшоп

Вы получите максимум от обучения, если:

• Готовитесь к работе с высоконагруженными Rails-приложениями.
• Хотите эффективно использовать ресурсы сервера и понимать, как они расходуются.
• Столкнулись с проблемами производительности и ищете системный подход к их устранению.
• Хотите предвидеть и предотвращать ошибки, возникающие при масштабировании.

День 1. Стратегии масштабирования Rails-приложений

Что разберём

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

Результаты первого дня

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

Содержание дня

• Типичные проблемы и проверенные методы масштабирования.
• Процессы vs потоки: различия по CPU и I/O нагрузкам.
• Архитектуры Puma (multithreaded/multi-process/standalone), Passenger Master Process.
• Асинхронная обработка запросов: throw:async, Rack socket hijacking.
• Работа с памятью: Copy-on-Write, Garbage Collection, фрагментация.

День 2. Вызовы масштабирования данных в Ruby

На втором дне вы проработаете типичные проблемы совместного доступа к данным и увидите, как обеспечить целостность, синхронизацию и наблюдаемость в распределённой среде.

Результаты второго дня

• Научитесь предотвращать коллизии и ошибки при доступе к общим данным.
• Сможете выстроить мониторинг и контролировать состояние всех компонентов системы.
• Поймёте, как взаимодействуют части приложения при увеличении нагрузки.

Содержание дня

• Кэширование: KeyDB/Redis.
• Синхронизация: leader election, распределённые блокировки (Consul, Redlock).
• Хранение и обработка данных: POSIX‑файлы, S3/MinIO.
• Мониторинг: VictoriaMetrics, Prometheus, динамические цели.
• Service Discovery: Consul, Traefik.

День 3. Декомпозиция приложения и масштабирование модулей

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

Результаты третьего дня

• Сможете декомпозировать приложение на модули по бизнес‑функциям.
• Выделите самые нагруженные компоненты и научитесь масштабировать их отдельными контурами.
• Повысите надёжность и управляемость приложения на всём его жизненном цикле.

Содержание дня

• Плюсы и минусы единой кодовой базы.
• Компонент HTTP: архитектура Rails.
• Компонент Jobs: Solid Queue, Sidekiq, Delayed Job.
• Планировщики и фоновые задачи: Cron/Scheduler, Rufus Scheduler.
• Дополнительные компоненты: AMQP‑listener, Kafka‑listener.
• Мониторинг всех компонент приложения.
• Service discovery для модулей приложения.

Что вы получите в итоге

Настройка сервера под реальные нагрузки

• Выберете оптимальную конфигурацию веб‑сервера.
• Определитесь с эффективной стратегией масштабирования.
• Снизите расход памяти без потери производительности.

Решение типовых проблем масштабирования

• Поймёте, как организовать стабильный доступ к данным.
• Настроите мониторинг и обнаружение проблем до их проявления.
• Разберётесь в механизмах взаимодействия экземпляров приложения.

Экономичное масштабирование без избыточной инфраструктуры

• Разделите приложение на независимые функциональные модули.
• Оптимизируете производительность самых требовательных компонентов.
• Повысите стабильность и доступность системы.
• Улучшите обслуживание приложения на всём жизненном цикле.
• Сделаете работу приложения предсказуемой при росте нагрузки.

СКАЧАТЬ:
 📥 Скрытое содержимое! Войдите или Зарегистрируйтесь
 

Похожие темы

10,840Темы
10,893Сообщения
788Пользователи
MuhaНовый пользователь
Сверху