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

Проектный семинар «Проектирование распределенных систем»

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

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

Аннотация

В условиях стремительного роста объемов данных и увеличения требований к производительности и надежности, понимание принципов работы распределенных систем становится критически важным для разработчиков и архитекторов. В ходе семинара участники познакомятся с основными концепциями и архитектурными паттернами распределенных систем, а также с современными инструментами и технологиями, используемыми для их разработки.
Цель освоения дисциплины

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

  • Сформировать понимание фундаментальных концепций, моделей и проблем распределенных систем, таких как согласованность, масштабируемость и отказоустойчивость.
  • Освоить принципы и паттерны проектирования для создания масштабируемых, надежных и эффективных распределенных приложений.
  • Приобрести навыки выбора и применения современных технологий и инструментов (API, message queues, базы данных) для реализации распределенных систем.
  • Развить умение проектировать архитектуру системы, способную обрабатывать большие объемы данных и нагрузку, обеспечивая низкую задержку и высокую доступность.
Планируемые результаты обучения

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

  • Способен проектировать архитектуру распределенного приложения, выбирая и комбинируя соответствующие паттерны и технологии для обеспечения масштабируемости и отказоустойчивости.
  • Умеет анализировать и обосновывать компромиссы при выборе архитектурных решений, таких как тип согласованности данных или репликации, в зависимости от конкретных бизнес-требований.
  • Владеет навыками разработки компонентов распределенной системы (микросервисов) и организации взаимодействия между ними через надежные протоколы связи
Содержание учебной дисциплины

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

  • Введение в курс "Проектирование Распределенных Систем". Первые проблемы РС
  • Сетевые основы: сокеты, TCP/UDP. Реализаия простейшего CLI-чата через сокеты
  • Сетевые основы: сокеты, TCP/UDP. Улучшение и масштабирования чата под нагрузку
  • Очереди сообщений и pub/sub. Реализация простейшего брокера сообщений
  • Очереди сообщений и pub/sub. Улучшение простейшего брокера сообщений
  • Проблемы распределенных систем: ненадежные сети. Решение проблемы ненадежных сетей на практике
  • Проблемы распределенных систем: ненадежные часы. Решение проблемы ненадежных часов на практике
  • Введение в репликацию и согласованность
  • Гарантии упорядоченности в распределенных системах. Реализация системы с гарантиями упорядоченности на практике
  • Гарантии согласованности в распределенных системах. Реализация системы с гарантиями согласованности на практике
  • Распределенные транзакции. Двух-фазный коммит, отказоустойчивый консенсус
  • Реализация двух-фазного коммита на практике
  • Алгоритмы достижения консенсуса в распеределенных системах. RAFT.
  • Реализация RAFT на практике
  • Распределённое отказоустойчивое key-value хранилище: Архитектура и кворумы
  • Распределённое отказоустойчивое key-value хранилище: Сетевой стек и протоколы
  • Распределённое отказоустойчивое key-value хранилище: Разрешение конфликтов с Vector Clocks
  • Распределённое отказоустойчивое key-value хранилище: Устойчивость к сбоям: Failover и Heartbeat
  • Распределённое key-value хранилище: Тестирование и симуляция сбоев
  • Высокодоступный брокер сообщений: Гарантии доставки сообщений
  • Высокодоступный брокер сообщений: Персистентность и восстановление состояния
  • Высокодоступный брокер сообщений: Управление состоянием потребителя
  • Высокодоступный брокер сообщений: Кластеризация и шардирование
  • Высокодоступный брокер сообщений: Нагрузочное тестирование и мониторинг
  • Коллоквиум I по темам “распределенное хранилище” и “высокодоступный брокер сообщений”
  • Распределённый Real-time Chat: Stateful-сервисы и WebSocket
  • Распределённый Real-time Chat: Межсерверная коммуникация через брокер
  • Распределённый Real-time Chat: Распределённое хранение истории сообщений
  • Распределённый Real-time Chat: Георепликация и задержки
  • Распределённый планировщик задач: Распределённое время и выбор лидера
  • Распределённый планировщик задач: Очереди с задержкой
  • Распределённый планировщик задач: Идемпотентность и гарантии выполнения
  • Распределённый планировщик задач: Мониторинг и Distributed Tracing
  • Коллоквиум II по темам “распределенный real-time чат” и “распределенный планировщик задач”
