Что такое Микросервис? - Блог ITVDN
ITVDN: курсы программирования
Видеокурсы по
программированию

Выбери свою IT специальность

Подписка

Что такое Микросервис?

advertisement advertisement

В этой статье мы рассмотрим, что вкладывается в понятие «микросервис», в чем состоят преимущества микросервисов в разных сферах деятельности.

Business и Project Management

Создание микросервиса, который соответствует требованиям в контексте управления бизнесом и проектами, имеет большое значение для большинства разработчиков и ИТ-специалистов – это именно то, что приносит выигрыш.

Микросервис представляет собой направленный на решение одной задачи фрагмент кода, который продолжает функционировать и правильно работать, даже если «весь мир остановился».

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

Для бизнеса корректно реализованная архитектура микросервиса подразумевает лучшие варианты для продукта:

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

Computer Science

Микросервис - это state machine. Его состояние представляет собой транзакционную границу.

Представьте себе светофор:

Цвет, который должен появиться, зависит от цвета, который светофор показывает на данный момент. Если «currentColor=green», тогда команда «Switch to next color» может работать правильно только в том случае, если никто другой не переключает свет на следующий цвет, пока обрабатывается ваша команда «Switch to next color».

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

Software Engineering

Любой отдельный фрагмент кода, который можно рассматривать как черный ящик, где единственный способ связи с ним через его API, можно рассматривать как «микросервис». Когда микросервис оценивает бизнес-правила, то для принятия решений использует те источники информации, которые были переданы в предыдущих вызовах API, а также параметры текущего вызова API.

Пример работы микросервиса в поиске событий или совместной работы событий на основе архитектуры.  Publish-subscribe – это хорошее решение для координации потока информации между службами, поскольку приводит к более слабой связи, чем в альтернативных вариантах.

Известный Bezos memo расшифровывает это как для целых команд, так и для «микросервисов» любого размера. По каким причинам – смотрите выше в “Business и Project Management”.

Не нужно читать об установке термостата центрального отопления, чтобы просто отрегулировать температуру морозильника.

Networking & Infrastructure

Микросервис представляет собой набор компонентов (например, контейнеров, логических или физических баз данных и т. д.), которые обеспечивают определенную часть бизнес-функций. Их можно создавать, уничтожать, масштабировать и контролировать как единое целое. Они продолжают работать правильно, даже если все остальные службы не работают.

Хорошим показателем качества внедрения микросервиса и проектирования его инфраструктуры является возможность контроля, оповещения и масштабирования на основе запросов бизнеса, а не технических критериев. Например, «Обработка платежей не работает (... но выполнение заказа продолжает работать нормально)».

Что означает «работа в нормальном режиме»?

Если обработка платежей не работает, то как все может «работать в нормальном режиме»?

Работа в нормальном режиме означает отсутствие ошибок и отсутствие ошибочного принятия решения из-за неправильных данных. Это может быть достигнуто посредством конечной согласованности. Например, выполнение заказа инициируется событием PaymentProcessed. Ни одно из них не может произойти, если обработка платежей не работает, поэтому выполнение будет завершать заказы, обработка платежей которых происходила до отключения, но не последующие. Когда обработка платежей вернется в оперативный режим, служба выполнения начнет получать события PaymentProcessed для пропущенных заказов и будет постепенно догонять. С точки зрения UX, это означает, что у предприятия есть варианты для разработки отказоустойчивых приложений. То есть вместо полного сбоя в работе, функции, которые обрабатываются незатронутыми микросервисами, могут оставаться доступными для пользователей.

Вывод

«Микросервис» ничем не отличается от многих компонентов, которые составляют сложную технику, окружающую нас каждый день:

  • Минимальная зависимость от других механизмов («Требуется 12В от аккумулятора автомобиля и подключение к антенне»)
  • Четко определенный API как единственный способ взаимодействия с микросервисом («Единственный способ отрегулировать громкость – с помощью этой ручки»).

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

Источник

КОММЕНТАРИИ И ОБСУЖДЕНИЯ
advertisement advertisement

Покупай подпискус доступом ко всем курсам и сервисам

Библиотека современных IT знаний в удобном формате

Выбирай свой вариант подписки в зависимости от задач, стоящих перед тобой. Но если нужно пройти полное обучение с нуля до уровня специалиста, то лучше выбирать Базовый или Премиум. А для того чтобы изучить 2-3 новые технологии, или повторить знания, готовясь к собеседованию, подойдет Пакет Стартовый.

Стартовый
  • Все видеокурсы на 3 месяца
  • Тестирование по 10 курсам
  • Проверка 5 домашних заданий
  • Консультация с тренером 30 мин
59.99 $
Оформить подписку
Базовый
  • Все видеокурсы на 6 месяцев
  • Тестирование по 16 курсам
  • Проверка 10 домашних заданий
  • Консультация с тренером 60 мин
89.99 $
Оформить подписку
Премиум
  • Все видеокурсы на 1 год
  • Тестирование по 24 курсам
  • Проверка 20 домашних заданий
  • Консультация с тренером 120 мин
169.99 $
Оформить подписку
Notification success