HighLoad - высоконагруженные вычислительные системы
Курс читается для магистрантов первого года обучения
О программе
Курс направлен на разработку и эксплуатацию высоконагруженных распределённых микросервисных систем, с упором на масштабируемость, отказоустойчивость и оптимизацию производительности. Основные темы и практики, связанные с HighLoad:
Ключевые аспекты курса HighLoad
-
Нагрузочное тестирование и оптимизация
- Использование K6 для моделирования нагрузки (вставка/чтение данных в разных пропорциях) и анализа времени отклика.
- Построение графиков зависимости производительности от ресурсов (CPU, RAM) и настройка ограничений в Docker/Kubernetes.
- Автоматизация заполнения тестовых данных перед нагрузкой (Python + Faker).
-
Масштабируемость и управление ресурсами
- Настройка ограничений CPU/MEM для контейнеров (Docker Compose, Kubernetes).
- Использование Horizontal Pod Autoscaler (HPA) в Kubernetes для автоматического масштабирования под нагрузку.
- Тестирование сценариев с разным балансом операций (95% чтение / 5% запись и т.д.).
-
Кэширование и снижение нагрузки на БД
- Реализация кэширования данных в микросервисах (HashMap → Redis).
- Оптимизация запросов к PostgreSQL за счёт кэширования статистики и часто используемых данных.
-
Отказоустойчивость и устойчивость к пикам нагрузки
- Интеграция Resilience4j для retry, circuit breaker и управления ошибками при падении сервисов.
- Настройка readiness/liveness probes в Kubernetes для автоматического восстановления неработоспособных подов.
-
Работа с распределёнными системами
- Использование Apache Kafka для асинхронной обработки данных и декомпозиции нагрузки.
- Тестирование производительности с Kafka (параллелизм потребителей, партиционирование топиков).
Практические инструменты и технологии
- K6 — нагрузочное тестирование.
- Kubernetes (k3s) — оркестрация, автоскалирование (HPA), управление ресурсами.
- Redis — кэширование данных.
- Resilience4j — защита от сбоев в микросервисах.
- Prometheus/Grafana — мониторинг метрик.
- Docker Compose — локальное тестирование под нагрузкой.
Цель курса
Подготовить студентов к созданию систем, способных выдерживать высокие нагрузки, за счёт:
- Точного расчёта ресурсов (CPU/MEM).
- Эффективного масштабирования.
- Оптимизации доступа к данным (кеширование, асинхронность).
- Обеспечения отказоустойчивости и автоматического восстановления.
Курс сочетает теоретические знания с практикой, включая реализацию реальных сценариев HighLoad-архитектур.