Элементы контроля

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

  • неблокирующий Домашнее задание 1
  • неблокирующий Краткий срез 1
    Готовит преподаватель, проводится в самом начале семинара 4. Занимает до 7 минут. Письменные срезы проверяет преподаватель и оглашает оценки на следующей паре.
  • неблокирующий Домашнее задание 2
  • неблокирующий Краткий срез 2
    Готовит преподаватель, проводится в самом начале семинара 7. Занимает до 7 минут. Письменные срезы проверяет преподаватель и оглашает оценки на следующей паре.
  • неблокирующий Домашнее задание 3
  • неблокирующий Домашнее задание 4
  • неблокирующий Краткий срез 3
    Готовит преподаватель, проводится в самом начале семинара 11. Занимает до 7 минут. Письменные срезы проверяет преподаватель и оглашает оценки на следующей паре.
  • неблокирующий Домашнее задание 5
  • неблокирующий Домашнее задание 6
  • неблокирующий Краткий срез 4
    Готовит преподаватель, проводится в самом начале семинара 14. Занимает до 7 минут. Письменные срезы проверяет преподаватель и оглашает оценки ДО сессии.
  • неблокирующий Домашнее задание 7
  • неблокирующий Краткий срез 5
    Готовит преподаватель, проводится в самом начале семинара 20. Занимает до 7 минут. Письменные срезы проверяет преподаватель и оглашает оценки ДО следующей пары.
  • неблокирующий Домашнее задание 8
  • неблокирующий Краткий срез 6
    Готовит преподаватель, проводится в самом начале семинара 24. Занимает до 7 минут. Письменные срезы проверяет преподаватель и оглашает оценки ДО следующей пары.
  • неблокирующий Домашнее задание 9
  • неблокирующий Краткий срез 7
    Готовит преподаватель, проводится в самом начале семинара 30. Занимает до 7 минут. Письменные срезы проверяет преподаватель и оглашает оценки ДО следующей пары.
  • неблокирующий Домашнее задание 10
  • неблокирующий Краткий срез 8
    Готовит преподаватель, проводится в самом начале семинара 33. Занимает до 7 минут. Письменные срезы проверяет преподаватель и оглашает оценки ДО следующей пары.
  • неблокирующий Экзамен
Промежуточная аттестация

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

  • 2025/2026 4th module
    Формула оценки Оценка = Округление(0.4 * ДЗ_ср + 0.25 * Экзамен + 0.2 * Коллок_ср + 0.15 * Срезы_ср) Где: ДЗ_ср — средняя оценка за все домашние задания (каждое оценивается по 10-балльной шкале). Срезы_ср — средняя оценка все срезы (каждый срез оценивается по 10-балльной шкале). Экзамен — оценка за устный экзамен по модулю (по 10-балльной шкале). Коллок_ср — средняя оценка за проведенные коллоквиумы (каждое оценивается по 10-балльной шкале).
Список литературы

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

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

  • 9781492040309 - Alex Petrov - Database Internals : A Deep Dive Into How Distributed Data Systems Work - 2019 - O'Reilly Media - http://search.ebscohost.com/login.aspx?direct=true&db=nlebk&AN=2250514 - nlebk - 2250514
  • System Design : подготовка к сложному интервью, Сюй, А., 2023
  • Высоконагруженные приложения. Программирование, масштабирование, поддержка - 978-5-4461-0512-0 - Клеппман М. - 2022 - Санкт-Петербург: Питер - https://ibooks.ru/bookshelf/357916 - 357916 - iBOOKS

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

  • Стин, в. М. Распределенные системы : сборник научных трудов / в. М. Стин, Э. С. Таненбаум , перевод с английского В. А. Яроцкого. — Москва : ДМК Пресс, 2021. — 584 с. — ISBN 978-5-97060-708-4. — Текст : электронный // Лань : электронно-библиотечная система. — URL: https://e.lanbook.com/book/240992 (дата обращения: 00.00.0000). — Режим доступа: для авториз. пользователей.

Авторы

  • Солдатова Татьяна Владимировна