Сейчас в нашем сообществе немало споров о том, как быть: оставаться на монолите или переходить на микросервисы, вслед за компаниями-гигантами ретейла, медиа и прочих сфер. Чтобы вы могли сделать правильные выводы, давайте рассмотрим, когда именно в IT стоит прибегать к микросервисам. 

Преимущества и недостатки микросервисов

Положительных моментов, которые микросервисы привносят в проект, достаточно, чтобы начать именно с них:

- Адаптация под требования проекта проходит проще.

- Отдельно можно разрабатывать и тестировать разные направления, при этом общая работа не пострадает, что дает больше свободы.

- Продукт можно продавать не полностью, а частями.

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

- Можно прибегать к разным языками программирования и разным видам протоколов для общения между ними.

- Децентрализация данных.

- Упрощают разделение обязанностей и контроль за отдельными стадиями проекта.

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

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

Когда стоит задумываться об альтернативе монолиту?

Здесь решение зависит от вашей ситуации — целей, потребностей и стадии развития проекта. На начальном этапе точно проще начинать с монолита, но по мере увеличения количества задач, вполне вероятно, микросервисы станут достойной и правильной альтернативой.

Предлагаю обращать особое внимание на такие аспекты:

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

- очень большой проект, где работает много специалистов.

Два названных критерия точно указывают, что пора переходить на микросервисы. И хорошо, если заказчик будет с вами согласен. В противном случае, придется приводить доводы в пользу такого решения. Однако вас это не должно останавливать, ведь есть очевидные причины. Их и нужно объяснить клиенту. Упростить в данном случае задачу помогут признаки, при которых от монолита отказываться не стоит. 

Этап для монолита

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

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

Среди недостатков использования монолита при длительном развитии проекта стоит выделить следующие:

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

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

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