HighLoad - высоконагруженные вычислительные системы

HighLoad - высоконагруженные вычислительные системы

Курс читается для магистрантов первого года обучения

О программе

Курс направлен на разработку и эксплуатацию высоконагруженных распределённых микросервисных систем, с упором на масштабируемость, отказоустойчивость и оптимизацию производительности. Основные темы и практики, связанные с HighLoad:


Ключевые аспекты курса HighLoad

  1. Нагрузочное тестирование и оптимизация

    • Использование K6 для моделирования нагрузки (вставка/чтение данных в разных пропорциях) и анализа времени отклика.
    • Построение графиков зависимости производительности от ресурсов (CPU, RAM) и настройка ограничений в Docker/Kubernetes.
    • Автоматизация заполнения тестовых данных перед нагрузкой (Python + Faker).
  2. Масштабируемость и управление ресурсами

    • Настройка ограничений CPU/MEM для контейнеров (Docker Compose, Kubernetes).
    • Использование Horizontal Pod Autoscaler (HPA) в Kubernetes для автоматического масштабирования под нагрузку.
    • Тестирование сценариев с разным балансом операций (95% чтение / 5% запись и т.д.).
  3. Кэширование и снижение нагрузки на БД

    • Реализация кэширования данных в микросервисах (HashMap → Redis).
    • Оптимизация запросов к PostgreSQL за счёт кэширования статистики и часто используемых данных.
  4. Отказоустойчивость и устойчивость к пикам нагрузки

    • Интеграция Resilience4j для retry, circuit breaker и управления ошибками при падении сервисов.
    • Настройка readiness/liveness probes в Kubernetes для автоматического восстановления неработоспособных подов.
  5. Работа с распределёнными системами

    • Использование Apache Kafka для асинхронной обработки данных и декомпозиции нагрузки.
    • Тестирование производительности с Kafka (параллелизм потребителей, партиционирование топиков).

Практические инструменты и технологии

  • K6 — нагрузочное тестирование.
  • Kubernetes (k3s) — оркестрация, автоскалирование (HPA), управление ресурсами.
  • Redis — кэширование данных.
  • Resilience4j — защита от сбоев в микросервисах.
  • Prometheus/Grafana — мониторинг метрик.
  • Docker Compose — локальное тестирование под нагрузкой.

Цель курса

Подготовить студентов к созданию систем, способных выдерживать высокие нагрузки, за счёт:

  • Точного расчёта ресурсов (CPU/MEM).
  • Эффективного масштабирования.
  • Оптимизации доступа к данным (кеширование, асинхронность).
  • Обеспечения отказоустойчивости и автоматического восстановления.

Курс сочетает теоретические знания с практикой, включая реализацию реальных сценариев HighLoad-архитектур.