Чем микросервисы на backend хороши в больших проектах ?



Из опыта скажу что микросервисы очень хорошая вещь, которая помогает большим проектам жить более спокойно. Очень часто были такие случаи когда в какой-то момент прибегает заказчик и кричит что все упало и ничего не работает. Это возникает в том случае если у вас монолит, который допустим из-за обработки большого файла может просто лечь.



Микросервисы в этом же случае помогает распределить ответcтвенность и уже если какой-то сегмент приложения упадет, он не затронет другой. Это очень хороший способ снять отвественность с единой точки.



Это что касается того что будет видно сразу и понятно сразу же. Но есть еще момент из-за которого на больших проектах микросервисы предпочтительней нежели монолит



Как-то когда работал, прилетел мне один проект, проект был легаси, честно говоря и к тому же большой. Такие проекты это головная боль, рефакторить их это дело то еще. Если изначально начинать разработку микросервисов, вы обезопасите себя тем что вы можете кусками просматривать/разрабатывать ваше приложение. Вы можете отдавать эти куски разным командам, которые даже не будут предполагать о других составных частях.



Теперь более технически: Для разработки микросервисов я использовал как брокер rabbitmq (недавно узнал что этот брокер самый медленный), оборачивал это все в докер и пулял на сервер. Если же были разные сервера, то там связь была просто по http. Важно понимать что базы у микросервисов должны быть отдельные иначе это не микросервисы. Так же еще важно понимать что передача сообщений должно быть защищенным, чтобы никакой залетный пассажир не получил важную информацию.



По литературе посоветую: Микросервисы (Крис Ричардсон).

Если интересно могу накидать оттуда интересных моментов, поддержи меня только реакцией