Kail
Организатор
Организатор
- Регистрация
- 09.04.2020
- Сообщения
- 418 908
- Реакции
- 41 479
- Монеты
- 1 191
- Оплачено
- 0
- Баллы
- 0
- #SkladchinaVip
- #1
[Devhands] Производительность и масштабируемость 2026 [Алексей Рыбак]
- Ссылка на картинку
-
Кому подойдет курс:
Middle/Senior разработчикам
Участники ставят, собирают, конфигурируют свой собственный стэк — мы поддерживаем практически любой стэк (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, мы будем рады использовать любой инструмент, поддерживающий независимо управляемые клиентские потоки и пул соединений.
Масштабирование СУБД. Мы изучим (всё будет доступно на вашей собственной инфраструктуре):
Программа подробнее:
Занятие 1. Управление Linux-сервером
Знакомство с виртуальной машиной, управление пакетами, сборка open source софта для исследований, работа в screen/tmux, systemd-юниты и управление сервисами, grafana/prometheus/экспортеры.
Занятие 2. Основы нагрузочного тестирования
Основы нагрузочного тестирования. Архитектура стрелялки, соединения, треды/воркеры, интенсивность и связь между ними. Coordinated omission. Перцентили. Знакомство с wrkx и подходами к автоматизации (lsmt). Проведение тестов, тюнинг nginx (выжать не менее 100K RPS на статику с одной ноды).
Занятие 3. Проведение нагрузочного тестирования
Создание собственного сервиса с динамически конфигурируемой нагрузкой на CPU (для языков с корутинами/горутинами/async-io — с особыми оговорками).
Занятие 4. Обсуждение результатов нагрузочного тестирования и планирование мощностей
Проведение нагрузочных тестов, анализ данных мониторинга, построение и анализ latency/throughput-диаграмм (показать диаграмму и рассказать, что она значит). Применение полученных данных в оценках планирования мощностей.
Занятие 5. Резервная встреча (сдача «хвостов»)
Резервная встреча для сдачи «хвостов» по практике «с инфрой». Краткое введение в принципы масштабирования приложений, кешей, СУБД. Что мы посмотрим в практикуме по масштабированию СУБД и почему именно это решение.
Занятие 6. Redis-кластер
Архитектура, принципы работы и практикум с кластерным Redis.
Занятие 7. Stateless PostgreSQL Query Router (кластер SPQR + PostgreSQL)
Архитектура, принципы работы и практикум с прокси-роутером SPQR и PostgreSQL.
Занятие 8. Кластер CockroachDB
Архитектура, принципы работы и практикум с кластером CockroachDB.
Автор курса Алексей Рыбак:
Middle/Senior разработчикам
- Изучите особенности системного дизайна хайлоад-проектов
- Научитесь масштабировать веб-серверы, приложения, кеши, СУБД
- Получите уникальную практику тюнинга производительности и управления кластерными системами
- Изучите основы управления Linux- инфрой, погрузившись «под капот», поближе к инфраструктуре
- Выжмете 100K RPS из своих сервисов и освоете искусство планирования мощностей
- Изучите особенности разработки распределенных систем, шардинг, CAP/PACELC-теоремы
- Спроектируете проект на 100M DAU
- Систематизируете знания в области разработки больших проектов
- Переосмыслите архитектурные подходы в более прагматичном, экономичном, инженерном ключе
- Изучите современные тренды и классификацию компонент, из которых "собираются" хайлоад-проекты
- Не понимаю, как оценить количество ресурсов
- Хочу научиться говорить на одном языке с системными аналитиками, devops, другими командами
- Хочу систематизировать знания в разработке хайлоад-проектов
- Хочу глубже понимать, как управляется Linux-инфраструктура
- Хочу научиться планировать нагрузки и считать бюджет
- Хочу понять, как шардировать классические СУБД, как работают кластерные СУБД
- Хочу прокачать знания, необходимые для моего карьерного роста
- Получить фундамент компетенций архитектора сложных и высоконагруженных информационных систем
- Получить навыки управления своей собственной инфраструктурой
- Получить навыки нагрузочного тестирования и тюнинга Linux-серверов
- Получить навыки масштабирования бекенд-систем в собственном облаке
- Получить практику проектирования высоконагруженных систем с архитектурными брейншторм-сессиями, практикой разработки архитектур и разбором ваших решений с подробной обратной связью
- Получить практику прохождения и проведения секций системного дизайна на интервью
- Цели практикума
- Занятие 1. Управление Linux-сервером
- Занятие 2. Основы нагрузочного тестирования
- Занятие 3. Проведение нагрузочного тестирования
- Занятие 4. Обсуждение результатов нагрузочного тестирования и планирование мощностей
- Занятие 5. Резервная встреча (сдача "хвостов")
- Занятие 6. Redis-кластер
- Занятие 7. Stateless PostgreSQL Query Router (кластер SPQR + PostgreSQL)
- Занятие 8. Кластер CockroachDB
- управление виртуальными машинами 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
- шардинг-прокси SPQR поверх классического PostgreSQL 17
Программа подробнее:
Занятие 1. Управление Linux-сервером
Знакомство с виртуальной машиной, управление пакетами, сборка open source софта для исследований, работа в screen/tmux, systemd-юниты и управление сервисами, grafana/prometheus/экспортеры.
Занятие 2. Основы нагрузочного тестирования
Основы нагрузочного тестирования. Архитектура стрелялки, соединения, треды/воркеры, интенсивность и связь между ними. Coordinated omission. Перцентили. Знакомство с wrkx и подходами к автоматизации (lsmt). Проведение тестов, тюнинг nginx (выжать не менее 100K RPS на статику с одной ноды).
Занятие 3. Проведение нагрузочного тестирования
Создание собственного сервиса с динамически конфигурируемой нагрузкой на CPU (для языков с корутинами/горутинами/async-io — с особыми оговорками).
Занятие 4. Обсуждение результатов нагрузочного тестирования и планирование мощностей
Проведение нагрузочных тестов, анализ данных мониторинга, построение и анализ latency/throughput-диаграмм (показать диаграмму и рассказать, что она значит). Применение полученных данных в оценках планирования мощностей.
Занятие 5. Резервная встреча (сдача «хвостов»)
Резервная встреча для сдачи «хвостов» по практике «с инфрой». Краткое введение в принципы масштабирования приложений, кешей, СУБД. Что мы посмотрим в практикуме по масштабированию СУБД и почему именно это решение.
Занятие 6. Redis-кластер
Архитектура, принципы работы и практикум с кластерным Redis.
Занятие 7. Stateless PostgreSQL Query Router (кластер SPQR + PostgreSQL)
Архитектура, принципы работы и практикум с прокси-роутером SPQR и PostgreSQL.
Занятие 8. Кластер CockroachDB
Архитектура, принципы работы и практикум с кластером CockroachDB.
Автор курса Алексей Рыбак:
- CTO с 20-летним опытом высоконагруженных проектов
- Одним из первых разработчиков Bumble/Badoo, руководил платформенной разработкой, CTO (300 млн пользователей, IPO по оценке $8 млрд)
- В Badoo прошёл путь от стартап-камикадзе до CTO (300 инженеров) и генерального директора Московского офиса разработки
- В роли CTO/VP создавал продукты и строил разработку в российских и глобальных компаниях:
- «Везёт» — второй по размеру такси-агрегатор в России
- Yum! Brands
- Fortune 1000 Restaurant Company
- Член Программного Комитета конференции Highload++
Показать больше
Зарегистрируйтесь
, чтобы посмотреть скрытый контент.
Скачать