Микросервисная архитектура - зачем  она нужна?

Сегодня решили рассказать вам про виды архитектуры, которые используются в бекенд - сервисах. Они не обязательно связаны с каким-то конкретным языком, но в основном разговор о них ведется в контексте компилируемых и масштабируемых языков - таких как Java, C# или Golang.

Сервисы можно в плане архитектуры условно разделить на два типа - монолит и микросервисы.

Под монолитом понимается единая прослойка бекенда, которая доставляется через одно единое развертывание.
Развертывание – это отправка готовой версии бекенд-приложения на удаленный сервис, который и будет выполнять обслуживание. Например, на AWS или Digital Ocean.

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

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

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

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

Так какую архитектуру стоит выбрать?

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

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

Если ваши приложения не будут сильно связаны бизнес – логикой – можете остановить свой выбор на микросервисах.

Nordic IT School

Москва, ул. Большая Спасская 12

+7 925 632-21-47

+7 495 626-46-00

moscow@inordic.ru