[ Highload Introduction ]

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

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

Middle+
  • Поймёте, что делает систему высоконагруженной, и какие проблемы возникают при росте нагрузки
  • Освоите базовые шаблоны масштабирования, доступности и производительности
  • Научитесь анализировать и проектировать простые архитектуры под высокую нагрузку
  • Получите практический опыт решения типичных проблем: горячие ключи, GC-паузы, race conditions
  • Сформируете фундамент для перехода к продвинутому уровню (Highload Fundamentals, практикум)
Senior и Techlead/Teamlead
  • Систематизируете свои знания о работе нагруженных систем и ключевых инженерных вызовах
  • Получите набор готовых паттернов и тактик, применимых к вашим текущим сервисам
  • Освежите понимание масштабируемости, доступности, производительности – в связке
  • Разовьёте навык объяснения технических решений команде и бизнесу на языке метрик и trade-off’ов
  • Увидите, как устроены реальные архитектуры (Twitter, Uber, YouTube) и какие ошибки в них были допущены
Architect
  • Посмотрите на свою архитектурную практику через призму проверенных паттернов и инженерных подходов
  • Получите основу для построения собственного фреймворка оценки решений под нагрузкой
  • Увидите, как вводный курс используется как фильтр для роста и развития внутри команды
Необходимые требования для прохождения курса
  • Опыт коммерческой разработки от 2 лет в роли middle+ или senior engineer
  • Базовое понимание клиент-серверной архитектуры, HTTP-протокола и устройства веб-приложений
  • Уверенное владение одним из языков backend-разработки (Go, Java, Python, C#, JavaScript и др.)
  • Навыки работы с базами данных (реляционными и/или NoSQL)
  • Готовность погружаться в технические детали и архитектурные компромиссы

[ Цели курса ]

Понять, что делает систему высоконагруженной
Разобраться, какие метрики, характеристики и паттерны определяют highload-систему. Осознать, в чём коренные отличия от обычных приложений и почему масштабирование – это не просто «больше серверов».
1. 
Освоить ключевые шаблоны масштабирования, доступности и производительности
Познакомиться с базовыми стратегиями и тактиками построения отказоустойчивых и масштабируемых решений: от горизонтального масштабирования до расчёта SLA и работы с деградацией.
2. 
Научиться выявлять и устранять узкие места в системах
Увидеть, как проявляются реальные проблемы: нагруженная запись, GC-паузы, thundering herd, конфликтные транзакции. Получить практический опыт оптимизации и проектирования под нагрузку.
3. 
Разобраться в архитектуре популярных систем и инцидентах
Разобрать подходы Twitter, Uber, YouTube и других к масштабированию, кэшированию, фан-ауту, инцидент-менеджменту. Увидеть на практике, как технические решения влияют на устойчивость продукта.
4. 
Построить фундамент для перехода к системному архитектурному мышлению
Понять, как мыслить в категориях доступности, производительности и управляемой деградации. Подготовиться к следующему шагу – курсам Highload Fundamentals и практикуму по Highload-системам.
5. 
Закрепить знания через практику и проектные задания
Спроектировать мини-сервисы (чат, сокращатель ссылок, thumbnail-API), оптимизировать код, устранить реальные bottlenecks, потренироваться в разборе архитектур и подготовке к рефакторингу.
6. 

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

Поймём, что такое Highload-система и её ключевые сложности
Расшифруем критерии Highload-систем: какие метрики и пороги считать «высокой нагрузкой». Разберём основные проблемы: нагрузочная запись, устаревание кэша, «celebrity»-запросы, горячие партиции, GC-паузы. Приведём реальные примеры сверхнагруженных проектов и их архитектурные решения.
1. 
Изучим шаблоны и тактики масштабируемости и доступности
Сравним горизонтальную и вертикальную масштабируемость, научимся подбирать правильный подход для разных задач. Познакомимся с шаблонами (sharding, CQRS, event sourcing и др.) и тактиками (control resource demand, manage resources). Разберём методы обнаружения, восстановления и предотвращения отказов, поймём, что такое «количество девяток» и как его считать.
2. 
Освоим подходы к повышению производительности и реальные кейсы
Определим, что такое Performance-показатели и какие шаблоны (caching, batching, back-pressure) работают лучше всего. Познакомимся с тактиками управления нагрузкой: от контроля потребления ресурсов до динамического распределения. Проанализируем реальные инциденты Twitter, YouTube, Wildberries и Uber: какие решения помогли им справиться с пиком запросов.
3. 
Разберём реальные инциденты и сложные баги в Highload-системах
Изучим причину и профилактику «thundering herd» и гонок (race conditions) при распределённых блокировках. Проработаем сценарии переполнения очередей, dead-letter-механизмы и консистентность кэша при failover. Разберём кейсы, связанные с feature toggles, и научимся структурировать расследование инцидентов в Highload-окружении.
4. 

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

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

1. Разбор проблем Highload-систем:
   Погружаемся в особенности нагрузки – исследуем нагруженную запись в БД, GC-паузы, наблюдаем аномалии, отрабатываем гипотезы на тестовой системе.
2. Проектирование нагруженных сервисов:
   Создаём и тестируем собственные версии сервисов:
  • сокращатель ссылок
  • fan-out чат (один пишет – тысячи читают)
  • генератор миниатюр (thumbnail-сервис)
3. Оптимизация кода и архитектур:
   Проводим анализ, исправляем и ускоряем готовые решения, замеряем до/после. Упрощаем архитектурные схемы, повышаем читаемость и масштабируемость.
Курс построен на принципе «учимся на практике» –каждую неделю участники решают задачи, приближённые к работе с реальными высоконагруженными системами.

[ Практика]

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

теории
4 занятия
практики
3 занятия
1.1. Что считать HL системой? (Критерии HL системы)
1.2. Чем конкретно сложна HL система?
1.3. Примеры highload систем
1.4. Проблемы высоконагруженных систем:
 1.4.1. Нагруженная запись
 1.4.2. Устаревание данных в кэше
 1.4.3. Celebrity проблема (одинаковые запросы)
 1.4.4. Горячие партиции/ключи
 1.4.5. GC паузы
Развитие разработчика невозможно без понимания интересов бизнеса
Павел Вейник, 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

[ Частые вопросы ]