Обновить

Комментарии 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
В целом есть много других замечательных книг, что бы подучить матчасть.

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

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

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Информация

Сайт
serverspace.ru
Дата регистрации
Дата основания
Численность
201–500 человек
Местоположение
Россия
Представитель
Danial Fedorov