Тебе уже наверное доводилось слышать такое слово как микросервисы, сейчас расскажу про то, что же это такое, а еще, какая им есть альтернатива, ведь для каждой задачи должен быть свой подход.
Начнем с того, что сами по себе Микросервисы - это принцип построения архитектуры, но до них был главенствующим другой, Монолитный принцип. Давай сначала поговорим про него.
Итак, монолит представляет из себя что-то вроде бетонной стены. Это программа, которая хоть и условно разбита на логические части, к примеру по бизнес-процессам, но эти части работают в рамках одного большого приложения. Вот прям которое находится на одном компьютере (мы не рассматриваем более сложное распределение, чтобы не запутаться) и обмен данными между внутренними процессами происходит прямо внутри программы, в единой базе данных, раздутой до размеров слона.
В противовес ему стоит микросервисная архитектура. Ее можно сравнить уже с кирпичной стеной, где каждый кирпичик при должной сноровке можно вытащить или заменить и стена не рухнет. По сути, каждый микросервис - это отдельная небольшая программа. И если в монолите модули заказа товара, управления складом и логистики, как в одном из прошлых примеров, работали внутри одной программы, то в случае с микросервисами, заказы, склад и логистика - это отдельные программы с отдельной базой данных у каждого из них. И общаются эти программы как раз через сеть, причем как внутреннюю сеть компании, так и Интернет.
Я тебе рассказал про оба подхода к архитектуре и их кардинальных различиях, теперь давай посмотрим, в чем их плюсы и минусы.
- Монолитные приложения работают зачастую быстрее микросервисных, так как им не надо использовать сеть (а она сама по себе очень медленная с точки зрения компьютера), особенно если следить за качеством кода
- Микросервисные приложения более устойчивы к ошибкам: если ошибки появились даже в нескольких из них, это не влечет отказа всех остальных. В монолите же, если ломается один модуль, “вылетает” вся программа
- У монолитного приложения как правило один язык программирования (ну максимум два - на клиентскую и на серверную часть), Микросервисы - это практически всегда “зоопарк” всевозможных технологий. Разными могут быть в том числе базы данных и даже интерфейсы их общения друг с другом. Ну мало ли какие у архитектора живут тараканы в голове
- Микросервисы при желании можно растащить по разным серверам в разных городах и странах, чтобы обеспечить лучшую доступность для локальных пользователей.
- В микросервисы проще вносить изменения: тебе не надо устанавливать всё приложение, достаточно обновить тот сервис, в которое были внесены изменения
Я понимаю, что тема не простая и у тебя появилось много вопросов - поэтому не стесняйся их задавать, с большим удовольствием отвечу! А пока - подписывайся и зови друзей
#архитектура #микросервисы #монолит