Що нового?

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

Інформація про покупку
Тип покупки: Складчина
Ціна: 3934 ГРН
Учасників: 0 з 3
Організатор: Відсутній
Статус: Набір учасників
Внесок: 1363.8 ГРН
0%
Основний список
Резервний список

Gadzhi

Модератор
Масштабирование 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
https://thinknetica.com/pro/rails_scaling_workshop
 
Угорі