2024/2025




Распределенные системы
Статус:
Маго-лего
Когда читается:
3 модуль
Охват аудитории:
для своего кампуса
Преподаватели:
Ахтямов Павел Ибрагимович
Язык:
русский
Кредиты:
3
Программа дисциплины
Аннотация
На нашем курсе мы продолжим изучение работы сервисов в режиме высокой нагрузки. В начале курса мы узнаем, каким образом сервисы выполняют задачи в отложенном режиме. После этого мы рассмотрим основы многопоточного программирования и рассмотрим разные аспекты асинхронного программирования на Python. На курсе будут рассмотрены оптимальные практики развертывания приложений в режиме “чистое железо” и в рамках инфраструктуры кластера Kubernetes.
Цель освоения дисциплины
- По результатам обучения курса студенты смогут разворачивать приложения в промышленной среде и адаптировать лучшие практики высоконагруженных систем в своих проектах.
Планируемые результаты обучения
- Студенты смогут реализовать проект в стеке: Backend, Frontend, WSGI, кэширование для распределения нагрузки.
- Студенты смогут реализовать взаимодействие структурированных данных с использованием эффективных протоколов.
- Студенты смогут настроить взаимодействие сервисов по протоколам WebSocket и gRPC и обосновать выбор протокола.
- Студенты смогут разворачивать приложение в Kubernetes-кластере и настраивать Kubernetes-кластер при помощи дистрибутивов настройки Kubernetes-кластера.
- Студенты смогу реализовать привязку очередей сообщений для реализации отложенных задач.
- Студенты смогут выбрать оптимальный способ ускорения программ на Python.
- Студенты смогут реализовывать сервисы при помощи асинхронных фреймворков веб-сервисов и разрешать проблему “однопоточности” в Python.
- Студенты смогут реализовать быстрое развертывание моделей глубокого обучения.
- Студенты научаться готовить модели к использованию на Embedded-устройствах (мобильные телефоны, умные устройства)
- Студенты смогут увеличить нагрузку на систему с использованием системы кэширования и измерить увеличение производительности от внедрения систем кэширования.
Содержание учебной дисциплины
- Взаимодействие сервисов. Очереди сообщений
- Написание высоконагруженных веб-сервисов
- Асинхронное программирование на Python.
- Форматы взаимодействия высоконагруженных систем
- Протоколы взаимодействия высоконагруженных сервисов
- MLOps и высоконагруженные системы
- Развертывание приложений в Kubernetes-кластере.
- Кэширование систем
Промежуточная аттестация
- 2024/2025 3rd module* Block1 * 2/7 + Block2 * 2/7 + Block3 * 3/7 В каждом блоке будет по два домашних задания.
Список литературы
Рекомендуемая основная литература
- Kubernetes для DevOps: развертывание, запуск и масштабирование в облаке. - 978-5-4461-1602-7 - Арундел Джон, Домингус Джастин - 2021 - Санкт-Петербург: Питер - https://ibooks.ru/bookshelf/371738 - 371738 - iBOOKS
Рекомендуемая дополнительная литература
- Стин, в. М. Распределенные системы : сборник научных трудов / в. М. Стин, Э. С. Таненбаум , перевод с английского В. А. Яроцкого. — Москва : ДМК Пресс, 2021. — 584 с. — ISBN 978-5-97060-708-4. — Текст : электронный // Лань : электронно-библиотечная система. — URL: https://e.lanbook.com/book/240992 (дата обращения: 00.00.0000). — Режим доступа: для авториз. пользователей.