Бакалавриат
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). — Режим доступа: для авториз. пользователей.