Skip to main content
Back to course
k6: нагрузочное тестирование как система
1 / 176%

Что мы строим и для кого этот курс

10 минут

🗺️ Roadmap курса

Курс состоит из 17 уроков, разделенных на 4 трека: Основы → Практика → Интеграция → Продвинутые техники.

Легенда:

  • ⭐ Урок содержит реальный кейс с цифрами ROI
  • 🎯 Базовый уровень: стратегия и подготовка
  • 💻 Практика: написание тестов
  • 📊 Анализ: интерпретация результатов
  • 🔧 Интеграция: встраивание в процессы
  • 🚀 Продвинутый: масштабирование и оптимизация

Общая длительность: ~415 минут (7 часов чистого времени + упражнения)

Рекомендуемый темп: 2-3 урока в неделю с выполнением практических заданий. Полное прохождение курса: 6-8 недель.

О чем курс

  • Фокус — k6 как платформа под нагрузочное тестирование: от постановки целей до решения, выкатывать/не выкатывать.
  • Результат — готовый процесс: SLA/SLO → сценарии → прогон → разбор метрик → решение → план улучшений.
  • Формат — 70% практики, 30% методологии. Каждый урок заканчивается конкретными действиями и кодом.

Курс собирает k6 как систему: стратегия, сценарии, метрики, CI/CD, наблюдаемость и масштабирование генераторов.

Для кого

  • Senior Backend/Performance Engineers, которым надоел «тык палкой» без системного подхода.
  • Tech Leads & SRE, отвечающие за SLA и предотвращение инцидентов.
  • CTO, которым нужны данные для capacity planning и обоснования инфраструктурных расходов.

Не для новичков: предполагается опыт с CI/CD, мониторингом и базовое знакомство с k6/HTTP.

Результат — что вы сможете после курса

  • Обосновывать инфраструктурные расходы на основе данных нагрузочных тестов.
  • Автоматически блокировать релизы с регрессией производительности в CI/CD.
  • Находить узкие места через триангуляцию метрик k6 + APM + логи + трейсы.
  • Прогнозировать поведение системы на пиках (Black Friday, рекламные всплески).
  • Внедрить готовый процесс нагрузочного тестирования в свой релизный цикл.

Сквозной пример: ShopStack

Архитектура:

  • Frontend (Next.js) + API Gateway + микросервисы (Go/Java).
  • PostgreSQL (основная БД), Redis (кэш), Elasticsearch (поиск).
  • Kubernetes, Prometheus + Grafana + Jaeger/Tempo для observability.

Бизнес-контекст: Black Friday, рост x10 к обычной нагрузке. Цели: p95 < 500ms для критичных путей, доступность > 99.9%.

Потоки:

  • Reader — «browse → search → view product».
  • Buyer — «login → add to cart → checkout».
  • Admin — «upload product → publish».

Процентное соотношение потоков основано на реальных метриках: 80% пользователей только смотрят (Reader), 18% добавляют в корзину и покупают (Buyer), 2% — администраторы контента (Admin). Эти пропорции критичны для моделирования нагрузки.

Каждый урок возвращается к этим потокам: выводим SLO из реальных метрик, строим сценарии по логам, ищем bottleneck'и через APM и внедряем quality gate.

Как устроены уроки

  • Базовый трек (0–6): фундамент системы — от бизнес-целей к SLO, реалистичное моделирование нагрузки, привязка thresholds к бизнес-метрикам.
  • Продвинутый трек (7–12): триангуляция проблем (k6+логи+трейсы), quality gates в CI/CD, масштабирование до десятков тысяч VU, паттерны и канарейки в проде.

Что не входит: базовый JavaScript, настройка Prometheus/Grafana с нуля, основы Kubernetes/Docker и теория HTTP. Предполагается, что эти темы уже освоены.

После уроков вы сможете прогонять smoke/load/stress по чек-листу релиза, понимать, где bottleneck (сервис vs генератор), и обосновывать бизнесу capacity план.

✅ Чек-лист готовности к курсу

Перед началом убедитесь, что вы готовы:

Обязательные prerequisite:

  • Установлен k6: k6 version работает (иначе: k6.io/docs/get-started/installation)
  • Базовое знание JavaScript (arrow functions, async/await, modules)
  • Понимание HTTP: методы, статус-коды, headers
  • Опыт работы с CI/CD (GitHub Actions, GitLab CI или аналог)
  • Доступ к тестовому окружению (staging/dev) для экспериментов

Желательно (но не обязательно):

  • Опыт с Prometheus/Grafana или аналогичным мониторингом
  • Знакомство с Kubernetes (для уроков 11-12)
  • Базовое понимание performance engineering (latency, throughput, RPS)

Настройка окружения:

  • Клонирован репозиторий с примерами (если будет предоставлен)
  • Есть редактор кода с подсветкой JavaScript (VS Code, Sublime, Vim)
  • Доступ к терминалу для запуска команд k6

Если все чек-боксы отмечены — вперед! Начните с урока 01 и постройте свою первую стратегию нагрузочного тестирования.

Что дальше

Переходите к Уроку 1: Методология: цели, SLA/SLO и выбор типов тестов, где вы научитесь:

  • Формулировать бизнес-цели в метрики производительности
  • Выбирать правильный тип теста для каждой задачи
  • Строить реалистичные SLO на основе данных

Время: 30 минут практики + методологии.

Что мы строим и для кого этот курс — k6: нагрузочное тестирование как система — Potapov.me