Что такое микросервисы? и почему мы его используем?

В настоящее время микросервисы повсюду, и каждый масштабируемый продукт должен соответствовать либо SOA / микросервисам / бессерверной архитектуре. Даже академические исследователи также в очень большом количестве исследуют микросервисы.

Поскольку каждый вопрос начинается с 7 ключевых вопросов: Кто, что, почему, когда, где, как, сколько?

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

Кто изобрел микросервисы?

Согласно заявлению Google,

Доктор Питер Роджерс

Термин «микросервисы» впервые был использован доктором Питером Роджерсом на конференции по облачным вычислениям в 2005 году. на мероприятии для архитекторов программного обеспечения в 2011 году, где этот термин использовался для описания стиля архитектуры, с которым в то время экспериментировали многие участники.

Что такое микросервисы?

Микросервисы - также известные как микросервисная архитектура - это архитектурный стиль, который структурирует приложение как набор сервисов / небольших приложений, которые:

  • Легко обслуживается и тестируется.
  • Слабо связанный.
  • Возможность самостоятельного развертывания.
  • Организовано вокруг бизнес-возможностей.
  • Принадлежит небольшой команде.

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

Как показано на Рисунке 1, этот пример отражает пример веб-сайта электронной торговли.

Зачем использовать микросервисы?

Микросервисы позволяют оптимизировать ресурсы. С помощью микросервисов несколько команд работают над независимыми сервисами / функциями, что позволяет вам быстрее развертывать их и легче менять при необходимости. Время разработки сокращается, и код ваших команд будет более пригодным для повторного использования.

Ниже приведены некоторые преимущества использования микросервисов:

  1. Улучшенная изоляция неисправностей.
  2. Устранение привязки к поставщику или технологии.
  3. Легкость понимания.
  4. Более управляемый код.
  5. Самостоятельно работающие команды.
  6. Самостоятельное развертывание.
  7. Никаких зависимостей.
  8. Меньшая и более быстрая разработка / развертывание.
  9. Непрерывная интеграция и непрерывное развитие.
  10. И последнее, но не менее важное, но самое главное - «Масштабируемость»

Когда использовать микросервисы?

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

Я всегда говорю: «Это зависит от обстоятельств»

На самом деле микросервисы предназначены не для всех продуктов, они призваны помочь вам в нескольких случаях, как если бы продукт нуждался в масштабируемости и мог принимать большое количество посетителей в часы пик. и это приложение имеет / нуждается в нескольких функциях:

  1. Несколько компонентов.
  2. Построен для бизнеса.
  3. Децентрализовано.
  4. Терпимость к отказу.
  5. Эволюционный.
  6. Лучшая тестируемость.
  7. Автономная разработка нескольких команд.
  8. Повышенная ремонтопригодность.
  9. Меньше проблем с развертыванием.
  10. Устранение каких-либо долгосрочных обязательств перед технологическим стеком.

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

Какие компании используют микросервисы?

Вот список статей, опубликованных компаниями об их опыте использования микросервисов:

  • Facebook
  • Убер
  • Netflix
  • Амазонка
  • Ebay
  • Звуковое облако
  • Карма

И этот список можно продолжить, микросервисы действительно преуспели в обеспечении масштабируемости веб-сайтов и продуктов. Хотя мы не обсуждали в этом блоге все, что связано с микросервисами, но каким-то образом у нас будет более подробное техническое обсуждение и несколько руководств, как связать микросервисы с Dockers, Kubernetes, CI / CD, API Gateway, .NET Core и MS-SQL.