Лабораторная работа 2: Проектирование архитектуры монолитной информационной системы ( Дисциплина: Проектирование архитектуры информационных систем)

Лабораторная работа 2

Тема: Проектирование архитектуры монолитной информационной системы
Части:

  • Часть 1 — Технологическая и инфраструктурная архитектура монолита

  • Часть 2 — Интеграционная архитектура монолита

  • Часть 3 — Внутренняя структура монолита (слои, модули, компоненты)

Дисциплина: Проектирование архитектуры информационных систем
Продолжительность: 2 пары (3 академических часа)
Форма проведения: индивидуальная работа + публичная защита с обсуждением.


1. Цель лабораторной работы

Сформировать у студентов навыки проектирования монолитной архитектуры информационной системы:

  • спроектировать технологическую и инфраструктурную архитектуру монолита (как и где разворачивается система);

  • описать интеграционные взаимодействия монолита с внешними системами и подсистемами;

  • спроектировать внутреннюю структуру монолита: слои, модули, основные компоненты и их связи.


2. Исходные условия и выбор темы

  1. У каждого студента уже есть своя тема ИС, определённая после Лабораторной работы 1:

    • либо по собственным интересам (любая реалистичная ИС);

    • либо из списка наиболее популярных типов ИС с hh.ru (список будет предложен отдельно, после описания всех лабораторных).

  2. Все артефакты ЛАБЫ 1 (контекст, стейкхолдеры, требования, логическая и информационная архитектура) считаются исходными данными для данной работы.

  3. В рамках ЛАБЫ 2 для выбранной ИС студент рассматривает вариант архитектуры “монолит” (в дальнейшем в ЛАБЕ 3 будет рассмотрена альтернативная архитектура, например микросервисная).


3. Планируемые результаты

Студент должен уметь:

  1. Проектировать схему развёртывания монолитной ИС (серверы, БД, окружение).

  2. Определять интеграционные взаимодействия монолита с внешними системами и модулями.

  3. Проектировать внутреннюю структуру монолита: слои (UI, бизнес-логика, данные), модули и компоненты.

  4. Обосновывать, почему выбран монолитный подход и какие риски/ограничения он несёт.

  5. Представлять результаты в виде диаграмм и текстового описания, умея публично защитить архитектурные решения.


4. Требования к программным средствам

  • текстовый редактор (Word, Google Docs и т.п.);

  • редактор диаграмм: Draw.io / diagrams.net, Lucidchart, PlantUML, Visual Paradigm, StarUML и др.;

  • ПО для показа презентации / диаграмм на проекторе.


5. Структура лабораторной работы

ЧАСТЬ 1. Технологическая и инфраструктурная архитектура монолита

Цель части:
Спроектировать, как монолитная ИС будет развёрнута в инфраструктуре: сервера, БД, дополнительные сервисы, сети.

Рекомендуемое время: 40–45 минут.

Задания

  1. Определить основные инфраструктурные компоненты.
    Для своей ИС перечислите:

    • веб-/приложенийный сервер (или несколько серверов);

    • сервер(а) БД;

    • вспомогательные сервисы (кеш, файловое хранилище, почтовый сервер и т.п. — по необходимости);

    • балансировщик нагрузки (если требуется);

    • элементы безопасности (reverse proxy, firewall, VPN — при необходимости).

  2. Определить схему развёртывания монолита.
    Ответьте на вопросы (кратко, но предметно):

    • Где физически или логически будет размещён монолит (on-premise, облако, смешанный вариант — концептуально)?

    • Будет ли использоваться кластер из нескольких экземпляров монолита или один экземпляр?

    • Как будет обеспечиваться резервирование БД (репликация, бэкапы)?

  3. Построить диаграмму развёртывания (Deployment) для монолита.
    На диаграмме должны быть:

    • узлы (nodes): сервер приложения, сервер БД, внешние системы;

    • артефакты: монолитное приложение, база данных;

    • связи (сетевое взаимодействие, протоколы можно обозначить текстом);

    • по возможности — разделение на зоны (интернет, DMZ, внутренняя сеть).

  4. Увязать инфраструктуру с нефункциональными требованиями.
    На основе сценариев качества из ЛАБЫ 1 кратко опишите:

    • как выбранная схема развёртывания помогает достичь нужной производительности и доступности;

    • где потенциальные точки отказа и как вы планируете их минимизировать.

