Термин · Глоссарий B2B-ПО

Microservices (Microservices)

Microservices – архитектурный стиль, при котором приложение строится как набор небольших, независимо развёртываемых сервисов, каждый из которых отвечает за конкретную бизнес-функцию и взаимодействует с другими по API (HTTP/REST, gRPC, очереди сообщений).

Буква «M» В категориях: 3 Платформ: 6+

Введение

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

Термин популяризировали Мартин Фаулер и Джеймс Льюис в 2014 году, хотя практика существовала и раньше – в компаниях Netflix, Amazon, eBay.

История и контекст

До широкого распространения микросервисов доминировала монолитная архитектура: всё приложение компилировалось и развёртывалось единым артефактом. По мере роста систем монолиты становились трудноуправляемыми: изменение одного модуля требовало полного перерелиза. Сервис-ориентированная архитектура (SOA) была первой попыткой декомпозиции, но страдала от тяжёлых ESB-шин и размытых границ сервисов.

Микросервисы решили эту проблему, сделав сервисы по-настоящему независимыми. Контейнеризация (Docker), оркестрация (Kubernetes) и облачная инфраструктура создали экосистему, в которой микросервисы стало практически удобно эксплуатировать.

Как это работает

Ключевые принципы микросервисной архитектуры:

  • Single Responsibility – каждый сервис отвечает за одну бизнес-функцию (заказы, платежи, пользователи);
  • Децентрализованное управление данными – каждый сервис владеет своей базой данных (Database per Service);
  • Независимое развёртывание – сервисы можно обновлять без остановки всей системы;
  • Отказоустойчивость – паттерны Circuit Breaker, Retry, Bulkhead изолируют сбои;
  • Децентрализованная команда – модель «команда владеет сервисом» по принципу Conway's Law.

Взаимодействие между сервисами организуется синхронно (REST, gRPC) или асинхронно (очереди сообщений, Apache Kafka). Для маршрутизации используется API Gateway, для обнаружения сервисов – Service Discovery (Consul, Kubernetes DNS). Наблюдаемость обеспечивается через распределённую трассировку (OpenTelemetry, Jaeger), метрики (Prometheus) и логи (ELK Stack).

Где применяется

  • E-commerce и digital-платформы с высокой нагрузкой и частыми изменениями;
  • Финтех-сервисы: независимые сервисы авторизации, платежей, уведомлений;
  • Корпоративные порталы с модульной функциональностью;
  • SaaS-продукты, где разные модули развивают отдельные команды;
  • Телеком-платформы с требованиями к масштабируемости отдельных компонентов.

Преимущества и ограничения

Преимущества: независимые деплои, горизонтальное масштабирование отдельных сервисов, технологическая гетерогенность (каждый сервис на своём стеке), изоляция отказов, ускорение разработки при наличии зрелой платформы.

Ограничения: операционная сложность резко возрастает. Распределённая система порождает проблемы: сетевые задержки, распределённые транзакции (паттерн Saga), сложность отладки, необходимость в Service Mesh (Istio). Микросервисы оправданы при достаточном масштабе; небольшим командам часто лучше начинать с монолита.

Связь с другими понятиями

Микросервисы противопоставляются монолиту и часто вырастают из него путём декомпозиции. Event-driven Architecture и CQRS – популярные паттерны внутри микросервисных систем. Docker и Kubernetes – основная инфраструктура для запуска микросервисов. Domain-Driven Design помогает правильно определить границы сервисов через понятие Bounded Context. Очередь сообщений обеспечивает асинхронное взаимодействие между сервисами.

Понятия из глоссария Цифрового маркетплейса, которые часто встречаются вместе с термином «Microservices».

Платформы класса «Microservices»

Решения из каталога Цифрового маркетплейса, относящиеся к этому классу ПО. Карточки ведут на полные карточки платформ с тарифами, обзорами и кейсами внедрения.

Онколинк

Онколинк

Разработка ПО
Платформа для управления онкологическими пациентами и координации медицинского обслуживания. Входит в Единый р...
Цена по запросу
Подробнее →
MO

Moon

Разработка ПО
Moon - platforma avtomatizirovannogo testirovaniya veb-prilozheniy v nastol'nykh i mobil'nykh brauzerakh po pr...
Цена по запросу
★ 4.2
Подробнее →
Модуль обмена C3D Converter

Модуль обмена C3D Converter

Разработка ПО
Модуль обмена C3D Converter отвечает за чтение и запись 3D-моделей в файлах нейтральных форматов и в собственн...
Цена по запросу
Подробнее →
JaCarta АРМ УЦ

JaCarta АРМ УЦ

Разработка ПО
ПО JaCarta АРМ УЦ - приложение, позволяющее генерировать ключевые пары с использованием встроенных криптографи...
Цена по запросу
★ 4.7
Подробнее →
АВ

Автограмма

Разработка ПО
Автограмма — визуальная среда разработки встраиваемых систем управления (No-Code/IDE) для промышленной автомат...
Цена по запросу
Подробнее →

Категории каталога

Разделы каталога Цифрового маркетплейса, в которые входят решения, использующие «Microservices».

Где применяется

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

Частые вопросы про Microservices

В чём главное отличие микросервисов от монолита?

В монолите все компоненты развёртываются вместе как один артефакт. В микросервисах каждый сервис независим, имеет собственную БД и может обновляться без остановки других сервисов.

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

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

Что такое API Gateway в контексте микросервисов?

API Gateway – единая точка входа для всех клиентов, которая маршрутизирует запросы к нужным сервисам, обеспечивает аутентификацию, rate limiting и агрегацию ответов.

Как решаются распределённые транзакции в микросервисах?

Через паттерн Saga: последовательность локальных транзакций с компенсирующими действиями при сбое. Не обеспечивает полную ACID-консистентность, но даёт eventual consistency.

Какую роль играет Service Mesh?

Service Mesh (Istio, Linkerd) берёт на себя cross-cutting concerns: mTLS, трассировку, балансировку нагрузки, Circuit Breaker – без изменения кода самих сервисов.

Как микросервисы связаны с DDD?

Domain-Driven Design даёт инструмент Bounded Context для определения границ сервисов: каждый микросервис должен соответствовать одному ограниченному контексту домена.