Основы микросервисов
Микросервис — самостоятельная часть системы
В микросервисной архитектуре приложение состоит из нескольких сервисов, каждый из которых работает отдельным процессом и отвечает за ограниченную бизнес-возможность. Сервисы взаимодействуют через сетевые контракты, а не вызывают внутренние классы друг друга напрямую.
Client -> API Gateway -> Orders Service
\-> Payments Service
\-> Users Service
Ключевая идея здесь не в маленьком размере кода. Самостоятельность важнее количества строк: сервис имеет понятную ответственность, собственный жизненный цикл и может изменяться без синхронного выпуска всей системы.
Независимость даёт новые возможности
Отдельный сервис можно масштабировать под его нагрузку, развёртывать чаще остальных и поручить команде, которая полностью отвечает за его развитие. Сбой одного компонента также не обязан немедленно останавливать весь продукт, если остальные части умеют корректно работать с его временной недоступностью.
Но эта независимость появляется вместе с сетью. Вызовы могут завершаться по таймауту, версии контрактов приходится согласовывать, а единая операция пользователя может затронуть несколько процессов.
Микросервисы требуют организационной зрелости
Чем больше независимых сервисов, тем важнее автоматизированные сборка и развёртывание, наблюдаемость, единые правила контрактов и понятное владение компонентами. Без этого количество движущихся частей быстро становится отдельной проблемой.