Представьте, что у вас есть 1 человек, который выполняет 10 работ. Его зовут Моно. Он ваш монолит.

Теперь представьте, что у вас есть 10 человек, каждый из которых отвечает за 1 из 10 заданий, которые выполняет Mono. Их называют отрядом, и это ваши микросервисы.

Зачем мне платить 10 человекам за работу, за которую я могу платить одному?

Проще говоря, если Mono болеет, вам не повезло.

Но Моно редко болеет, и я люблю его.

Это нормально, есть много проблем, которые вы должны решить, прежде чем нанимать команду.

  1. Стоимость — Mono может быть в 10 раз лучше, чем каждый член вашей команды, но ему, вероятно, не платят так.
  2. Дополнительные ресурсы — для Mono требуется одна подписка на Visual Studio. Отряду нужно 10.
  3. Сложный отчет — «Эй, Моно, чего ты сегодня добился?», немного проще, чем спросить команду.
  4. Скорость — отряд должен общаться друг с другом, чтобы передавать задания. К сожалению, Нейро-Сеть пока не работает.
  5. Они плохо делятся информацией: «Эй, товарищ по команде №2, я видел, как ты создал отличный инструмент, чтобы помочь нам всем отчитываться перед боссом, могу я им воспользоваться?». «Ну, репортажи не совсем моя работа, но мы можем нанять нового товарища по команде, чтобы он управлял ею и разделял ее с нами обоими».
  6. Зависимости — отряду сегодня нужно было кое-что покопать, но вы дали только лопату товарищу по отряду №1. У товарища по отряду №1 был неудачный приступ алкогольной болезни, и сегодня он не выживет. Наверное, надо было дать лопату и товарищу по отряду №2, а?

Теперь, конечно, все это следует воспринимать с долей скептицизма. Большинство из этих проблем решаемы. Вопрос в том, достаточно ли велика ваша организация и есть ли ресурсы для управления отрядом. Они немного шумнее, чем Mono.