Top.Mail.Ru

Монолитная архитектура. Метод разработки приложений

Выражение «монолитная архитектура» сразу ассоциируется со словом «монолит». А
монолитом еще с давних пор называют большой единый блок из камня или бетона.
Монолит — это что-то большое и единое, имеющее общую и мощную структуру.
Монолит — это сила и на века.
В программировании «монолитная архитектура» также подразумевает наличие
общей и единой платформы, где сконцентрированы все компоненты одной
программы. Сколько бы не насчитывалось подобных компонентов, но все они
унифицированы и при этом управляются из одного места. В этом и определяется
сила «монолитных» приложений.

Монолитная архитектура

Многие современные стартапы выбирают именно монолитную архитектуру
приложения, потому что она комфортна при работе небольшими группами
разработчиков. При ее использовании все компоненты программы
взаимосвязываются и взаимозаменяются — это помогает развивать программу
автономной и самодостаточной. Монолитная архитектура считается традиционной и
проверенной при разработке приложений, но в то же время, многие разработчики
считают такой подход в реализации приложений старомодным и уже никуда не
годным.
Чтобы понимать, подойдет ли вам такой способ разработки или нет, нужно
рассмотреть достоинства и недостатки монолитной архитектуры.

Достоинства монолитной архитектуры

  1. Простая разработка и простой запуск программы. Из-за того , что вся
    разработка сконцентрирована в одном месте, легче интегрировать
    инструменты для облегченной разработки, те же каталоги или библиотеки.
    Плюс, при необходимости изменить элементы программы не нужно вносить
    изменения по отдельности в разных местах – все делается в одном месте.
  2. Сквозные проблемы практически отсутствуют. Большое количество
    приложений имеют зависимость от задач, которые совершаются между
    компонентами программы: логи, ограничения скорости, контрольные журналы
    и т. д. При монолитной архитектуре эти проблемы практически отсутствуют,
    так как все сконцентрировано в одном коде и все работает в одном
    приложении.
  3. Улучшенная производительность. Если учитывать, что приложения были
    собраны правильно, то одно и то же приложение при монолитной архитектуре будет работать более производительно, чем при микросервисах. Это опять же обеспечивается единым кодом программы и работы из «одного» места.

Недостатки монолитной архитектуры

  1. Большой объем кода. Если разрабатываемый продукт довольно большой и
    постоянно масштабируется, то со временем его код разрастается до огромных
    размеров. Это утяжеляет его понимание и дальнейшее обслуживание. Плюс,
    может наступить момент, когда код будет «перегружен» и потеряет от этого
    свое качество.
  2. Сложно модернизируется. Иногда нужно добавить в приложение какую-то
    новую «фишку». При монолитной архитектуре можно столкнуться со
    множеством препятствий, чтобы это реализовать. Потому что, в некоторых
    случаях, добавить какую-то «фишку» означает переписать полностью
    приложение. А это долго и дорого.
  3. Гибкость ограничена. Из второго пункта следует, что внедрение чего-то нового
    — это целая история и очень часто это означает повторное развертывание
    приложения, так как вносить изменения нужно в весь код. Эта же ситуация
    касается и исправления багов и добавления обновлений. Обновление =
    переписанное заново приложение. Поэтому при монолитной архитектуре
    довольно сложно адаптировать уже работающее приложение под свои нужды,
    то есть гибкость «хромает».
  4. Зависимость между компонентами. С одной стороны это является
    достоинством, так как увеличивает производительность. Но с другой стороны,
    если в каком-то компоненте программы будет ошибка, то это замедлит или
    вообще остановит работу всего приложения, а не одного компонента.

Заключение

Монолитная архитектура, хоть и «старая» по своему происхождению, но до сих пор
актуальная и используется многими компаниями. Такая архитектура идеально
подходит для стартапов и разработок:

  • когда нужно быстро развернуть небольшое приложение;
  • если в команде разработчиков не большое количество людей (2-5), которые смогут работать совместно, а также смогут вместе поддерживать приложение в дальнейшем;
  • когда создается непроверенный продукт и нужно его быстро создать, чтобы протестировать;
  • когда просто нет опыта работы с микросервисами;
  • если изначально известно, что приложение не будет разрастаться до колоссальных масштабов;
  • если в приоритете разработки программного обеспечения находится именно скорость его работы и производительность.

В целом, небольшие «монолитные» приложения легко масштабируются до
определенного момента. Можно представить их процесс масштабирования с
клубком ниток. Когда он небольшой, его легко держать в руках и наматывать на него
другую нитку разных цветов и разного состава — все происходит легко и быстро. Но
настает такой момент, когда клубок в руках уже не удержать и тем более не
посчитать сколько в нем нитки и каких она цветов. И чтобы с этим всем как-то
разобраться, придется клубок перематывать и при этом делить его на более мелкие
клубки по цветам нитки.

Возможно вам будет интересно почитать статью “Port 60/64 emulation что это такое?”

Поэтому перед использованием монолитной архитектуры, нужно все тщательно
взвесить. Иногда продумывают такой ход: запуск приложения осуществляют при
использовании монолитной архитектуры, а чуть позже, если оно «зашло»
пользователю, дробят приложения на микро сервисы для удобного
масштабирования, тем самым меняя его архитектуру.

Text.ru - 100.00%
Поделись статьей с друзьями!

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *