Практикум можно условно разбить на три части
- управление виртуальным машинами Linux
- нагрузочное тестирование собственного стэка и подходы к планированию мощностей
- масштабирование СУБД
Управление виртуальным машинами LinuxУчастники ставят, собирают, конфигурируют свой собственный стэк - мы поддерживаем практически любой стэк (Java, Python, PHP, C#, Golang, node.js; MySQL или PostgreSQL), поскольку вопросы масштабируемости и производительности общеуниверсальны и не зависят от стэка.
Вы изучите основы администрирования Linux: управление пакетами при помощи пакетного менеджера apt, ручная сборка из исходников и управление ручными сборками, конфигурация и управление systemd-сервисами, мониторинг и базовый анализ производительности с Prometheus и Grafana.
Мы обсудим основы параллелизма в Linux, модели серверов, почему nginx работает супер-быстро и лучше, чем Apache, почему MySQL имеет лучшую серверную модель, чем PostgreSQL, и как с этим бороться и успешно использовать PostgreSQL в больших проектах. В дополнение к вашему любимому серверу приложений вы будете использовать nginx в качестве балансировщика и обратного прокси, MySQL или PostgreSQL в качестве базы данных и Memcached или Redis в качестве кэш-сервера.
Нагрузочное тестирование собственного стэка и подходы к планированию мощностейМы изучим основы настройки производительности, тестирования производительности и выжмем максимальную пропускную способность из вашей виртуальной машины. Наш текущий студенческий "рекорд" — 100K "синтетических" RPS с Golang/Fiber на довольно скромной виртуалке.
Участники построят latency/RPS-диаграммы и сравнят показатели производительности и ограничения компонент вашего стека. Мы используем wrkx (нашу доработку wrk2), но поскольку у нас настоящая программа R&D, мы будем рады использовать любой инструмент, поддерживающий независимо управляемые клиентские потоки и пул соединений.
Масштабирование СУБДВ этом модуле мы изучим (всё будет доступно на вашей собственной инфраструктуре):
- кластерный Redis
- кластерная СУБД CockroachDB
- шардинг-прокси SPRQ поверх классического PostgreSQL 17
Везде изучим, как сделано шардирование, переключение мастера, решардинг и тд.