Что такое микросервисы? и почему мы его используем?
В настоящее время микросервисы повсюду, и каждый масштабируемый продукт должен соответствовать либо SOA / микросервисам / бессерверной архитектуре. Даже академические исследователи также в очень большом количестве исследуют микросервисы.
Поскольку каждый вопрос начинается с 7 ключевых вопросов: Кто, что, почему, когда, где, как, сколько?
Итак, мы будем обсуждать все, как микросервисы помогают промышленным проектам работать более эффективно, не будет никаких предпосылок для изучения его архитектуры, но каким-то образом основы веб-архитектуры и MVC могут помочь.
Кто изобрел микросервисы?
Согласно заявлению Google,
Доктор Питер Роджерс
Термин «микросервисы» впервые был использован доктором Питером Роджерсом на конференции по облачным вычислениям в 2005 году. на мероприятии для архитекторов программного обеспечения в 2011 году, где этот термин использовался для описания стиля архитектуры, с которым в то время экспериментировали многие участники.
Что такое микросервисы?
Микросервисы - также известные как микросервисная архитектура - это архитектурный стиль, который структурирует приложение как набор сервисов / небольших приложений, которые:
- Легко обслуживается и тестируется.
- Слабо связанный.
- Возможность самостоятельного развертывания.
- Организовано вокруг бизнес-возможностей.
- Принадлежит небольшой команде.
Архитектура микросервисов обеспечивает быструю, частую и надежную доставку больших и сложных приложений. Это также позволяет организации развивать свой стек технологий.
Как показано на Рисунке 1, этот пример отражает пример веб-сайта электронной торговли.
Зачем использовать микросервисы?
Микросервисы позволяют оптимизировать ресурсы. С помощью микросервисов несколько команд работают над независимыми сервисами / функциями, что позволяет вам быстрее развертывать их и легче менять при необходимости. Время разработки сокращается, и код ваших команд будет более пригодным для повторного использования.
Ниже приведены некоторые преимущества использования микросервисов:
- Улучшенная изоляция неисправностей.
- Устранение привязки к поставщику или технологии.
- Легкость понимания.
- Более управляемый код.
- Самостоятельно работающие команды.
- Самостоятельное развертывание.
- Никаких зависимостей.
- Меньшая и более быстрая разработка / развертывание.
- Непрерывная интеграция и непрерывное развитие.
- И последнее, но не менее важное, но самое главное - «Масштабируемость»
Когда использовать микросервисы?
Много раз я слышал от людей, почему мы должны использовать микросервисы? Действительно ли моему приложению нужно переходить на микросервисы?
Я всегда говорю: «Это зависит от обстоятельств»
На самом деле микросервисы предназначены не для всех продуктов, они призваны помочь вам в нескольких случаях, как если бы продукт нуждался в масштабируемости и мог принимать большое количество посетителей в часы пик. и это приложение имеет / нуждается в нескольких функциях:
- Несколько компонентов.
- Построен для бизнеса.
- Децентрализовано.
- Терпимость к отказу.
- Эволюционный.
- Лучшая тестируемость.
- Автономная разработка нескольких команд.
- Повышенная ремонтопригодность.
- Меньше проблем с развертыванием.
- Устранение каких-либо долгосрочных обязательств перед технологическим стеком.
Я не слишком углубляюсь в микросервисы. потому что мы потеряем концентрацию на основной идее микросервисов, о которой я подробно расскажу в следующих блогах.
Какие компании используют микросервисы?
Вот список статей, опубликованных компаниями об их опыте использования микросервисов:
- Убер
- Netflix
- Амазонка
- Ebay
- Звуковое облако
- Карма
И этот список можно продолжить, микросервисы действительно преуспели в обеспечении масштабируемости веб-сайтов и продуктов. Хотя мы не обсуждали в этом блоге все, что связано с микросервисами, но каким-то образом у нас будет более подробное техническое обсуждение и несколько руководств, как связать микросервисы с Dockers, Kubernetes, CI / CD, API Gateway, .NET Core и MS-SQL.