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

Nova Service Mesh

1. Общие сведения

Service Mesh —  это инфраструктурный слой для управления сетевым взаимодействием между сервисами в кластере. Он позволяет централизованно настраивать сетевое поведение (маршрутизацию, безопасность, наблюдаемость и устойчивость) без изменений в коде приложений.

На практике весь входящий и исходящий трафик сервисов перехватывается прокси-слоем (sidecar), где и выполняются политики управления трафиком, безопасности и наблюдаемости.

В данный момент модуль Service Mesh находится на стадии Tech Preview.

2. Принцип работы

Реализация Service Mesh в Nova Container Platform построена на базе Istio - одного из наиболее продвинутых и функциональных решений в этой области. Istio обеспечивает комплексный набор инструментов для управления трафиком, обеспечения безопасности и повышения наблюдаемости в микросервисной архитектуре.

Istio использует архитектуру, разделенную на два логических уровня:

  1. Data Plane

    Обрабатывает весь трафик между сервисами через envoy-прокси, развернутые как sidecar-контейнеры. Каждый прокси перехватывает входящие и исходящие запросы, применяя политики маршрутизации, безопасности и сбора метрик.

  2. Control Plane

    Централизованно управляет конфигурацией прокси, распространяет политики безопасности, координирует процесс обнаружения сервисов и обеспечивает единую точку управления всей mesh-сетью.

Подобная архитектура обеспечивает полную прозрачность для приложений: сервисы не знают о существовании Service Mesh и продолжают работать без изменений в коде, получая все преимущества управляемой инфраструктуры.

3. Основные возможности

3.1. Управление трафиком

Service Mesh предоставляет расширенные возможности для контроля потоков данных между сервисами:

  • Интеллектуальная маршрутизация — гибкие правила направления запросов между версиями сервисов, что необходимо для канареечных развертываний, A/B-тестирования и постепенного внедрения новых версий.

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

  • Распределение нагрузки — балансировка трафика между несколькими версиями сервиса по заданным правилам (по процентному соотношению, заголовкам, весам).

3.2. Безопасность

Service Mesh автоматизирует применение политик безопасности на уровне инфраструктуры:

  • Шифрование трафика — автоматическое включение mutual TLS (mTLS) для всех соединений между сервисами без необходимости настройки в коде приложения.

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

3.3. Наблюдаемость

Встроенная система наблюдения за работой распределенной системы включает:

  • Распределенную трассировку — интеграцию с системами трассирования для отслеживания пути запросов через множество сервисов и выявление узких мест.

  • Сбор метрик — автоматический экспорт метрик производительности в Prometheus или другие системы мониторинга.

  • Централизованное логирование — унифицированный сбор и хранение логов с возможностью корреляции событий между сервисами для упрощения диагностики проблем.

  • Политики и правила — определение параметров поведения сервисов, включая лимиты ресурсов и обработку ошибок.

3.4. Отказоустойчивость

Механизмы защиты от сбоев и перегрузок включают:

  • Circuit Breaker — паттерн для предотвращения каскадных отказов путем временного прерывания запросов к недоступным или медленно отвечающим сервисам.

  • Rate Limiting — ограничение частоты запросов к сервису для защиты от перегрузки и обеспечения равномерного распределения ресурсов.