• A
  • A
  • A
  • АБB
  • АБB
  • АБB
  • А
  • А
  • А
  • А
  • А
Обычная версия сайта
Магистратура 2025/2026

Проектный семинар

Статус: Курс обязательный (Компьютерные системы и сети)
Когда читается: 1-й курс, 1-4 модуль
Охват аудитории: для своего кампуса
Язык: русский
Кредиты: 3
Контактные часы: 42

Программа дисциплины

Аннотация

В рамках данного курса рассматриваются различные аспекты проектирования, разработки и эксплуатации высоконагруженных систем, он направлен на формирование у студентов целостного понимания ключевых аспектов создания и сопровождения сложных информационных систем. Программа структурирована в частей, каждая из которых раскрывает критически важные компетенции для будущих ИТ-специалистов. Основной раздел посвящен системному дизайну: от анализа функциональных и нефункциональных требований до проектирования распределенных архитектур с учетом масштабируемости, отказоустойчивости и экономических ограничений. В другом разделе курса акцент сделан на организацию производственных процессов разработки ПО, включая методологии Agile и DevOps, управление техническим долгом, а также развитие soft skills для эффективного взаимодействия в кросс-функциональных командах. Третий блок рассматривает проблемы сетевой безопасности через призму практического анализа уязвимостей, методов защиты и этичного хакинга, что позволяет студентам глубже понять риски высоконагруженных систем в реальных условиях. Завершающий модуль ориентирован на научно-методическую подготовку: студенты осваивают принципы структурирования исследований, критического анализа существующих решений и защиты магистерских диссертаций в области высоконагруженных технологий.
Цель освоения дисциплины

Цель освоения дисциплины

  • Освоить методы проектирования высоконагруженных систем с акцентом на выбор архитектурных паттернов, управление нефункциональными требованиями и обеспечение масштабируемости и отказоустойчивости в соответствии с индустриальными стандартами.
  • Научиться проводить анализ и оптимизацию производительности через нагрузочное тестирование, диагностику узких мест и применение стратегий (кэширование, шардирование, балансировка), основанных на метриках и CAP-теореме.
  • Развить навыки аргументированного выбора технологий и интеграционных решений (микросервисы, брокеры сообщений, SQL/NoSQL), учитывая компромиссы между согласованностью, доступностью и стоимостью владения.
  • Сформировать способность эффективно коммуницировать архитектурные решения с кросс-функциональными командами, обосновывая их через призму бизнес-требований, технических ограничений и ролевых специфик (DevOps, разработка, управление).
Планируемые результаты обучения

