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

Service Mesh (Service Mesh)

Service Mesh – выделенный инфраструктурный уровень для управления взаимодействием между микросервисами. Обеспечивает observability, балансировку нагрузки, mTLS-шифрование, circuit breaking и retry без изменения кода приложений.

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

Введение

Service Mesh – выделенный инфраструктурный уровень (infrastructure layer) для управления коммуникацией между микросервисами в распределённых системах. Ключевая идея: перенести сетевую логику (retry, timeout, circuit breaking, аутентификация, трассировка) из кода приложения в отдельный прокси-слой, работающий прозрачно для сервисов.

В мире микросервисов каждый сервис должен уметь обрабатывать сетевые ошибки, реализовывать timeout, повторные попытки, обнаружение сервисов. Если каждая команда решает эти задачи по-своему, возникает несогласованность. Service Mesh стандартизирует эти возможности на платформенном уровне.

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

Термин «Service Mesh» был популяризирован компанией Buoyant (создатели Linkerd) около 2016 года. Linkerd 1.0 (на базе Finagle/JVM) стал первым production-ready service mesh. В 2017 году Google, IBM и Lyft совместно представили Istio – более функциональный service mesh на базе Envoy proxy.

Параллельно развивался HashiCorp Consul Connect, AWS App Mesh, Cilium Service Mesh (на eBPF). В 2023 году CNCF graduated Linkerd 2 (переписанный на Rust/Go). Сегодня service mesh стал стандартной частью platform engineering в крупных компаниях.

В России service mesh активно используется в банках, телекоме и крупных интернет-компаниях. Yandex Cloud поддерживает Istio, VK и Сбер имеют внутренние реализации service mesh.

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

Классическая архитектура service mesh состоит из двух плоскостей:

  • Data Plane (плоскость данных): набор sidecar-прокси (обычно Envoy), развёрнутых рядом с каждым экземпляром сервиса. Весь трафик проходит через эти прокси, которые перехватывают его с помощью iptables-правил.
  • Control Plane (плоскость управления): централизованный компонент (в Istio – Istiod), который распределяет конфигурацию на все прокси, управляет сертификатами и собирает телеметрию.

Ключевые возможности service mesh:

  • mTLS (mutual TLS): автоматическое шифрование трафика между всеми сервисами и взаимная аутентификация. Control plane управляет жизненным циклом сертификатов.
  • Traffic Management: weighted routing (canary/blue-green), circuit breaking, retry, timeout, fault injection для тестирования устойчивости.
  • Observability: автоматический сбор метрик (latency, error rate, throughput), распределённые трассировки (Jaeger/Zipkin), логи доступа.
  • Service Discovery: динамическое обнаружение эндпоинтов через интеграцию с Kubernetes Service Registry.
  • Авторизация: AuthorizationPolicy на уровне L4 (IP/port) и L7 (HTTP method/path).

Альтернативные архитектуры

Помимо классической sidecar-архитектуры, развиваются новые подходы:

  • Ambient Mode (Istio): вместо sidecar-прокси в каждом Pod'е используются node-level прокси (ztunnel) и L7 waypoint proxy. Снижает накладные расходы на память и CPU.
  • eBPF-based (Cilium Service Mesh): обработка трафика в ядре Linux через eBPF без сidecar-прокси. Минимальные накладные расходы.
  • Proxyless gRPC: gRPC-приложения напрямую интегрируются с xDS API control plane без прокси.

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

  • Финансовые сервисы: банки используют mTLS для шифрования межсервисного трафика и AuthorizationPolicy для микросегментации.
  • E-commerce: canary-деплойменты и A/B тесты через traffic splitting без изменения кода.
  • Телекоммуникации: управление трафиком в 5G core-сетях на базе Kubernetes.
  • Государственные системы: обеспечение zero-trust безопасности в мультисервисных архитектурах.

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

  • Sidecar – основной паттерн реализации data plane в service mesh.
  • Istio – наиболее популярная реализация service mesh на базе Envoy.
  • gRPC – service mesh особенно ценен для gRPC-трафика: обеспечивает балансировку на уровне запросов (L7), а не соединений (L4).
  • OpenTelemetry – интегрируется с service mesh для унифицированного сбора телеметрии.
  • CNI – CNI обеспечивает L3/L4 связность, service mesh надстраивается поверх неё.

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

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

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

SP

SET Prisma 7

Управление производством (MES)
Промышленная система управления производственными и логистическими процессами с акцентом на планирование, учёт...
Цена по запросу
Подробнее →
MEScase — российское ПО для мониторинга, аналитики и оптимизации технологических, производственных и бизнес-пр...
Цена по запросу
Подробнее →
MB

MES Builder. Системное ядро

Управление производством (MES)
MES Builder. Системное ядро — гибридная платформа для разработки интегрированных MES-систем с поддержкой IIoT....
Цена по запросу
★ 4.7
Подробнее →

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

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

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

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

Частые вопросы про Service Mesh

Обязательно ли использовать service mesh в Kubernetes?

Нет. Для небольших кластеров с 5-10 сервисами service mesh может быть избыточен. Он оправдан при большом количестве микросервисов, требованиях к безопасности (mTLS) и observability.

Какова реальная накладная нагрузка sidecar-прокси?

Envoy sidecar добавляет 1-5 мс задержки на запрос и требует ~50 МБ RAM на Pod. При высоких требованиях к производительности рассмотрите Ambient Mode Istio или Cilium Service Mesh.

Чем service mesh отличается от API Gateway?

API Gateway управляет внешним (north-south) трафиком и предоставляет API потребителям. Service Mesh управляет внутренним (east-west) трафиком между сервисами. Они дополняют друг друга.

Что такое circuit breaking в service mesh?

Circuit Breaking – механизм, временно прекращающий отправку запросов к неисправному сервису. Это предотвращает каскадные сбои: если сервис не отвечает, прокси открывает «цепь» и возвращает ошибку сразу.

Нужен ли service mesh, если сервисы используют gRPC?

Service mesh особенно полезен с gRPC: стандартный LoadBalancer Kubernetes балансирует HTTP/2-соединения, а не gRPC-запросы. Service mesh балансирует на уровне запросов, равномерно распределяя нагрузку.

Какой service mesh выбрать: Istio или Linkerd?

Istio – функциональнее, поддерживает Ambient Mode, интегрируется с Envoy. Linkerd 2 – проще, написан на Rust/Go, меньше накладных расходов. Для начала рекомендуется Linkerd, для сложных сценариев – Istio.