Результат ЧАСТИ 1 (в отчёт):

  • Перечень инфраструктурных компонентов (кратко описанный).

  • Диаграмма развёртывания монолитной ИС.

  • Краткий текст (5–10 предложений) о связи инфраструктуры с нефункциональными требованиями.


ЧАСТЬ 2. Интеграционная архитектура монолитной ИС

Цель части:
Описать, как монолитная система будет интегрироваться с внешними ИС, сервисами и модулями.

Рекомендуемое время: 40–45 минут.

Задания

  1. Выделить внешние системы и интерфейсы.
    На основе ЛАБЫ 1 составьте таблицу:

    Внешняя система / стейкхолдер Назначение интеграции Тип взаимодействия (онлайн/офлайн) Протокол/механизм (концептуально)


  1. Примеры:

    • платёжный шлюз;

    • внешняя CRM/ERP;

    • почтовый сервис/СМС-шлюз;

    • государственные сервисы.

  2. Выбрать базовый интеграционный стиль для монолита.
    Кратко опишите, что используется:

    • классический запрос/ответ (REST/HTTP, gRPC и т.п.);

    • обмен файлами (пакетная интеграция);

    • очереди сообщений / события (если применимо).

    Обоснуйте, почему это разумно для монолита вашей ИС.

  3. Построить 1–2 диаграммы последовательности (Sequence) для ключевых сценариев.
    Выберите 2 сценария, где есть интеграции с внешними системами, например:

    • «Оформление заказа с онлайн-оплатой»;

    • «Отправка уведомления клиенту по e-mail/SMS»;

    • «Загрузка данных из внешней системы».

    Для каждого сценария:

    • определите участников (Актор, Монолитная ИС, Внешний сервис …);

    • отобразите последовательность сообщений / запросов;

    • укажите ключевые данные, которые передаются.

  4. Обозначить риски интеграции и их влияние на монолит.
    В тексте (5–7 предложений) опишите:

    • что произойдёт, если внешняя система недоступна;

    • как это повлияет на монолит и пользователей;

    • какие механизмы можно использовать (очереди, ретраи, деградация функционала и т.п.).

Результат ЧАСТИ 2 (в отчёт):

  • Таблица внешних интеграций.

  • 1–2 диаграммы последовательности для выбранных сценариев.

  • Краткий аналитический текст о рисках интеграции и вариантах их снижения.


ЧАСТЬ 3. Внутренняя структура монолитной ИС (слои, модули, компоненты)

Цель части:
Спроектировать внутреннее устройство монолита: слои, модули, основные компоненты и связи между ними.

Рекомендуемое время: 40–45 минут.

Задания

  1. Определить архитектурные слои монолита.
    Для своей ИС явно зафиксируйте слои, например:

    • Слой представления (UI) — веб-интерфейс, мобильный интерфейс, API для фронтенда;

    • Слой прикладной логики (Application) — обработка сценариев, orchestration;

    • Слой предметной области / бизнес-логики (Domain) — бизнес-правила, доменные объекты;

    • Слой доступа к данным (Data Access) — работа с БД, внешними хранилищами.

    Можно адаптировать структуру под свои идеи (3-слойка, 4-слойка и т.п.), но слои должны быть явно названы и их ответственность — описана.

  2. Разбить монолит на модули/подсистемы внутри слоёв.
    Опираясь на подсистемы из ЛАБЫ 1, спроектируйте модули:

    • в каких слоях какие модули существуют (например, «Модуль управления заказами» в слое Application и соответствующие компоненты в слое Domain и Data);

    • какие модули взаимодействуют между собой.

    Можно оформить в виде таблицы:

    | Модуль | Слой | Ответственность | Основные сущности/объекты | Соседние модули (зависимости) |

  3. Построить диаграмму внутренней структуры монолита.
    Варианты:

    • UML Component Diagram (компоненты и их связи);

    • C4 диаграмма уровня Component (внутренние компоненты одного контейнера — монолита).

    На диаграмме должны быть:

    • слои (можно показать “ярусами” или группами);

    • основные модули/компоненты;

    • связи между ними (кто кого вызывает / от кого зависит).

  4. Определить правила взаимодействия между слоями и модулями.
    В текстовой форме опишите:

    • разрешённые направления зависимостей (например, UI → Application → Domain → Data Access);

    • запретные/нежелательные зависимости (например, UI → Data Access напрямую);

    • как вы хотите обеспечить слабое зацепление модулей (интерфейсы, фасады, сервисы).

  5. Обозначить риски и ограничения монолитной архитектуры для данной ИС.
    Напишите 5–7 предложений:

    • какие плюсы монолита для вашей системы (простота развёртывания, целостность транзакций и т.д.);

    • какие минусы/риски (масштабируемость по функциональности, сложность изменений, размер кода и т.п.);

    • на каком горизонте развития системы монолит может перестать быть удобен.