Планируемые результаты обучения

  • Знать критерии выбора архитектурных паттернов (микросервисы, монолит, серверлесс) в зависимости от требований к масштабируемости, отказоустойчивости и стоимости владения
  • Знать особенности применения DDD и принципов loose coupling в контексте высоконагруженных систем.
  • Уметь проектировать high-level архитектуру с использованием нотации C4, включая идентификацию сервисов, интеграционных точек, компонентов хранения данных и распределения нагрузки
  • Владеть методиками масштабирования stateful и stateless сервисов, включая стратегии шардирования, репликации и кэширования, а также оценкой компромиссов между согласованностью данных (CAP-теорема) и доступностью системы.
  • Уметь аргументировать архитектурные решения перед кросс-функциональными командами, коррелируя технические ограничения (аппаратные ресурсы, сетевые задержки) с бизнес-целями и особенностями ролей
  • Знать ключевые метрики устойчивости высоконагруженных систем (латентность, пропускная способность, уровень ошибок), критерии их нормирования и методы измерения в трехзвенной архитектуре
  • Уметь проводить нагрузочное тестирование с использованием профилей, имитирующих пиковую нагрузку, выявлять узкие места (CPU, сеть, БД) и интерпретировать метрики для диагностики нестабильности системы.
  • Уметь проектировать и обосновывать долгосрочные стратегии модернизации архитектуры (внедрение CDN, очередей сообщений, шардирования БД) с учетом компромиссов между производительностью, стоимостью и сложностью интеграции.
  • Знать классификацию интеграционных подходов (синхронные/асинхронные), архитектурные стили (REST, gRPC, event-driven), паттерны обеспечения отказоустойчивости (circuit breaker, dead-letter queues, exponential backoff) и их влияние на метрики системы (латентность, согласованность, стоимость)
  • Уметь обоснованно выбирать тип интеграции (например, синхронный вызов vs. шина сообщений) на основе анализа требований к надежности, скорости обработки и сложности сценариев взаимодействия микросервисов.
  • Владеть методами настройки и эксплуатации брокеров сообщений (Kafka)
  • Знать фундаментальные принципы CAP-теоремы и PACELC, различия между ACID и BASE, архитектурные особенности SQL/NoSQL-систем
  • Знать механизмы распределенных транзакций, консенсуса (Raft, Paxos) и обеспечения согласованности данных.
  • Уметь обоснованно выбирать тип СУБД (реляционная/NoSQL) и стратегию масштабирования (репликация, шардирование) на основе анализа требований к согласованности, доступности и латентности в высоконагруженных сценариях.
  • Знать функциональные особенности ключевых инфраструктурных компонентов (кэши, балансировщики, CDN, системы безопасности, CI/CD-конвейеры)
  • Знать методологию оценки стоимости владения (TCO), рисков и критериев успешности Proof of Concept.
  • Уметь проектировать сквозные архитектурные решения, интегрируя дополнительные компоненты (например, многоуровневое кэширование, распределенные очереди) с учетом требований к безопасности, производительности и бюджетных ограничений.
  • Владеть техниками анализа компромиссов между техническими решениями и бизнес-целями, включая оценку trade-off’ов «надежность vs. стоимость», «скорость вывода на рынок vs. технический долг» и формирование стратегий митигации рисков.
  • Знать архитектурные особенности и компромиссы при проектировании массовых сервисов (социальные сети, платформы доставки), а также специфику требований к системам в зависимости от ролей (DevOps, разработчик, менеджер продукта).
  • Уметь применять методы системного дизайна для решения комплексных задач, включая декомпозицию требований, выбор компонентов и обоснование решений в условиях ограниченных ресурсов на примере кейсов вроде Twitter или Яндекс Go.
  • Владеть техниками проведения и прохождения систем-дизайн интервью, включая структурирование ответов, визуализацию архитектуры (C4, блок-схемы) и аргументацию решений через призму бизнес-метрик и технических ограничений.
Содержание учебной дисциплины

Содержание учебной дисциплины

  • Введение в системный дизайн
  • High Level Design
  • Технические метрики
  • Архитектурные стратегии высоконагруженных систем
  • Диагностика и оптимизация высоконагруженных систем: от выявления узких мест к стратегиям масштабирования
  • Интеграционные стратегии в распределенных системах
  • Управление данными в распределенных системах: выбор СУБД, стратегии масштабирования и интеграция кэширования
  • Интеграция инфраструктурных компонентов и управление бизнес-техническими компромиссами
  • Профессиональный практикум по системному дизайну
Элементы контроля

Элементы контроля

  • неблокирующий домашние задания
  • неблокирующий активность на семинарах
  • неблокирующий бонусные баллы
    за особые успехи. Например, участие в mock-интервью семинара 17.
  • неблокирующий экзамен 2
    опрос по первой части курса
  • неблокирующий задания блока разработка ПО как произв процесс
  • блокирующий доклад второй год
  • блокирующий домашние задания 2й год
Промежуточная аттестация

Промежуточная аттестация

  • 2025/2026 4th module
    0.12 * активность на семинарах + 0.001 * активность на семинарах + 0.06 * бонусные баллы + 0.001 * домашние задания + 0.36 * домашние задания + 0.398 * задания блока разработка ПО как произв процесс + 0.06 * экзамен 2
  • 2026/2027 3rd module
    0.1 * активность на семинарах + 0.45 * доклад второй год + 0.45 * домашние задания 2й год
Список литературы

Список литературы

Рекомендуемая основная литература

  • 97 этюдов для программистов : опыт ведущих экспертов, Гудлиф, П., 2012
  • System Design : подготовка к сложному интервью, Сюй, А., 2023
  • Высоконагруженные приложения : программирование, масштабирование, поддержка, Клеппман, М., 2019

Рекомендуемая дополнительная литература

  • Разработка требований к программному обеспечению : пер. с англ., Вигерс, К., 2019

Авторы

  • Старых Владимир Александрович
  • Башун Владимир Владимирович
  • Вишнеков Андрей Владленович