[ Highload Fundamentals ]

для разработчиков middle+, senior, techlead/teamlead, architect
Идет набор
12 недель
1 раз в неделю теория
1 раз в неделю практика

[ Для кого курс ]

Middle+
  • Поймете архитектуру высоконагруженных систем на реальных примерах
  • Получите практические навыки настройки и мониторинга под нагрузкой: от деплоя сервисов до нагрузочных тестов
  • Научитесь обрабатывать пиковые нагрузки с помощью кэшей и очередей
  • Разберётесь в базовых алгоритмах балансировки нагрузки и примените их на практике
  • Будете анализировать метрики/логи и научитесь быстро находить и решать проблемы производительности
Senior
  • Выявите и научитесь устранять узкие места с помощью продвинутых структур данных и алгоритмов
  • Систематизируете свой инженерный опыт: от выбора стеков до стратегий отказоустойчивости и self-healing
  • Освоите продвинутые практики контейнеризации и оркестрации: Docker, Kubernetes, Canary-деплойменты
  • Изучите подходы к управлению согласованностью и репликацией в распределённых системах (Raft, CRDT)
  • На практике протестируете real-time коммуникации (WebRTC, gRPC) и поймёте особенности работы под нагрузкой
Tech Lead / Team Lead:
  • Освоите полный цикл проектирования highload-решений: от требований и конвейеров до Chaos Engineering
  • Научитесь выстраивать CI/CD, системы мониторинга (Prometheus, Grafana) и алертинга (Alertmanager, PagerDuty)
  • Прокачаете навыки управления командой под высоким трафиком: распределение задач, код-ревью, SLI/SLO/SLA
  • Проработаете сценарии автоматического восстановления и стресс-тестирования (Blue-green, Chaos Monkey)
  • Поймете шаблоны архитектурных решений и примеры их внедрения на крупных проектах (Netflix, Twitter)
Architect
  • Разработаете надёжные и масштабируемые архитектурные стратегии с учётом FR/NFR, CAP-теоремы и trade-offs
  • Проверите на практике архитектурные паттерны на практике: нагрузочное тестирование, распределённый трейсинг и сценарии отказов
  • Сформируете политику выбора технологий: базы данных, кэши, CDN, очереди, stream-processing движки
  • Сгруппируете компоненты системы в домены и микросервисы, выбрав между монолитом, микросервисами и FaaS
  • Научитесь строить эластичную multi-region инфраструктуру с DNS-балансировкой, Anycast и geo-расшариванием
