Pull to refresh

Comments 13

А сам микросервис это разве не N уровневая архитектура?

Добрый день, микросервис призван выполнять определенную функцию. Как правило, сервис реализует бизнес-логику и взаимодействие с данными в БД. Поэтому да, микросервис содержит элементы n-уровневой архитектуры.

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

Интересно откуда такая уверенность?

А вообще статья похожа на маркетинговую копипасту от MS

Вот у меня тоже всегда возникает такой вопрос. Где какие-то метрики, какие-то объективные показатели, которые могут дать представление о той или иной архитектуре как о "более масштабируемой, простой в поддержке, эффективной, дешевой"?

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

В чем проблема обеспечения надежности монолита? Горизонтально он масштабируюется точно также как и какой-нибудь микросервис, надежность обеспечивается точно такими же средствами, что и для микросервисов. Монолитов, работающих с миллионнами пользователей, дофига.

Мартин Фаулер, один из главных идеологов микросервисов который кажется даже придумал это название, вполне согласен с тем, что по-умолчанию стоит делать монолит, а думать о микросервисах имеет смыл тогда, когда на это есть веские причины: https://www.youtube.com/watch?v=GBTdnfD6s5Q&t=535s&ab_channel=GOTOConferences

И ни одна из действительно веских причин вами не была упомянута вообще.

Проблема с масштабированием в том, что разные части монолита испытывают разную нагрузку. И когда у вас какая-то часть прекрасно справляется в одном экземпляре, а другой надо сто инстансов - начинаются танцы с бубном

И когда у вас какая-то часть прекрасно справляется в одном экземпляре, а другой надо сто инстансов

Да, я знаю, это одна из реальных причин задумываться о микросервисах вместо монолита, есть еще и другие, ни эта, ни другие реальные причины в статье не упомянуты.

Автор сравнивает подходы на разных уровнях абстракции. Что дальше, рассуждения о том, стоит ли применять ООП или микросервисы?

Кто мешает строить многоуровневую архитектуру из микросервисов?

Наведем немного порядок "в головах" :)

N-уровневая архитектура - это разнесение системы по физически разным машинам (виртуальным - тоже считается). Например:

- 1-уровневая - запуск всей системы на компьютере пользователя;

- 2-уровневая - классический клиент-сервер, когда слой представления запускается в браузере пользователя (на его машине), а серверная (с базой и т.п.) - на отдельном сервере;

- 3-уровневая - тот же клиент-сервер, но под DB выделена отдельная машина;

Слоеная архитектура - это разнесение системы по логически компонентам (очень похоже на слои, но делят логикой :).

Эти два понятия близки/переплетаются. Например, во время разработки три логических слоя (представление, бизнес логика, данные) запускаются как одноуровневая система на компьютере пользователя. А при развертывании в прод - как N-уровневая система.

Часто уровни и слои называют "горизонтальным" разбиением системы.

Микросервисная архитектура - это способ "вертикального" разбиения системы на слабосвязанные части. По факту, каждая такая часть может быть реализована как N-уровневая/слоеная.

Т.е. в принципе не верно противопоставлять эти архитектуры, они "о разном".

Здравствуйте, спасибо за краткое резюме!
Эти архитектуры разные. И в данной статье автор рассказывает, когда для построения приложений использовать N-уровневую архитектуру и нужно ли вообще переводить все на микросервисы.

Сначала хочу похвалить автора: Пишете очень хорошо. Читать было интересно даже несмотря на то, что все время подгорало по мере чтения

По контенту:
Если кратко резюмировать претензии, то противопоставлять N уровневую архитектуру, SOLID и микросервисы это примерно как противопоставлять торт и духовку.

При всем уважении, есть множество замечательных книг на тему Микросервисов, при чем бесплатных. Настоятельно рекомендовал бы прочитать одну из них. К примеру вот бесплатная книга от Microsoft: https://learn.microsoft.com/en-us/dotnet/architecture/microservices/
Есть еще замечательная, но платная книга: https://www.manning.com/books/microservices-patterns
В целом есть много других замечательных книг, что бы подучить матчасть.

Вижу что это у вас первая публикация, не бросайте, пишете хорошо и для первой попытки очень неплохо.

Автор не прочитает ваш комментарий, так как здесь опубликован только перевод.

Sign up to leave a comment.