О курсе
Практикум условно разделён на три части: управление виртуальными машинами 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 и генерального директора московского офиса разработки.