Дизайн систем 23/24 — различия между версиями
Kkarpea (обсуждение | вклад) |
Kkarpea (обсуждение | вклад) |
||
Строка 21: | Строка 21: | ||
* '''14.09. Docker''' [[https://disk.yandex.ru/i/3oLiSxU1HsZEEQ Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%202023-09-14T15-28-07Z.mp4 Запись]] Архитектурные паттерны. CI/CD. VM vs Containers. Конфигурирование приложения. Паттерны деплоя. Service discovery. Health check. Docker. | * '''14.09. Docker''' [[https://disk.yandex.ru/i/3oLiSxU1HsZEEQ Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%202023-09-14T15-28-07Z.mp4 Запись]] Архитектурные паттерны. CI/CD. VM vs Containers. Конфигурирование приложения. Паттерны деплоя. Service discovery. Health check. Docker. | ||
* '''21.09 Функциональная декомпозиция''' [[https://disk.yandex.ru/i/7KQtzYMsFEtAQA Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%202023-09-21T14-59-52Z.mp4 Запись]] Модифицируемость и ее оценка. Louse coupling & high cohesion. Строительные блоки. DDD. Модель предметной области. | * '''21.09 Функциональная декомпозиция''' [[https://disk.yandex.ru/i/7KQtzYMsFEtAQA Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%202023-09-21T14-59-52Z.mp4 Запись]] Модифицируемость и ее оценка. Louse coupling & high cohesion. Строительные блоки. DDD. Модель предметной области. | ||
− | * '''29.09 Взаимодействие сервисов''' [[https://disk.yandex.ru/i/SSqbt71muPBRLg Презентация] | | + | * '''29.09 Взаимодействие сервисов''' [[https://disk.yandex.ru/i/SSqbt71muPBRLg Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%20GMT20230929-163154.mp4 Лекция] [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%20GMT20230930-063014.mp4 Семинар]] Синхронное и асинхронное API. Паттерны. Оркестрация и хореография. Версионирование. IDL и API first дизайн. Rich vs Data Centric API. REST. gRPC. |
* '''05.10 Событийная модель и кафка''' [[https://disk.yandex.ru/i/aU_5L9KXDH4c0w Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%202023-10-05T15-40-24Z.mp4 Запись]] События. Паттерны проектирования событий. Event sourcing. Stream processing. RabbitMQ. Kafka. | * '''05.10 Событийная модель и кафка''' [[https://disk.yandex.ru/i/aU_5L9KXDH4c0w Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%202023-10-05T15-40-24Z.mp4 Запись]] События. Паттерны проектирования событий. Event sourcing. Stream processing. RabbitMQ. Kafka. | ||
Версия 01:15, 12 октября 2023
Содержание
О курсе
Это страница курса "Дизайн систем" 2023-2024 года (1-2 модуль 4 курса ПМИ).
Занятия проходят по четвергам в 18:10 - 21:00 онлайн, объявления о любых изменениях будут в Telegram-канале.
Преподаватели: Стас Щетинников, Артем Кузнецов, Илья Жигалко, Егор Карпов
Полезные ссылки
Канал курса: https://t.me/+ZikB0F8elb1kOTE6
Чат курса: https://t.me/+0azNletbfBQ1NDRi
Все записи: https://disk.yandex.ru/d/jMjWZTmQP_-GoQ
Лекции и семинары
- 07.09. Основы системного проектирования. [Презентация | Запись] Архитектура. Жизненный цикл архитектуры. Архитектурные драйверы и архитектурно значимые требования (ASR). Проектирование и оценка архитектуры. Waterfall.
- 14.09. Docker [Презентация | Запись] Архитектурные паттерны. CI/CD. VM vs Containers. Конфигурирование приложения. Паттерны деплоя. Service discovery. Health check. Docker.
- 21.09 Функциональная декомпозиция [Презентация | Запись] Модифицируемость и ее оценка. Louse coupling & high cohesion. Строительные блоки. DDD. Модель предметной области.
- 29.09 Взаимодействие сервисов [Презентация | Лекция Семинар] Синхронное и асинхронное API. Паттерны. Оркестрация и хореография. Версионирование. IDL и API first дизайн. Rich vs Data Centric API. REST. gRPC.
- 05.10 Событийная модель и кафка [Презентация | Запись] События. Паттерны проектирования событий. Event sourcing. Stream processing. RabbitMQ. Kafka.
Домашние задания
Docker
Форма для сдачи: https://docs.google.com/forms/d/1c52c2IKsGEqNQb6NdBh07biV_rd3mHS2jcIHBdtbhgE
Дедлайн: 25 октября 23:59
Шаг 1. Создать веб сервис, который доступен в сети на порту 8000 и имеет один http-метод:
GET /health/
RESPONSE: {"status": "OK"}
Можно использовать любой язык программирования и любые фреймворки. Проще всего будет начать с Python и FastAPI, пример его использования был на семинаре по Docker.
Шаг 2. Cобрать локально образ приложения в докер контейнер под архитектуру AMD64.
Шаг 3. (8 баллов) Сохранить код сервиса и Dockerfile в приватный репозиторий на github и добавить в коллабораторы karpp.
Шаг 4. (2 балла) Запушить образ в dockerhub. (Документация)
Примечания
Обратите внимание, что при сборке на M1 при запуске вашего контейнера на стандартных платформах будет ошибка такого вида: standard_init_linux.go:228: exec user process caused: exec format error
. Чтобы избежать этого для сборки нужно указать тип платформы linux/amd64: docker build --platform linux/amd64 -t tag
. Более подробно можно прочитать в статье: https://programmerah.com/how-to-solve-docker-run-error-standard_init_linux-go219-exec-user-process-caused-exec-format-error-39221/.
Итоговая оценка за курс
Итог = min(Округл(0.2 * ДЗ1 + 0.3 * ДЗ2 + 0.5 * ДЗ3 + 0.6 * ДЗ4 + 0.3 * ДЗ5 + 0.3 * Э), 10)
ДЗ –– оценки за домашние задания
Э –– устный экзамен
Округление арифметическое.