Dozhd
Администратор
- Регистрация
- 18 Янв 2014
- Сообщения
- 135.847
- Реакции
- 387.016
Складчина: Масштабирование Rails-приложений [Юрий Самойленко] [Thinknetica]
Этот воркшоп для вас, если вы:
Хотите быть готовым к горизонтальному масштабированию и сложным архитектурным вызовам.
Стремитесь эффективно использовать ресурсы и обеспечить стабильную работу системы под нагрузкой
Сталкивались с проблемами производительности и стремитесь лучше понимать, как их предсказывать и устранять
Хотите быть готовым к нетривиальным и неочевидным проблемам, возникающим при масштабировании
День 1. Стратегии масштабирования Rails-приложений
Изучим общие подходы к масштабированию, параллельной обработке данных, асинхронности и рассмотрим влияние на производительность и потребление ресурсов.
Результат
Сможете выбрать конфигурацию web-сервера, подходящую именно под вашу нагрузку
Определитесь со стратегией масштабирования: потоки, процессы или файберы
Оптимизируете потребление памяти при масштабировании
Содержание
Проблемы и подходы к масштабированию
Введение в процессы/потоки: 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-приложений
Разберёмся с проблемами общих данных при масштабировании и вариантами их решения. На примерах рассмотрим техники синхронизации данных и обеспечения одновременного доступа. Научимся настраивать мониторинг системы для повышения Observability
Результат
Научитесь заранее решать типовые проблемы и проблемы с общим доступом к данным
Сможете организовать мониторинг и всегда быть в курсе происходящего в системе
Поймете, как устроено взаимодействие экземпляров приложения между собой
Содержание
Кеширование: KeyDd/Redis
Синхронизация: Leader Election и Distributed Locking, Consul/Redlock
Работа с данными: Posix-File, S3/MinOO
Мониторинг: Victoria/Prometheus, dynamic targets
Service Discovery: consul, traefik
День 3. Разделение приложений на компоненты и налаживание взаимодействия
Разберёмся, из каких функциональных частей состоит Rails-приложение, как они взаимодействуют и масштабируются, какое место занимают в выполнении бизнес-функций.
Результат
Сможете разделять приложение на части с точки зрения бизнес-функций
Научитесь выделять и масштабировать отдельно только нагруженные компоненты
Повысите качество обслуживания приложения на протяжении его жизненного цикла
Содержание
Проблемы и выгоды единой кодовой базы
HTTP-компонент. Rails
JOBS-компонент. Solid Queue, Sidekiq, Delayed Job
Cron/Scheduler-компонент, Rufus Scheduler
Вспомогательные компоненты: AMQP-listener, KAFKA-listener
Мониторинг компонентов приложений
Service Discovery компонентов приложений
Этот воркшоп поможет:
Настроить сервер под реальную нагрузку
Выберете подходящую конфигурацию веб-сервера, определитесь со стратегией масштабирования и сократите потребление памяти.
Избежать типовых проблем масштабирования в продакшене
Научитесь организовывать доступ к данным, выстраивать мониторинг и понимать взаимодействие экземпляров приложения.
Масштабировать приложение без лишних затрат
Разделите приложение на части по бизнес-функциям и оптимизируйте нагруженные компоненты.
Обеспечить стабильность и высокую доступность
Улучшите поддержку приложения на всех этапах жизненного цикла и добьётесь надежной и предсказуемой работы приложения.
Автор воркшопа - Юрий Самойленко
Архитекторв и Техлид в RNDSOFT
20+ лет опыта в IT
Более 10 лет в области web, ruby/rails, асинхронных систем
Эксперт по распределённым системам и devops
ex-Core Linux Developer
Помогает командам создавать надёжные и масштабируемые системы
В настоящее время работает в RNDSOFT - техлид, архитектор, devops и еще много всего интересного
СКАЧАТЬ
Этот воркшоп для вас, если вы:
Хотите быть готовым к горизонтальному масштабированию и сложным архитектурным вызовам.
Стремитесь эффективно использовать ресурсы и обеспечить стабильную работу системы под нагрузкой
Сталкивались с проблемами производительности и стремитесь лучше понимать, как их предсказывать и устранять
Хотите быть готовым к нетривиальным и неочевидным проблемам, возникающим при масштабировании
День 1. Стратегии масштабирования Rails-приложений
Изучим общие подходы к масштабированию, параллельной обработке данных, асинхронности и рассмотрим влияние на производительность и потребление ресурсов.
Результат
Сможете выбрать конфигурацию web-сервера, подходящую именно под вашу нагрузку
Определитесь со стратегией масштабирования: потоки, процессы или файберы
Оптимизируете потребление памяти при масштабировании
Содержание
Проблемы и подходы к масштабированию
Введение в процессы/потоки: 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-приложений
Разберёмся с проблемами общих данных при масштабировании и вариантами их решения. На примерах рассмотрим техники синхронизации данных и обеспечения одновременного доступа. Научимся настраивать мониторинг системы для повышения Observability
Результат
Научитесь заранее решать типовые проблемы и проблемы с общим доступом к данным
Сможете организовать мониторинг и всегда быть в курсе происходящего в системе
Поймете, как устроено взаимодействие экземпляров приложения между собой
Содержание
Кеширование: KeyDd/Redis
Синхронизация: Leader Election и Distributed Locking, Consul/Redlock
Работа с данными: Posix-File, S3/MinOO
Мониторинг: Victoria/Prometheus, dynamic targets
Service Discovery: consul, traefik
День 3. Разделение приложений на компоненты и налаживание взаимодействия
Разберёмся, из каких функциональных частей состоит Rails-приложение, как они взаимодействуют и масштабируются, какое место занимают в выполнении бизнес-функций.
Результат
Сможете разделять приложение на части с точки зрения бизнес-функций
Научитесь выделять и масштабировать отдельно только нагруженные компоненты
Повысите качество обслуживания приложения на протяжении его жизненного цикла
Содержание
Проблемы и выгоды единой кодовой базы
HTTP-компонент. Rails
JOBS-компонент. Solid Queue, Sidekiq, Delayed Job
Cron/Scheduler-компонент, Rufus Scheduler
Вспомогательные компоненты: AMQP-listener, KAFKA-listener
Мониторинг компонентов приложений
Service Discovery компонентов приложений
Этот воркшоп поможет:
Настроить сервер под реальную нагрузку
Выберете подходящую конфигурацию веб-сервера, определитесь со стратегией масштабирования и сократите потребление памяти.
Избежать типовых проблем масштабирования в продакшене
Научитесь организовывать доступ к данным, выстраивать мониторинг и понимать взаимодействие экземпляров приложения.
Масштабировать приложение без лишних затрат
Разделите приложение на части по бизнес-функциям и оптимизируйте нагруженные компоненты.
Обеспечить стабильность и высокую доступность
Улучшите поддержку приложения на всех этапах жизненного цикла и добьётесь надежной и предсказуемой работы приложения.
Автор воркшопа - Юрий Самойленко
Архитекторв и Техлид в RNDSOFT
20+ лет опыта в IT
Более 10 лет в области web, ruby/rails, асинхронных систем
Эксперт по распределённым системам и devops
ex-Core Linux Developer
Помогает командам создавать надёжные и масштабируемые системы
В настоящее время работает в RNDSOFT - техлид, архитектор, devops и еще много всего интересного
СКАЧАТЬ
Для просмотра скрытого содержимого вы должны зарегистрироваться
Возможно, Вас ещё заинтересует:
- 9-дневный тренинг-марафон «Разблокируйте ваш позвоночник и внутренние органы всего за 20 минут в день [Издательство Неоглори]
- Жесткий Айки-Цигун [Сергей Ли]
- Русский язык для 6 класса [Скороходы] [Елена Нуднова]
- История для 8 класса [Скороходы] [Наталья Великоцкая]
- [ИИ] Чат-бот с искусственным интеллектом ChatGPT [Team №18 на 1 месяц по 10 человек] [openai.com]
- Видеокурс по работе с брусовочной машиной А-801 [Семён Бусов]