Результат ЧАСТИ 3 (в отчёт):

  • Перечень архитектурных слоёв с описанием ответственности.

  • Таблица модулей и их связей.

  • Диаграмма внутренней структуры монолита (компонент/слоёв).

  • Текстовое описание правил зависимостей и анализ плюсов/минусов монолита.


6. Публичная защита и групповое обсуждение

В конце занятия каждый студент:

  1. Показывает на проекторе:

    • диаграмму развёртывания монолита;

    • одну диаграмму интеграций (контекст или sequence);

    • диаграмму внутренней структуры монолита.

  2. Кратко (3–5 минут) объясняет:

    • как устроен его монолит (слои, модули);

    • как он интегрируется с внешними системами;

    • в чём видит основные плюсы/минусы монолитного решения для своей темы.

  3. Отвечает на вопросы группы и преподавателя.
    Остальные студенты задают уточняющие и критические вопросы, предлагают альтернативы, указывают на возможные проблемы.


7. Структура отчёта по Лабораторной работе 2

  1. Титульный лист

  2. Цель и краткое описание темы ИС студента.

  3. Часть 1. Технологическая и инфраструктурная архитектура монолита

    • перечень инфраструктурных компонентов;

    • диаграмма развёртывания;

    • текстовый комментарий.

  4. Часть 2. Интеграционная архитектура монолита

    • таблица внешних интеграций;

    • диаграммы последовательности;

    • анализ рисков интеграции.

  5. Часть 3. Внутренняя структура монолита

    • описание архитектурных слоёв;

    • таблица модулей и их связей;

    • диаграмма компонент/слоёв;

    • текстовое описание правил зависимостей и анализ плюсов/минусов.

  6. Выводы по работе.

  7. При необходимости — скриншоты/фрагменты презентации для защиты.


8. Примерные контрольные вопросы

  1. В чём особенности архитектуры монолита по сравнению с распределёнными архитектурами?

  2. Какие инфраструктурные решения чаще всего используются при развёртывании монолита?

  3. Какие интеграционные стили подходят для монолитных систем и почему?

  4. Что такое слой в архитектуре приложения и чем он отличается от модуля?

  5. Какие зависимости между слоями являются корректными, а какие — нежелательными?

  6. В чём достоинства и недостатки монолита применительно к вашей теме ИС?

  7. Какие риски возникают при интеграции монолита с внешними системами?

Автор: к.п.н., Румянцев Сергей Александрович, доцент Финансового университета при Правительстве РФ; доцент ОЧУВО Международного инновационного университета; Консалтинг, управление разработкой ПО; системный и бизнес анализ; менеджмент; аналитиз данных; управление ИТ. Телефон для связи +79269444818 (мессенджеры)   Короткая ссылка:

Лабораторная работа 2

Тема: Проектирование архитектуры монолитной информационной системы
Части:

  • Часть 1 — Технологическая и инфраструктурная архитектура монолита

  • Часть 2 — Интеграционная архитектура монолита

  • Часть 3 — Внутренняя структура монолита (слои, модули, компоненты)

Дисциплина: Проектирование архитектуры информационных систем
Продолжительность: 2 пары (3 академических часа)
Форма проведения: индивидуальная работа + публичная защита с обсуждением.


1. Цель лабораторной работы

Сформировать у студентов навыки проектирования монолитной архитектуры информационной системы:

  • спроектировать технологическую и инфраструктурную архитектуру монолита (как и где разворачивается система);

  • описать интеграционные взаимодействия монолита с внешними системами и подсистемами;

  • спроектировать внутреннюю структуру монолита: слои, модули, основные компоненты и их связи.


