Когда микросервисы – в помощь IT-компании?
Сейчас в нашем сообществе немало споров о том, как быть: оставаться на монолите или переходить на микросервисы, вслед за компаниями-гигантами ретейла, медиа и прочих сфер. Чтобы вы могли сделать правильные выводы, давайте рассмотрим, когда именно в IT стоит прибегать к микросервисам.
Преимущества и недостатки микросервисов
Положительных моментов, которые микросервисы привносят в проект, достаточно, чтобы начать именно с них:
- Адаптация под требования проекта проходит проще.
- Отдельно можно разрабатывать и тестировать разные направления, при этом общая работа не пострадает, что дает больше свободы.
- Продукт можно продавать не полностью, а частями.
- Отдельные микросервисы можно соединить в одну систему и дальше ее развивать. И в случае, если один из компонентов перестал работать, не обязательно, что вся система выйдет из строя. В каком-то виде она все равно продолжит работать.
- Можно прибегать к разным языками программирования и разным видам протоколов для общения между ними.
- Децентрализация данных.
- Упрощают разделение обязанностей и контроль за отдельными стадиями проекта.
В то же время, у микросервисов есть и ряд недостатков. В частности, порог входа в проект становится более высоким и еще усложняется поддержание, конфигурация и тестирование настроек. Также сложнее обеспечивать безопасность транзакций и есть вероятность несогласованности (о чем должны обязательно помнить разработчики).
Если у вас появляются новые участники команды, им, скорее всего, понадобится больше времени, чтобы понять, как микросервисы взаимодействуют.
Когда стоит задумываться об альтернативе монолиту?
Здесь решение зависит от вашей ситуации — целей, потребностей и стадии развития проекта. На начальном этапе точно проще начинать с монолита, но по мере увеличения количества задач, вполне вероятно, микросервисы станут достойной и правильной альтернативой.
Предлагаю обращать особое внимание на такие аспекты:
- в монолитном проекте новый функционал обходится дороже, чем польза от него;
- очень большой проект, где работает много специалистов.
Два названных критерия точно указывают, что пора переходить на микросервисы. И хорошо, если заказчик будет с вами согласен. В противном случае, придется приводить доводы в пользу такого решения. Однако вас это не должно останавливать, ведь есть очевидные причины. Их и нужно объяснить клиенту. Упростить в данном случае задачу помогут признаки, при которых от монолита отказываться не стоит.
Этап для монолита
Первым и очень важным фактором, когда лучше использовать именно монолит, является необходимость быстро запустить новый проект. Он позволяет применять разные инструменты, которые можно интегрировать для упрощения разработки.
Во-вторых, развертывать изменения или обновления можно сразу, а не по отдельности. Во-третьих, в начале проекта монолит легко и быстро масштабировать, и к разработке на монолите может присоединиться больше специалистов, даже только что пришедших в компанию.
Среди недостатков использования монолита при длительном развитии проекта стоит выделить следующие:
- Ощутимое удорожание при использовании дополнительных ресурсов.
- Устаревшие технологии, которые сложно и дорого обновлять, но они в дальнейшем могут значительно притормаживать или вовсе застопорить развитие.
Итак, приведенных выше доводов, думаю, достаточно, чтобы убедить клиента принять ваше предложение, будь оно в пользу монолита или же микросервисов. Главное, вам самим точно определить, какое окажется наиболее оптимальным именно в данным момент.