Почему разработчики создают микросервисы на основе прокси

Почему разработчики создают микросервисы на основе прокси

Расцвет прокси-микросервисов: раскрытие архитектуры

Суть микросервисов на основе прокси

Архитектуры микросервисов на основе прокси-серверов представляют собой легковесный сетевой прокси-сервер между экземплярами сервисов и внешним миром — будь то другие сервисы или клиенты. Этот прокси, часто называемый «сайдкаром», — это больше, чем просто регулировщик дорожного движения: это молчаливый страж, перехватывающий, проверяющий и преобразующий запросы, проходящие через эфемерную сеть микросервисов.

Почему стоит использовать этот подход?

  • Разделение интересов: Разгрузка сквозных задач (безопасность, наблюдаемость, надежность) из бизнес-логики
  • Обеспечение соблюдения единой политики: Централизованное управление доступом, ограничение скорости и размыкание цепи
  • Модели устойчивости: прозрачное внедрение повторных попыток, откатов и тайм-аутов
  • Наблюдаемость: Сбор трассировок и метрик без изменения кода
  • Безопасность с нулевым доверием: шифровать весь трафик и автоматически проверять личности

Архитектурная анатомия: как прокси воплощают концепцию микросервисов

Шаблон коляски

Каждый сервисный модуль сопровождается прокси-процессом — Envoy, Linkerd или HAProxy обычно выбираются. Трафик, предназначенный для сервиса, маршрутизируется через sidecar, который применяет сетевые политики, собирает телеметрию и управляет шифрованием mTLS.

Пример манифеста (Kubernetes + Istio):

apiVersion: v1 тип: метаданные Pod: имя: poets-service спецификация: контейнеры: - имя: poets-app образ: registry.example.com/poets:latest - имя: istio-proxy образ: docker.io/istio/proxyv2:1.18.0 аргументы: ["proxy", "sidecar"]

Istio автоматически внедряет istio-proxy sidecar, сплетая невидимую ткань контроля вокруг вашего сервиса.

Service Mesh: сеть как живой организм

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

Ресурс:
Официальная документация Envoy Proxy
Архитектура Linkerd

Практические преимущества: таблица компромиссов

Особенность Микросервисы на основе прокси Традиционные микросервисы
Распределенная трассировка Нативный, прозрачный Ручное приборостроение
mTLS везде Автоматизированный Ответственность за применение
Размыкание цепи Декларативный, основанный на политике Явно указано в коде
Ограничение скорости Централизованный, динамичный Децентрализованный, статичный
Канарские релизы Разделение трафика на прокси-сервере Обрабатывается балансировщиком нагрузки
Сервис Discovery Встроенный, динамический Требуется внешний реестр
Изоляция отказов По запросу, на уровне прокси Уровень кода или инфраструктуры

Эта таблица шепчет о мире, в котором сеть больше не является обузой, а становится площадкой для инноваций.

Практические шаблоны: реализация микросервисов на основе прокси

1. Развертывание дополнительного прокси-сервера

В Kubernetes внедрение sidecar-а можно автоматизировать с помощью таких инструментов, как Istio или Linkerd.

Пошаговое руководство: пример Istio

  1. Установить Istio:
    Баш
    curl -L https://istio.io/downloadIstio | sh -
    cd istio-*
    экспорт PATH=$PWD/bin:$PATH
    istioctl install --set profile=demo -y
    пространство имен меток kubectl по умолчанию istio-injection=enabled
  2. Разверните свою услугу:
    «`yaml
    API-версия: v1
    вид: Служба
    метаданные:
    имя: poets-app
    спецификация:
    порты:

    • порт: 80
      имя: http
      селектор:
      приложение: поэты

API-версия: apps/v1
вид: Развертывание
метаданные:
имя: poets-deployment
спецификация:
реплики: 1
селектор:
matchLabels:
приложение: поэты
шаблон:
метаданные:
метки:
приложение: поэты
спецификация:
контейнеры:
– название: poets-app
изображение: registry.example.com/poets:latest
“`
Внедрение Sidecar автоматически добавит прокси-сервер Envoy; больше никакого утомительного шаблонного кода.

  1. Применить политику трафика:
    yaml
    apiVersion: networking.istio.io/v1alpha3
    вид: DestinationRule
    метаданные:
    имя: poets-destination
    спецификация:
    хост: poets-app
    Политика трафика:
    ConnectionPool:
    TCP:
    maxConnections: 1

2. Наблюдаемость с нулевым изменением кода

После настройки прокси-серверов телеметрия течёт рекой, как вино на французском вечере. Istio и Linkerd предоставляют метрики через конечные точки Prometheus, готовые к использованию. Графана панели приборов.

Извлечь метрики:

kubectl -n istio-system port-forward svc/prometheus 9090 # Откройте http://localhost:9090 для запроса метрик.

3. Внедрение mTLS без вмешательства разработчика

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

Пример аутентификации PeerAuthentication в Istio:

apiVersion: security.istio.io/v1beta1 тип: метаданные PeerAuthentication: имя: пространство имен по умолчанию: спецификация по умолчанию: mtls: режим: СТРОГИЙ

Больше не придется вручную создавать туннели TLS в каждой службе.

Пример на уровне кода: разрыв цепи без кода

DestinationRule (Istio) для разрыва цепи:

apiVersion: networking.istio.io/v1alpha3 type: DestinationRule metadata: name: circuit-breaker spec: host: poets-app trafficPolicy: outlierDetection: sequence5xxErrors: 1 interval: 1s baseEjectionTime: 30s maxEjectionPercent: 100

Это заклинание YML наделяет ваш сервис устойчивостью, не требуя никаких изменений кода.

Когда не следует использовать микросервисы на основе прокси-сервера

Сценарий Сетка на основе прокси Более простая альтернатива
< 5 услуг, низкая сложность Накладные расходы Прямое общение
Пограничные сервисы, доступные только для публики Ненужный API-шлюз
Среды с сильными ограничениями ресурсов Может быть тяжелым Легкие прокси

Дополнительные материалы и ресурсы

Пульс современного облака

Архитектуры микросервисов на основе прокси-серверов, с их сложной хореографией прокси-серверов и политик, служат примером стремления цифровой эпохи к порядку и творчеству. Сеть, некогда тёмный подземный мир, теперь становится сценой: каждый прокси-сервер, актёр, каждый запрос — мимолётным стихом в поэзии распределённых систем.

Теофиль Бове

Теофиль Бове

Прокси-аналитик

Теофиль Бове — 21-летний аналитик прокси-серверов в ProxyMist, где он специализируется на составлении и обновлении полных списков прокси-серверов по всему миру. Обладая врожденной склонностью к технологиям и кибербезопасности, Теофиль стал ключевым членом команды, обеспечивая бесплатную доставку надежных SOCKS, HTTP, элитных и анонимных прокси-серверов пользователям по всему миру. Родившийся и выросший в живописном городе Лион, Теофиль'с юных лет увлекся цифровой конфиденциальностью и инновациями.

Комментарии (0)

Здесь пока нет комментариев, вы можете стать первым!

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *