Рассмотрим преимущества микросервисов и само понятие «микросервис». Официального определения нет, но суть следующая — микросервисы представляют архитектурный стиль, в котором сложные приложения созданы как совокупность маленьких, легких, самодостаточных, независимых, не тесно связанных сервисов, каждый из которых ответственен за конкретный процесс. Такой стиль противопоставляется монолитным стилем, согласно которому приложения строятся как единое целое.

Микросервисы сотрудничают друг с другом на основе необходимости выполнения определенного действия. Они « общаются » через API, для которых не имеет значения язык программирования.

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

Можно применять микросервису архитектуру в построении приложения с нуля. Однако, можно и монолитные приложение разбить на сервисы. Почему это стоит делать? Правильно и профессионально созданные микросервисы дают множество преимуществ. Давайте остановимся на некоторых из них.

Микросервисы и их далеко не «микро» преимущества

  1. Быстрое внесение изменений и легкое, беспроблемное развертывание. Каждый микросервис разворачивается отдельно. Поэтому если вы меняете что-то в одном из них, вы можете развернуть эти изменения, не затрагивая других микросервисов, которые могут продолжать работать. Можно вносить любые изменения настолько часто, насколько нужно, чтобы приложение всегда отвечали вашим потребностям. В монолитной архитектуре все иначе — любое изменение требует развертывания целой сложной системы.
  2. Полностью модернизированы приложения без труда. Любой микросервис в системе можно заменить. Его можно переписать с нуля в пределах приемлемого времени и бюджета без необходимости перестраивать всю систему. Всегда современные приложения, которое легко расширить и переделать, и который всегда « принимает форму » всех ваших новых идей — это просто мечта! Если же речь идет о старом монолитном приложении, его можно модернизировать, избежав « большой перестройки », если перевести его в « философию » микросервис. Постепенно отделяйте частицы системе, не « снося » ее всю, и конвертируйте в микросервисы. Со временем можно получить абсолютно новое приложение.
  3. Потенциально легче для понимания, поддержки и тестирования. Микросервисы обычно небольшие по объему кода. Благодаря этому, командам разработчиков легче их понимать и поддерживать — конечно, если микросервисы созданы правильно. Их также легче полностью покрывать Автотест. В любом случае, тестировщикам нужно проверять такой только небольшой участок, поэтому процесс идет быстрее, обратная связь получается также быстрее, и команда чувствует себя увереннее.
  4. Баг в одном микросервисе не подорвёт работу системы. Проблемы в микросервисе не должны сломать все приложения. Скорее всего, они не повлияют существенно на работу приложения, особенно велика.
  5. Микросервисы на разных языках и платформах могут работать вместе. Как хорошие участники команды, микросервисы могут быть совершенно разными и при этом проявлять свои лучшие качества в командной работе. Им только нужно знать, как коммуницировать друг с другом. В случае микросервисов, коммуникация происходит чаще всего с помощью HTTP, а также — сервисной шины, бинарного протокола и тому подобное. Использовать различные языки программирования и инструменты — это индивидуальный подход к построению сервисов. Он позволяет выбирать идеальный инструмент для конкретной работы, а также привлекать новые технологии, когда пожелаете.
  6. Различные команды могут работать с различными сервисами. Из вышесказанного следует, что у вас может быть несколько команд, которые будут работать над различными частицами приложения. И пусть каждая команда проявляет себя лучше в том, на чем специализируется.

Создание микросервисов с помощью .NET

Философия микросервисов и фреймворка .NET похожа, благодаря чему он прекрасно подходит для их построения. Сама суть .NET — в возможности легко разбиваться на компоненты. В начале 2000-х .NET был среди первых платформ, на которых строились приложения в виде сервисов в соответствии с SOAP (простым протоколом доступа к объектам). Этот подход напоминает современные микросервисы.

С появлением ASP.NET Core разработчики получили возможность строить кросс-платформенные микросервисы с помощью .NET на Windows, Linux или Mac, а также с легкостью разворачивать их в облаке.