Почему микросервисы - это "боль"

Всем привет. Недавно на одной техлидской конференции слушал интересный доклад по архитектуре, где разбирались плюсы и минусы монолитной, микросервисной и других архитектур. Ещё одна из моих команд разрабатывает в микросервисной архитектуре и я не понаслышке знаю все проблемы этого популярного подхода. Давайте разбираться.

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

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

Пост не помещается в Сетке, поэтому продолжение можно почитать в моем TG: https://t.me/vne_koda

Почему микросервисы - это "боль"
Всем привет | Сетка — социальная сеть от hh.ru Почему микросервисы - это "боль"
Всем привет | Сетка — социальная сеть от hh.ru