Комментарии 6
Только два варианта архитектуры предлагает автор книги... Даже советовать литературу не хочется, ИИ победил.
Давайте будем честны, человек не разбирается и сказал об этом сразу и несколько раз. И логично чуда не произошло — статья мелковата, пустовата, неполновата и т.д. Но нужно ли оно было? Какому-нибудь менеджеру может и пригодится ведь в таком виде...
подброшу аффтору пару мыслишек :
не существует монолита и микросервисов. как "архитектур".
есть компонентно-ориентированная архитектура и антипаттерн "связи все ко всем" .
непонимание компонентно-ориентированной архитектуры порождает "микросервисный монолит", в котором вроде всё разнесено на сотни хостов, всё по книгам, но что-то поменять сыкотно, потому, что не знаешь где какая проблема вылезет. потому что связи между элементами системы запутаны и трудно прослеживаемы.
а понимание компонентно-ориентированной архитектуры позволяет оставаясь даже в концепции "монолитной сборки и дистрибуции" достигать всех "преимуществ приписываемых якобы-только микросервисам" - распределенные независимые команды, отказоустойчивость, незаметное развертывание новых фич и пр.
В противопоставлении монолита и микросервиса, мне всегда очень нравятся эти тезисы:
В монолите отказ одного модуля часто означает остановку всей системы.
Микросервисы обеспечивают изоляцию сбоев — если один сервис недоступен, остальные продолжают работать.
Они вызывают вопросы:
Что нужно сделать такого, чтобы сбой в работе одного из модулей привёл к полной не работоспособности всего монолита?
Корректно ли считать недоступность одного из сервисов (модулей в случае монолита), нормальной/допустимой работой системы?
Предположим, в проекте отзовиков сломалась подсистема отвечающая за публикацию отзывов. Проект доступен, отзывы доступны, а опубликовать отзыв нельзя. Можно ли считать проект работающим, с точки зрения бизнеса? Не думаю.
Предположим, в интернет магазине сломалась подсистема приёма платежей. Можно смотреть товары, читать отзывы, добавлять товары в корзину, но купить ничего нельзя. Можно ли считать проект работающим, с точки зрения бизнеса? Не думаю.
Предположим, в CRM сломалась авторизация. Все функции системы работают исправно, но пользователи не могут ими воспользоваться потому, что не могут авторизация. Можно ли считать проект работающим, с точки зрения бизнеса? Не думаю.
хотите раскрою секрет? просто все адепты микросервисов слепо считают антипаттерн "связи многие ко многим" автоматически приравненным к монолиту.
впрочем это не мешает им следующим шагом рассуждать о том, "как плохо делать распределенный/микросервисный монолит", в котором микросервисы организованы так, что сбой/изменение одного модуля, приводит к сбою / необходимости обновления всей системы.
вот не складывается у них, не складывается, что не в микросервисах дело, не в способе сборки и упаковки компонент системы...
тупят, как Алиса Яндексовская в той истории про "самую длинную реку в мире".
Монолит: MVP, маленькая команда? О_о Вы когда нибудь видел как разворачивается инстанс того же шерпоинт, например, или SAP? Или другой тяжелый интерпрайс?
Согласен, что для обновления монолитных платформ частенька нужна некоторая сноровка и подготовка и на CI/CD их поставить проблема, хотя решаемо с костылями в процессах, хотя много раз видел, как костыли в процессах объявлялись практикой, когда лучше вариант придумать не получается.

Архитектурный выбор: Монолит против микросервисов без технического диплома