Микросервисная архитектура — это подход, когда информационная система представляет из себя независимые «куски», называемые сервисами. Причем один сервис чаще всего отвечает за какой то один бизнес модуль, а взаимодействуют эти сервисы между собой по сети.
Простой пример:
Представьте, что у вас есть CRM-система. Ей пользуется одновременно 5000 ваших менеджеров. Основные функции, которые они используют — это просмотр карточки клиента и работа с выставленными счетами. По причине большой нагрузки, огромного количества клиентов и специфических требований, разработчик выделил этот функционал в два разных сервиса:
Каждый из сервисов он поместил на отдельный сервер, у каждого сервиса собственная независимая база данных. А общаются между собой сервисы с помощью API-запросов.
Такой подход оправдан, если сервисы такие большие, что над каждым работает своя команда программистов. Как вы понимаете, если команды договорятся как сервисы будут общаться, то сама разработка будет идти независимо. Одна команда может выкатывать обновления ежедневно, а другая раз в месяц.
И по такой логике каждый бизнес-модуль можно помещать в отдельный сервис, и, к примеру, CRM крупнейшей компании может включать в себя сотню сервисов. Но в этом случае и количество разработчиков на проекте скорее всего кратно этому количеству, что конечно требуется крайне редко.