О курсе

Практикум условно разделён на три части: управление виртуальными машинами Linux, нагрузочное тестирование собственного стека с подходами к планированию мощностей и масштабирование СУБД. Участники самостоятельно собирают и конфигурируют стек; по описанию поддерживаются Java, Python, PHP, C#, Golang, node.js, а также MySQL или PostgreSQL, поскольку вопросы масштабируемости рассматриваются как не зависящие от стека.

В блоке по Linux разбираются управление пакетами через apt, ручная сборка из исходников, работа с systemd-сервисами, мониторинг и анализ производительности с Prometheus и Grafana. Отдельно обсуждаются параллелизм в Linux, серверные модели, сравнение nginx и Apache, MySQL и PostgreSQL, а также использование nginx как балансировщика и обратного прокси, Memcached или Redis как кэш-сервера.

Модуль нагрузочного тестирования посвящён настройке и тестированию производительности, построению latency/RPS-диаграмм и сравнению ограничений компонентов стека. Упоминается инструмент wrkx (доработка wrk2) и автоматизация через lsmt; в описании приводится студенческий результат около 100K синтетических RPS на Golang/Fiber.

В части по СУБД рассматриваются кластерный Redis, кластерная СУБД CockroachDB и шардинг-прокси SPQR поверх PostgreSQL 17. Заявленные темы включают шардирование, переключение мастера и решардинг. Программа состоит из восьми занятий, включая резервную встречу для сдачи практики.

Что рассматривается в программе

  • Управление пакетами apt, ручная сборка из исходников и работа с systemd-сервисами
  • Мониторинг и анализ производительности с Prometheus и Grafana
  • Нагрузочное тестирование, построение latency/RPS-диаграмм и планирование мощностей
  • Работа с nginx как балансировщиком и обратным прокси
  • Использование Memcached или Redis в качестве кэш-сервера
  • Разбор кластерного Redis, CockroachDB и шардинг-прокси SPQR поверх PostgreSQL 17
  • Рассмотрение шардирования, переключения мастера и решардинга
  • Проектирование высоконагруженных систем с архитектурными брейншторм-сессиями

Кому может быть полезен курс

  • Middle/Senior-разработчикам, интересующимся системным дизайном хайлоад-проектов
  • Техлидам и архитекторам, которым нужно ознакомиться с управлением Linux-инфраструктурой и планированием мощностей
  • EM/CTO, желающим систематизировать знания о разработке больших проектов
  • Специалистам, которым нужно разобраться в шардировании и кластерных СУБД
  • Тем, кто готовится к секциям системного дизайна на интервью

Вопросы о программе

Какие стеки поддерживаются в практикуме?

По описанию поддерживается практически любой стек, включая Java, Python, PHP, C#, Golang и node.js, а также MySQL или PostgreSQL. Вопросы масштабируемости и производительности рассматриваются как общеуниверсальные.

Какие инструменты используются для нагрузочного тестирования?

В программе упоминается wrkx — доработка wrk2, а также подходы к автоматизации через lsmt. Отмечается, что могут использоваться любые инструменты, поддерживающие независимо управляемые клиентские потоки и пул соединений.

Какие СУБД и технологии рассматриваются в модуле масштабирования?

В модуле рассматриваются кластерный Redis, кластерная СУБД CockroachDB и шардинг-прокси SPQR поверх классического PostgreSQL 17. Заявленные темы включают шардирование, переключение мастера и решардинг.

Кто автор курса?

Автор курса — Алексей Рыбак (Devhands), CTO с 20-летним опытом высоконагруженных проектов. В описании указано, что он был одним из первых разработчиков Bumble/Badoo, руководил платформенной разработкой и занимал позиции CTO и генерального директора московского офиса разработки.