Files
digital-garden/dev/architecture/Монолитная архитектура.md
2025-01-17 16:55:52 +03:00

5.2 KiB
Raw Blame History

aliases, tags, date
aliases tags date
монолит
монолиты
монолитного приложения
Монолитные приложения
maturity/🌱
2024-04-04

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

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

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

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

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

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

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

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

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