2. Исходные условия и выбор темы

  1. У каждого студента уже есть своя тема ИС, определённая после Лабораторной работы 1:

    • либо по собственным интересам (любая реалистичная ИС);

    • либо из списка наиболее популярных типов ИС с hh.ru (список будет предложен отдельно, после описания всех лабораторных).

  2. Все артефакты ЛАБЫ 1 (контекст, стейкхолдеры, требования, логическая и информационная архитектура) считаются исходными данными для данной работы.

  3. В рамках ЛАБЫ 2 для выбранной ИС студент рассматривает вариант архитектуры “монолит” (в дальнейшем в ЛАБЕ 3 будет рассмотрена альтернативная архитектура, например микросервисная).


3. Планируемые результаты

Студент должен уметь:

  1. Проектировать схему развёртывания монолитной ИС (серверы, БД, окружение).

  2. Определять интеграционные взаимодействия монолита с внешними системами и модулями.

  3. Проектировать внутреннюю структуру монолита: слои (UI, бизнес-логика, данные), модули и компоненты.

  4. Обосновывать, почему выбран монолитный подход и какие риски/ограничения он несёт.

  5. Представлять результаты в виде диаграмм и текстового описания, умея публично защитить архитектурные решения.


4. Требования к программным средствам

  • текстовый редактор (Word, Google Docs и т.п.);

  • редактор диаграмм: Draw.io / diagrams.net, Lucidchart, PlantUML, Visual Paradigm, StarUML и др.;

  • ПО для показа презентации / диаграмм на проекторе.


5. Структура лабораторной работы

ЧАСТЬ 1. Технологическая и инфраструктурная архитектура монолита

Цель части:
Спроектировать, как монолитная ИС будет развёрнута в инфраструктуре: сервера, БД, дополнительные сервисы, сети.

Рекомендуемое время: 40–45 минут.

Задания

  1. Определить основные инфраструктурные компоненты.
    Для своей ИС перечислите:

    • веб-/приложенийный сервер (или несколько серверов);

    • сервер(а) БД;

    • вспомогательные сервисы (кеш, файловое хранилище, почтовый сервер и т.п. — по необходимости);

    • балансировщик нагрузки (если требуется);

    • элементы безопасности (reverse proxy, firewall, VPN — при необходимости).

  2. Определить схему развёртывания монолита.
    Ответьте на вопросы (кратко, но предметно):

    • Где физически или логически будет размещён монолит (on-premise, облако, смешанный вариант — концептуально)?

    • Будет ли использоваться кластер из нескольких экземпляров монолита или один экземпляр?

    • Как будет обеспечиваться резервирование БД (репликация, бэкапы)?

  3. Построить диаграмму развёртывания (Deployment) для монолита.
    На диаграмме должны быть:

    • узлы (nodes): сервер приложения, сервер БД, внешние системы;

    • артефакты: монолитное приложение, база данных;

    • связи (сетевое взаимодействие, протоколы можно обозначить текстом);

    • по возможности — разделение на зоны (интернет, DMZ, внутренняя сеть).

  4. Увязать инфраструктуру с нефункциональными требованиями.
    На основе сценариев качества из ЛАБЫ 1 кратко опишите:

    • как выбранная схема развёртывания помогает достичь нужной производительности и доступности;

    • где потенциальные точки отказа и как вы планируете их минимизировать.

Результат ЧАСТИ 1 (в отчёт):

  • Перечень инфраструктурных компонентов (кратко описанный).

  • Диаграмма развёртывания монолитной ИС.

  • Краткий текст (5–10 предложений) о связи инфраструктуры с нефункциональными требованиями.


ЧАСТЬ 2. Интеграционная архитектура монолитной ИС

Цель части:
Описать, как монолитная система будет интегрироваться с внешними ИС, сервисами и модулями.

Рекомендуемое время: 40–45 минут.

Задания

  1. Выделить внешние системы и интерфейсы.
    На основе ЛАБЫ 1 составьте таблицу:

    Внешняя система / стейкхолдер Назначение интеграции Тип взаимодействия (онлайн/офлайн) Протокол/механизм (концептуально)


  1. Примеры:

    • платёжный шлюз;

    • внешняя CRM/ERP;

    • почтовый сервис/СМС-шлюз;

    • государственные сервисы.

  2. Выбрать базовый интеграционный стиль для монолита.
    Кратко опишите, что используется:

    • классический запрос/ответ (REST/HTTP, gRPC и т.п.);

    • обмен файлами (пакетная интеграция);

    • очереди сообщений / события (если применимо).

    Обоснуйте, почему это разумно для монолита вашей ИС.

  3. Построить 1–2 диаграммы последовательности (Sequence) для ключевых сценариев.
    Выберите 2 сценария, где есть интеграции с внешними системами, например:

    • «Оформление заказа с онлайн-оплатой»;

    • «Отправка уведомления клиенту по e-mail/SMS»;

    • «Загрузка данных из внешней системы».

    Для каждого сценария:

    • определите участников (Актор, Монолитная ИС, Внешний сервис …);

    • отобразите последовательность сообщений / запросов;

    • укажите ключевые данные, которые передаются.

  4. Обозначить риски интеграции и их влияние на монолит.
    В тексте (5–7 предложений) опишите:

    • что произойдёт, если внешняя система недоступна;

    • как это повлияет на монолит и пользователей;

    • какие механизмы можно использовать (очереди, ретраи, деградация функционала и т.п.).

