Я читал о микросервисах, и я немного заинтригован. Кажется, это интересная концепция. Но мне интересно, каковы преимущества и недостатки использования микросервисов по сравнению с монолитной архитектурой и наоборот.
Когда микросервисы подходят лучше, а где лучше монолитная архитектура.
microservices
user902383
источник
источник
Ответы:
Хотя я относительно новичок в мире микросервисов, я постараюсь ответить на ваш вопрос как можно более полно.
Когда вы используете архитектуру микросервисов, у вас будет больше разделения и разделения задач. Поскольку вы буквально разбиваете свое приложение.
Это приводит к тому, что вашей кодовой базой будет легче управлять (каждое приложение независимо от других приложений, чтобы оставаться в рабочем состоянии). Следовательно, если вы все сделаете правильно , в будущем будет проще добавлять новые функции. в ваше приложение. В то время как с монолитной архитектурой это может стать очень трудным делом, если ваше приложение большое (и вы можете предположить, что в какой-то момент так и будет).
Также проще развернуть приложение , поскольку вы создаете независимые микросервисы отдельно и развертываете их на отдельных серверах. Это означает, что вы можете создавать и развертывать службы, когда захотите, без необходимости перестраивать остальную часть вашего приложения.
Поскольку различные службы небольшие и развертываются отдельно, их проще масштабировать , с тем преимуществом, что вы можете масштабировать определенные службы вашего приложения (с помощью монолитного модуля вы масштабируете всю «вещь», даже если это просто конкретная часть в пределах приложение, которое получает чрезмерную нагрузку).
Однако для приложений, которые не должны стать слишком большими для управления в будущем. Лучше оставить его при монолитной архитектуре. Поскольку архитектура микросервисов связана с некоторыми серьезными трудностями. Я говорил, что микросервисы проще развертывать, но это верно только по сравнению с большими монолитами. Используя микросервисы, вы усложняете распространение сервисов на разные серверы в разных местах, и вам нужно найти способ управлять всем этим. Создание микросервисов поможет вам в долгосрочной перспективе, если ваше приложение станет большим, но для небольших приложений проще оставаться монолитным.
источник
Это очень важный вопрос, потому что некоторых людей соблазняет вся шумиха вокруг микросервисов, и нужно учитывать компромиссы. Итак, каковы преимущества и проблемы микросервисов (по сравнению с монолитной моделью)?
Льготы
Вызовы
Как только мы поймем эти компромиссы , нам нужно знать еще одну вещь, чтобы ответить на другой вопрос: что лучше, микросервисы или монолит? Нам необходимо знать нефункциональные требования (требования к атрибутам качества) приложения. Например, как только вы поймете, насколько важны производительность по сравнению с масштабируемостью, вы сможете взвесить компромиссы и принять обоснованное дизайнерское решение.
источник
@Luxo на высоте. Я просто хотел бы предложить небольшую вариацию и рассмотреть ее с точки зрения организации. Микросервисы не только позволяют разделить приложения, но также могут помочь на организационном уровне. Например, организация сможет разделиться на несколько команд, каждая из которых может разрабатывать набор микросервисов, которые эта команда может предоставить.
Например, в более крупных магазинах, таких как Amazon, у вас может быть команда персонализации, команда электронной коммерции, команда служб инфраструктуры и т. Д. Если вы хотите заняться микросервисами, Amazon является очень хорошим примером. Джефф Безос поручил командам связываться со службами другой команды, если им нужен доступ к общим функциям. Смотрите здесь для краткого описания.
Кроме того, инженеры из Etsy и Netflix также вели небольшую дискуссию еще во времена микросервисов и монолита в Twitter. Дебаты немного менее технические, но также могут предложить некоторые идеи.
источник