Монолитная архитектура — это способ проектирования, разработки и деплоя информационной системы как единого целого. Все компоненты приложения — от пользовательского интерфейса до базы данных — объединены в одном приложении. Такой подход остаётся популярным для многих проектов из-за его простоты на начальных этапах.

Преимущества:

  • Простота разработки. Все инструменты разработки (например, IDE) сосредоточены на создании единого приложения. Это упрощает работу команды, особенно если проект небольшой и команда ограничена в ресурсах.
  • Лёгкость внесения радикальных изменений. В монолитной архитектуре вы можете одновременно менять код и структуру базы данных. После этого достаточно пересобрать и развернуть новое приложение.
  • Простота тестирования. Сквозное тестирование охватывает всю систему сразу. Инструменты, такие как Selenium, позволяют тестировать пользовательский интерфейс, API и внутреннюю логику в одном процессе.
  • Упрощённое развертывание. Разработчику достаточно скопировать один WAR-файл (или аналог) на сервер с установленным приложением, например Tomcat.
  • Масштабирование путём клонирования. Для увеличения производительности можно развернуть несколько экземпляров приложения за балансировщиком нагрузки, распределяя трафик между ними.

Несмотря на простоту, монолитный подход имеет ряд ограничений, которые могут стать критическими при увеличении размера приложения или масштабировании бизнеса:

  • Трудности с масштабированием. Программные модули конкурируют за ресурсы. Например, модуль обработки изображений, нагружающий CPU, может негативно влиять на стабильность других модулей.
  • Единые технологии для всех задач. Монолит ограничивает возможность использовать разные технологии для разных частей системы. Например, вы не сможете использовать Java для одних модулей, а C++ — для других.
  • Проблемы с надёжностью и стабильностью. Утечка памяти в одном модуле может вызвать сбой всей системы, поскольку в монолите все компоненты тесно связаны.
  • Проблемы масштабируемости и сложности управления. Популярные приложения часто перерастают монолитную архитектуру. Это приводит к увеличению времени сборки, сложности управления и проблемам с разделением ответственности в команде. В конечном итоге проект может оказаться в состоянии так называемого “монолитного ада”.

Мета информация

Область:: 00 Архитектура ИС
Родитель:: Архитектурный паттерн
Источник::
Автор::
Создана:: 2024-04-04

Дополнительные материалы

Дочерние заметки