Результат ЧАСТИ 2 (в отчёт):

  • Таблица внешних интеграций.

  • 1–2 диаграммы последовательности для выбранных сценариев.

  • Краткий аналитический текст о рисках интеграции и вариантах их снижения.


ЧАСТЬ 3. Внутренняя структура монолитной ИС (слои, модули, компоненты)

Цель части:
Спроектировать внутреннее устройство монолита: слои, модули, основные компоненты и связи между ними.

Рекомендуемое время: 40–45 минут.

Задания

  1. Определить архитектурные слои монолита.
    Для своей ИС явно зафиксируйте слои, например:

    • Слой представления (UI) — веб-интерфейс, мобильный интерфейс, API для фронтенда;

    • Слой прикладной логики (Application) — обработка сценариев, orchestration;

    • Слой предметной области / бизнес-логики (Domain) — бизнес-правила, доменные объекты;

    • Слой доступа к данным (Data Access) — работа с БД, внешними хранилищами.

    Можно адаптировать структуру под свои идеи (3-слойка, 4-слойка и т.п.), но слои должны быть явно названы и их ответственность — описана.

  2. Разбить монолит на модули/подсистемы внутри слоёв.
    Опираясь на подсистемы из ЛАБЫ 1, спроектируйте модули:

    • в каких слоях какие модули существуют (например, «Модуль управления заказами» в слое Application и соответствующие компоненты в слое Domain и Data);

    • какие модули взаимодействуют между собой.

    Можно оформить в виде таблицы:

    | Модуль | Слой | Ответственность | Основные сущности/объекты | Соседние модули (зависимости) |

  3. Построить диаграмму внутренней структуры монолита.
    Варианты:

    • UML Component Diagram (компоненты и их связи);

    • C4 диаграмма уровня Component (внутренние компоненты одного контейнера — монолита).

    На диаграмме должны быть:

    • слои (можно показать “ярусами” или группами);

    • основные модули/компоненты;

    • связи между ними (кто кого вызывает / от кого зависит).

  4. Определить правила взаимодействия между слоями и модулями.
    В текстовой форме опишите:

    • разрешённые направления зависимостей (например, UI → Application → Domain → Data Access);

    • запретные/нежелательные зависимости (например, UI → Data Access напрямую);

    • как вы хотите обеспечить слабое зацепление модулей (интерфейсы, фасады, сервисы).

  5. Обозначить риски и ограничения монолитной архитектуры для данной ИС.
    Напишите 5–7 предложений:

    • какие плюсы монолита для вашей системы (простота развёртывания, целостность транзакций и т.д.);

    • какие минусы/риски (масштабируемость по функциональности, сложность изменений, размер кода и т.п.);

    • на каком горизонте развития системы монолит может перестать быть удобен.

Результат ЧАСТИ 3 (в отчёт):

  • Перечень архитектурных слоёв с описанием ответственности.

  • Таблица модулей и их связей.

  • Диаграмма внутренней структуры монолита (компонент/слоёв).

  • Текстовое описание правил зависимостей и анализ плюсов/минусов монолита.


6. Публичная защита и групповое обсуждение

В конце занятия каждый студент:

  1. Показывает на проекторе:

    • диаграмму развёртывания монолита;

    • одну диаграмму интеграций (контекст или sequence);

    • диаграмму внутренней структуры монолита.

  2. Кратко (3–5 минут) объясняет:

    • как устроен его монолит (слои, модули);

    • как он интегрируется с внешними системами;

    • в чём видит основные плюсы/минусы монолитного решения для своей темы.

  3. Отвечает на вопросы группы и преподавателя.
    Остальные студенты задают уточняющие и критические вопросы, предлагают альтернативы, указывают на возможные проблемы.


7. Структура отчёта по Лабораторной работе 2

  1. Титульный лист

  2. Цель и краткое описание темы ИС студента.

  3. Часть 1. Технологическая и инфраструктурная архитектура монолита

    • перечень инфраструктурных компонентов;

    • диаграмма развёртывания;

    • текстовый комментарий.

  4. Часть 2. Интеграционная архитектура монолита

    • таблица внешних интеграций;

    • диаграммы последовательности;

    • анализ рисков интеграции.

  5. Часть 3. Внутренняя структура монолита

    • описание архитектурных слоёв;

    • таблица модулей и их связей;

    • диаграмма компонент/слоёв;

    • текстовое описание правил зависимостей и анализ плюсов/минусов.

  6. Выводы по работе.

  7. При необходимости — скриншоты/фрагменты презентации для защиты.


8. Примерные контрольные вопросы

  1. В чём особенности архитектуры монолита по сравнению с распределёнными архитектурами?

  2. Какие инфраструктурные решения чаще всего используются при развёртывании монолита?

  3. Какие интеграционные стили подходят для монолитных систем и почему?

  4. Что такое слой в архитектуре приложения и чем он отличается от модуля?

  5. Какие зависимости между слоями являются корректными, а какие — нежелательными?

  6. В чём достоинства и недостатки монолита применительно к вашей теме ИС?

  7. Какие риски возникают при интеграции монолита с внешними системами?

https://webprogr.ru/~9u7p6
Короткая ссылка на новость:https://webprogr.ru/~9u7p6


Последние новости

Лабораторная работа 2: Проектирование архитектуры монолитной информационной системы ( Дисциплина: Проектирование архитектуры информационных систем)

Лабораторная работа 2

Тема: Проектирование архитектуры монолитной информационной системы
Части:

  • Часть 1 — Технологическая и инфраструктурная архитектура монолита

  • Часть 2 — Интеграционная архитектура монолита

  • Часть 3 — Внутренняя структура монолита (слои, модули, компоненты)

Дисциплина: Проектирование архитектуры информационных систем
Продолжительность: 2 пары (3 академических часа)
Форма проведения: индивидуальная работа + публичная защита с обсуждением.


1. Цель лабораторной работы

Сформировать у студентов навыки проектирования монолитной архитектуры информационной системы:

  • спроектировать технологическую и инфраструктурную архитектуру монолита (как и где разворачивается система);

  • описать интеграционные взаимодействия монолита с внешними системами и подсистемами;

  • спроектировать внутреннюю структуру монолита: слои, модули, основные компоненты и их связи.


2. Исходные условия и выбор темы

  1. У каждого студента уже есть своя тема ИС, определённая после Лабораторной работы 1:

    • либо по собственным интересам (любая реалистичная ИС);

    • либо из списка наиболее популярных типов ИС с hh.ru (список будет предложен отдельно, после описания всех лабораторных).

  2. Все артефакты ЛАБЫ 1 (контекст, стейкхолдеры, требования, логическая и информационная архитектура) считаются исходными данными для данной работы.

  3. В рамках ЛАБЫ 2 для выбранной ИС студент рассматривает вариант архитектуры “монолит” (в дальнейшем в ЛАБЕ 3 будет рассмотрена альтернативная архитектура, например микросервисная).


3. Планируемые результаты

Студент должен уметь:

  1. Проектировать схему развёртывания монолитной ИС (серверы, БД, окружение).

  2. Определять интеграционные взаимодействия монолита с внешними системами и модулями.

  3. Проектировать внутреннюю структуру монолита: слои (UI, бизнес-логика, данные), модули и компоненты.

  4. Обосновывать, почему выбран монолитный подход и какие риски/ограничения он несёт.

  5. Представлять результаты в виде диаграмм и текстового описания, умея публично защитить архитектурные решения.


4. Требования к программным средствам

  • текстовый редактор (Word, Google Docs и т.п.);

  • редактор диаграмм: Draw.io / diagrams.net, Lucidchart, PlantUML, Visual Paradigm, StarUML и др.;

  • ПО для показа презентации / диаграмм на проекторе.


5. Структура лабораторной работы

ЧАСТЬ 1. Технологическая и инфраструктурная архитектура монолита

Цель части:
Спроектировать, как монолитная ИС будет развёрнута в инфраструктуре: сервера, БД, дополнительные сервисы, сети.