Необходимые требования для прохождения курса
  • Опыт коммерческой разработки от 2 лет в роли middle+ или senior engineer
  • Базовое понимание клиент-серверной архитектуры, HTTP-протокола и устройства веб-приложений
  • Уверенное владение одной платформ backend-разработки (Go, Java, Python, C#, Node.js и др.)
  • Навыки работы с базами данных (реляционными и другими)
  • Готовность погружаться в технические детали и архитектурные абстракции

[ Цели курса ]

Углубить понимание принципов проектирования и разработки нагруженных систем
Сформировать чёткое представление о ключевых понятиях, метриках и ограничениях масштабирования, чтобы принимать обоснованные архитектурные решения.
1. 
Отработать выбор технологий и настройку инструментов
Научиться оценивать и подбирать базы данных, кэши, очереди, балансировщики и другие компоненты для конкретных бизнес-задач под высокой нагрузкой.
2. 
Научиться проектировать отказоустойчивые системы
Освоить шаблоны архитектур (микросервисы, CQRS, event-driven и др.), стратегии репликации и балансировки, а также практики self-healing и Chaos Engineering.
3. 
Закрепить навыки через практику
Развернуть на серверах Hetzner нагруженный сервис, систему мониторинга и генератор нагрузки k6 - увидеть в действии влияние архитектуры, языков и алгоритмов на производительность.
4. 
Разработать стратегию роста и поддержки
Составить чек-лист для постоянной оптимизации, выстроить процессы CI/CD, on-call и алертинга, чтобы система оставалась надёжной и масштабируемой по мере роста нагрузки.
5. 

[ Что будет на курсе ]

Погрузимся в мир Highload-систем
Разберём ключевые понятия: что такое highload, какие метрики и NFR критичны для масштабируемых систем. Проанализируем ограничения масштабирования (Закон Амдала, Закон Гюнтера) и взаимосвязь между производительностью и отказоустойчивостью.
1. 
Изучим стек компонентов и технологий
Познакомимся с базами данных, кэшем, очередями сообщений и балансировщиками нагрузки – рассмотрим ограничения, паттерны использования и лучшие практики. Сравним специализированные хранилища (search, OLAP, object storage), CDN и протоколы (HTTP/2, HTTP/3, gRPC, WebRTC) под нагрузкой.
2. 
Освоим инфраструктуру и DevOps-практики
Настроим контейнеризацию (Docker) и оркестрацию (Kubernetes), автоматизированный CI/CD и стратегии деплоя (blue/green, canary). Организуем мониторинг и observability (Prometheus, Grafana, Jaeger), алертинг и self-healing, а также введём практику Chaos Engineering.
3. 
Проанализируем выбор языков
Сравним производительность и особенности платформ (Rust, Go, Java, C#, Node.js, Python, Ruby, PHP, Haskell) на реальных примерах.
4. 
Разработаем архитектурные решения для роста
Изучим паттерны проектирования: монолит, микросервисы, Hexagonal, Clean, CQRS, Event-driven, Service Mesh и serverless. Разберём алгоритмы распределения нагрузки (consistent hashing, Power of Two Choices, rate limiting) и механизмы репликации и консистентности (Raft, Paxos, CRDT, gossip).
5. 
Отработаем навыки в реальной практике
На выделенных серверах Hetzner развернём нагруженный сервис, систему мониторинга и нагрузочный генератор k6. Проследим изменение метрик железа и сервисного поведения при разных архитектурах, языках и алгоритмах.
6. 
Подготовим планы роста и поддержки
Составим стратегию дальнейшего масштабирования, мониторинга метрик и процессов on-call. Разработаем чек-лист для постоянной оптимизации и обновления архитектуры по мере роста нагрузки.
7. 

[ Как проходит обучение ]

Разбираете тему и обсуждаете ее
с преподавателем.
Изучаете материал
Выполняете ДЗ
Решаете учебные задачи, подготовленные для курса.
Получаете обратную связь
Разбираете с преподавателем ошибки и пути их решения.
После прохождения курса Вы получите сертификат на двух языках RU и ENG
1
2
3
4
Каждое практическое задание сопровождается:
  • Развёртывание сервисов на Hetzner: нагрузка, сервис, мониторинг - на отдельных серверах.
  • Нагрузочное тестирование с использованием k6.
  • Метрики и дашборды: отслеживание утилизации ресурсов, ошибок, латентности.
  • Асинхронную обратную связь от наставника.
  • Ревью решений от коллег.
Практика:
12 заданий – от анализа инцидентов и проектирования архитектуры до настройки инфраструктуры, мониторинга и тестирования под реальной нагрузкой.
На практике вы сами развернёте и исследуете высоконагруженную систему на реальных серверах Hetzner:

  1. Проведёте архитектурный аудит, разберёте инциденты и проверите законы масштабирования на практике.
  2. Настроите кластер баз данных и кэшей, смоделируете сбои и организуете балансировку нагрузки.
  3. Внедрите стратегии кеширования, освоите асинхронные подходы и отработаете приёмы повышения устойчивости сервиса.
  4. Спроектируете собственную масштабируемую систему, запустите на одном сервере нагрузочное тестирование (k6), на втором - мониторинг, а на третьем - сервис, и убедитесь в надёжности решения под реальным стрессом.
Курс построен на принципе «учимся на практике» – в каждом модуле участники выполняют практические задания, приближенные к реальной работе с высоконагруженными системами.
Итогом курса станет проектная работа – полноценный прототип масштабируемой highload-системы на вашем стеке, развернутый и проверенный под реальной нагрузкой.

[ Практика]

[ Программа курса ]

теории
12 занятий
практики
12 занятий
Неделя 1. Понятие highload-систем и основы масштабирования
 1.1 Понятие highload-систем
 1.2 Основные сложности работы с highload-системами: ограниченность ресурсов (железа), coherency, contention
 1.3 Фундаментальные ограничения масштабирования: Закон Амдала, Закон Гюнтера
 1.4 Связь масштабируемости и отказоустойчивости

Неделя 2. Разбор высоконагруженного проекта
 2.1 Анализ типовой высоконагруженной системы (например, социальная сеть или онлайн-маркетплейс) по ключевым осям:
     - Аппаратная утилизация
     - Алгоритмы и структуры данных
     - Функциональные и нефункциональные требования (FR и NFR)
     - Организация разработки, операционных процессов и команд
Развитие разработчика невозможно без понимания интересов бизнеса
Павел Вейник, Founder Hard&Soft Skills

[ Преподаватель курса ]

Founding Architect at Hard & Soft Skills
Павел Вейник
Разработчик с 2003 года, занимается обучением с 2008, обучением сеньоров и архитекторов с 2018. Делился экспертизой на более чем 100 митапах и конференциях.
Выполнял роли разработчика, тимлида, архитектора, СТО в небольших стартапах, крупных корпорациях и продуктовых компаниях:
Специализации: архитектура распределенных систем, highload, микросервисные архитектуры, системная инженерия, рост инженера, коммуникации в организации.
  • Architect: Miro, EPAM
  • CTO: AmadoAd Ltd., SplitMetrics, Leverice
  • Tech Advisor: Gincubator, LeoHome Inc.
  • Founder: Hard&Soft Skills, ITStart, Amadoad Ltd.
  • Выстраивал архитектуру для крупнейших мировых корпораций в рамках EPAM
Обучил более 1K разработчиков за последние 15 лет. Обучил более 400 архитекторов. Создает и проводит обучающие курсы для любых технических направлений.
Запишитесь на консультацию с ex-Architect Miro и EPAM и преподавателем курса Павлом Вейником
[ Стоимость курса ]
20 февраля | online
Нажимая на кнопку, вы соглашаетесь на обработку персональных данных

[ Регистрация на курс ]

Свяжитесь с нами по контактам ниже:
Олег - менеджер Hard&Soft Skills