!
Мы используем cookie. Они помогают нам понять, как вы взаимодействуете с сайтом. Изменить настройки
+7 (495) 374-97-71

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

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


Евгений Некрасов , Ведущий разработчик RDN Group
Автор: Евгений Некрасов, Ведущий разработчик RDN Group

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

В современной разработке IT-продуктов существует два подхода: монолитная архитектура и микросервисы. Кроме того, существует гибридная архитектура - это промежуточный вариант на стыке двух вышеперечисленных подходов. У каждого подхода есть свои плюсы, минусы, особенности и сторонники и противники.

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

Является классическим подходом к разработке, когда приложение построено как один цельный продукт и упаковано в виде одного WAR-файла или Node с одной точкой входа. При монолитной архитектуре все стандартные модули, пользовательский интерфейс (UI), бизнес-логика и дата-слой, выступают как единый сервис. Возможны способы взаимодействия с сервисом: API REST и веб-интерфейс.

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

В сущности, любой стандартный интернет-магазин выстроен как монолитное приложение.

Преимущества
  1. Позволяет быстрее разработать MVP и получить конечную версию продукта.
  2. Проще развернуть
  3. Проще и выгоднее поддерживать
Недостатки
  1. Ошибка или проблема может замедлить или разрушить все приложение.
  2. Сложнее масштабируется.
  3. Сложно изменить или переформатировать.

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

Микросервисная архитектура имеет принципиально иной подход к разработке, при которой все приложение собрано из отдельных независимых модулей, составленных из небольших объемов кода. У каждого модуля своя собственная логика и база данных, а их взаимодействие осуществляется через сеть по протоколонезависимой технологии.

Распространенный пример микросервисной архитектуры - это популярные онлайн-маркетплейсы, вроде Avito. Каталог товаров, рейтинг пользователей, чат, отзывы - это все отдельные микросервисы в рамках одного продукта.

Приложение на базе микросервисеной архитектуры дает больше возможностей, однако устроено оно сложнее.

Преимущества
  1. Больше разнообразных функций
  2. Повышенная отказоустойчивость. Если один сервис “отвалился”, другой может взять на себя весь его функционал.
  3. Возможность обновлять по частям.
  4. Независимость модулей. Проблемы с работой одного модуля меньше сказываются на работе всего приложения.
  5. Проще перестраивать и масштабировать.
Недостатки
  1. Более требовательно к ресурсам.
  2. Сложнее в эксплуатации.
  3. Выше накладные расходы.
  4. Команды разработчиков должны иметь релевантный опыт и уметь работать с различными языками программирования.

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

Микросервисный подход помогает ускорить разработку. Такой подход позволяет отдельным командам со своей узкой специализацией параллельно работать над несколькими модулями. Меньшие размеры микросервисов дают преимущества, когда речь идет о компиляции, времени запуска и сроках, необходимых на тесты.

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

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

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

Например, если в банковском приложении с микросервисной архитектурой нужно проверить кредитную историю клиента, запрос отправляется не ко всей массивной базе данных, а к модулю, отвечающему за кредитную документацию. Такой запрос система обработает значительно быстрее.

Можно ли перейти с монолита на микросервисы?

А можно ли превратить двухэтажный дом в девятиэтажку? Теоретически - да. Но на практике это означает переделывать все, начиная с фундамента. Это долго и не всегда оправдано. Поэтому, если ваша бизнес-задача предполагает создание сложного высоконагруженного приложения с перспективой масштабирования, рекомендуем остановиться на микросервисной архитектуре. В долгосрочной перспективе это будет выгоднее для компании, в том числе с финансовой точки зрения

Как насчет гибрида?

Есть и третий вариант, некий компромисс - гибридная архитектура. Когда базовый функционал реализуется в виде монолитного приложения, а отдельные функции - в виде микросервисов. В последние годы именно такой подход выбирают наши партнеры из числа крупных B2B и B2C-компаний. Гибридная архитектура позволяет объединить надежность монолитных приложений с гибкостью и функциональностью микросервисов, чтобы минимизировать недостатки каждого из подходов.

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


микросервисы
монолит
архитектура
IT-проект
3013

Евгений Некрасов