Рекомендуемое время: 40–45 минут.

Задания

  1. Определить основные инфраструктурные компоненты.
    Для своей ИС перечислите:

    • веб-/приложенийный сервер (или несколько серверов);

    • сервер(а) БД;

    • вспомогательные сервисы (кеш, файловое хранилище, почтовый сервер и т.п. — по необходимости);

    • балансировщик нагрузки (если требуется);

    • элементы безопасности (reverse proxy, firewall, VPN — при необходимости).

  2. Определить схему развёртывания монолита.
    Ответьте на вопросы (кратко, но предметно):

    • Где физически или логически будет размещён монолит (on-premise, облако, смешанный вариант — концептуально)?

    • Будет ли использоваться кластер из нескольких экземпляров монолита или один экземпляр?

    • Как будет обеспечиваться резервирование БД (репликация, бэкапы)?

  3. Построить диаграмму развёртывания (Deployment) для монолита.
    На диаграмме должны быть:

    • узлы (nodes): сервер приложения, сервер БД, внешние системы;

    • артефакты: монолитное приложение, база данных;

    • связи (сетевое взаимодействие, протоколы можно обозначить текстом);

    • по возможности — разделение на зоны (интернет, DMZ, внутренняя сеть).

  4. Увязать инфраструктуру с нефункциональными требованиями.
    На основе сценариев качества из ЛАБЫ 1 кратко опишите:

    • как выбранная схема развёртывания помогает достичь нужной производительности и доступности;

    • где потенциальные точки отказа и как вы планируете их минимизировать.

Результат ЧАСТИ 1 (в отчёт):

  • Перечень инфраструктурных компонентов (кратко описанный).

  • Диаграмма развёртывания монолитной ИС.

  • Краткий текст (5–10 предложений) о связи инфраструктуры с нефункциональными требованиями.


ЧАСТЬ 2. Интеграционная архитектура монолитной ИС

Цель части:
Описать, как монолитная система будет интегрироваться с внешними ИС, сервисами и модулями.

Рекомендуемое время: 40–45 минут.

Задания

  1. Выделить внешние системы и интерфейсы.
    На основе ЛАБЫ 1 составьте таблицу:

    Внешняя система / стейкхолдер Назначение интеграции Тип взаимодействия (онлайн/офлайн) Протокол/механизм (концептуально)


  1. Примеры:

    • платёжный шлюз;

    • внешняя CRM/ERP;

    • почтовый сервис/СМС-шлюз;

    • государственные сервисы.

  2. Выбрать базовый интеграционный стиль для монолита.
    Кратко опишите, что используется:

    • классический запрос/ответ (REST/HTTP, gRPC и т.п.);

    • обмен файлами (пакетная интеграция);

    • очереди сообщений / события (если применимо).

    Обоснуйте, почему это разумно для монолита вашей ИС.

  3. Построить 1–2 диаграммы последовательности (Sequence) для ключевых сценариев.
    Выберите 2 сценария, где есть интеграции с внешними системами, например:

    • «Оформление заказа с онлайн-оплатой»;

    • «Отправка уведомления клиенту по e-mail/SMS»;

    • «Загрузка данных из внешней системы».

    Для каждого сценария:

    • определите участников (Актор, Монолитная ИС, Внешний сервис …);

    • отобразите последовательность сообщений / запросов;

    • укажите ключевые данные, которые передаются.

  4. Обозначить риски интеграции и их влияние на монолит.
    В тексте (5–7 предложений) опишите:

    • что произойдёт, если внешняя система недоступна;

    • как это повлияет на монолит и пользователей;

    • какие механизмы можно использовать (очереди, ретраи, деградация функционала и т.п.).

Результат ЧАСТИ 2 (в отчёт):

  • Таблица внешних интеграций.

  • 1–2 диаграммы последовательности для выбранных сценариев.

  • Краткий аналитический текст о рисках интеграции и вариантах их снижения.


ЧАСТЬ 3. Внутренняя структура монолитной ИС (слои, модули, компоненты)

Цель части:
Спроектировать внутреннее устройство монолита: слои, модули, основные компоненты и связи между ними.

Рекомендуемое время: 40–45 минут.