16 материалов: гайды, шаблоны, чек листы, таблицы – все для быстрого старта по внедрению CRM.
16 материалов: гайды, шаблоны, чек листы, таблицы – все для быстрого старта по внедрению CRM.
Подробнее
27 пошаговых видеоуроков, охватывающих ключевые разделы Битрикс24 для автоматизации бизнеса
27 пошаговых видеоуроков, охватывающих ключевые разделы Битрикс24 для автоматизации бизнеса
Подробнее
Как работает готовый КЭДО и Госключ в Битрикс24, и какие преимущества это дает вашему бизнесу.
Как работает готовый КЭДО и Госключ в Битрикс24, и какие преимущества это дает вашему бизнесу.
Получить запись
Актуальные направления развития личных кабинетов для клиентов и сотрудников в промышленности.
Актуальные направления развития личных кабинетов для клиентов и сотрудников в промышленности.
Подробнее
8 видеоуроков по автоматизации HR-процессов: от адаптации сотрудников до управления карьерными траекториями.
8 видеоуроков по автоматизации HR-процессов: от адаптации сотрудников до управления карьерными траекториями.
Подробнее
консультация

Получите консультацию бизнес-аналитика RDN Group

Подскажем, какие технологии дадут максимальный эффект...


01
Анализ текущих бизнес-процессов
03
Прогноз окупаемости и эффектов
02
Рекомендации по цифровым инструментам
04
Без навязанных решений — только по делу

Статьи на тему

Моделирование бизнес-процессов: зачем и как описывать

Моделирование бизнес-процессов: зачем и как описывать

Что такое бизнес-процесс, зачем его описывать, какие нотации моделирования процессов существуют и почему BPMN чаще всего выбирают для автоматизации и ...
#Бизнес-процесс #Нотации для моделирования процессов #Описание процессов #Зачем описывать бизнес процесс #RabbitMQ #Интеграции с Битрикс24 #Брокер сообщений #Astra Linux #1С #Битрикс24 #Переход на российскую ОС #Уровни аналитики #Бизнес-консалтинг #Технический консалтинг #Аналитик-ПМ #ИТ-проекты
RabbitMQ и интеграция с Битрикс24: зачем нужен брокер сообщений

RabbitMQ и интеграция с Битрикс24: зачем нужен брокер сообщений

Разбираем, что такое RabbitMQ, зачем нужен брокер сообщений в CRM Битрикс24 и как очереди и обменники повышают отказоустойчивость и скорость работы интеграций...
#Бизнес-процесс #Нотации для моделирования процессов #Описание процессов #Зачем описывать бизнес процесс #RabbitMQ #Интеграции с Битрикс24 #Брокер сообщений #Astra Linux #1С #Битрикс24 #Переход на российскую ОС #Уровни аналитики #Бизнес-консалтинг #Технический консалтинг #Аналитик-ПМ #ИТ-проекты
Astra Linux, 1С и Битрикс24: переход на российскую ОС

Astra Linux, 1С и Битрикс24: переход на российскую ОС

Что даёт переход на Astra Linux: стабильная работа 1С и Битрикс24, защита данных, снижение расходов и независимость от зарубежных решений.
#Бизнес-процесс #Нотации для моделирования процессов #Описание процессов #Зачем описывать бизнес процесс #RabbitMQ #Интеграции с Битрикс24 #Брокер сообщений #Astra Linux #1С #Битрикс24 #Переход на российскую ОС #Уровни аналитики #Бизнес-консалтинг #Технический консалтинг #Аналитик-ПМ #ИТ-проекты
Уровни аналитики на ИТ-проектах: от стратегии до конкретного плана

Уровни аналитики на ИТ-проектах: от стратегии до конкретного плана

Любой ИТ-проект — это не только про технологии. Даже самая современная CRM или платформа не принесёт результата, если не понимать, какие задачи она должна...
#Бизнес-процесс #Нотации для моделирования процессов #Описание процессов #Зачем описывать бизнес процесс #RabbitMQ #Интеграции с Битрикс24 #Брокер сообщений #Astra Linux #1С #Битрикс24 #Переход на российскую ОС #Уровни аналитики #Бизнес-консалтинг #Технический консалтинг #Аналитик-ПМ #ИТ-проекты

Поделиться RDN Group







Стать клиентом Стать
клиентом