Задания

  1. Определить архитектурные слои монолита.
    Для своей ИС явно зафиксируйте слои, например:

    • Слой представления (UI) — веб-интерфейс, мобильный интерфейс, API для фронтенда;

    • Слой прикладной логики (Application) — обработка сценариев, orchestration;

    • Слой предметной области / бизнес-логики (Domain) — бизнес-правила, доменные объекты;

    • Слой доступа к данным (Data Access) — работа с БД, внешними хранилищами.

    Можно адаптировать структуру под свои идеи (3-слойка, 4-слойка и т.п.), но слои должны быть явно названы и их ответственность — описана.

  2. Разбить монолит на модули/подсистемы внутри слоёв.
    Опираясь на подсистемы из ЛАБЫ 1, спроектируйте модули:

    • в каких слоях какие модули существуют (например, «Модуль управления заказами» в слое Application и соответствующие компоненты в слое Domain и Data);

    • какие модули взаимодействуют между собой.

    Можно оформить в виде таблицы:

    | Модуль | Слой | Ответственность | Основные сущности/объекты | Соседние модули (зависимости) |

  3. Построить диаграмму внутренней структуры монолита.
    Варианты:

    • UML Component Diagram (компоненты и их связи);

    • C4 диаграмма уровня Component (внутренние компоненты одного контейнера — монолита).

    На диаграмме должны быть:

    • слои (можно показать “ярусами” или группами);

    • основные модули/компоненты;

    • связи между ними (кто кого вызывает / от кого зависит).

  4. Определить правила взаимодействия между слоями и модулями.
    В текстовой форме опишите:

    • разрешённые направления зависимостей (например, UI → Application → Domain → Data Access);

    • запретные/нежелательные зависимости (например, UI → Data Access напрямую);

    • как вы хотите обеспечить слабое зацепление модулей (интерфейсы, фасады, сервисы).

  5. Обозначить риски и ограничения монолитной архитектуры для данной ИС.
    Напишите 5–7 предложений:

    • какие плюсы монолита для вашей системы (простота развёртывания, целостность транзакций и т.д.);

    • какие минусы/риски (масштабируемость по функциональности, сложность изменений, размер кода и т.п.);

    • на каком горизонте развития системы монолит может перестать быть удобен.

Результат ЧАСТИ 3 (в отчёт):

  • Перечень архитектурных слоёв с описанием ответственности.

  • Таблица модулей и их связей.

  • Диаграмма внутренней структуры монолита (компонент/слоёв).

  • Текстовое описание правил зависимостей и анализ плюсов/минусов монолита.


6. Публичная защита и групповое обсуждение

В конце занятия каждый студент:

  1. Показывает на проекторе:

    • диаграмму развёртывания монолита;

    • одну диаграмму интеграций (контекст или sequence);

    • диаграмму внутренней структуры монолита.

  2. Кратко (3–5 минут) объясняет:

    • как устроен его монолит (слои, модули);

    • как он интегрируется с внешними системами;

    • в чём видит основные плюсы/минусы монолитного решения для своей темы.

  3. Отвечает на вопросы группы и преподавателя.
    Остальные студенты задают уточняющие и критические вопросы, предлагают альтернативы, указывают на возможные проблемы.


7. Структура отчёта по Лабораторной работе 2

  1. Титульный лист

  2. Цель и краткое описание темы ИС студента.

  3. Часть 1. Технологическая и инфраструктурная архитектура монолита

    • перечень инфраструктурных компонентов;

    • диаграмма развёртывания;

    • текстовый комментарий.

  4. Часть 2. Интеграционная архитектура монолита

    • таблица внешних интеграций;

    • диаграммы последовательности;

    • анализ рисков интеграции.

  5. Часть 3. Внутренняя структура монолита

    • описание архитектурных слоёв;

    • таблица модулей и их связей;

    • диаграмма компонент/слоёв;

    • текстовое описание правил зависимостей и анализ плюсов/минусов.

  6. Выводы по работе.

  7. При необходимости — скриншоты/фрагменты презентации для защиты.


8. Примерные контрольные вопросы

  1. В чём особенности архитектуры монолита по сравнению с распределёнными архитектурами?

  2. Какие инфраструктурные решения чаще всего используются при развёртывании монолита?

  3. Какие интеграционные стили подходят для монолитных систем и почему?

  4. Что такое слой в архитектуре приложения и чем он отличается от модуля?

  5. Какие зависимости между слоями являются корректными, а какие — нежелательными?

  6. В чём достоинства и недостатки монолита применительно к вашей теме ИС?

  7. Какие риски возникают при интеграции монолита с внешними системами?

Рейтинг@Mail.ru