Введение в сервисную сетку

задняя часть Service Mesh

Это второй день моего участия в ноябрьском испытании обновлений, подробности о мероприятии:Вызов последнего обновления 2021 г.

Service MeshПереводится как «сервисная сетка», т.к.Уровень инфраструктуры для межсервисного взаимодействия. Облегченный высокопроизводительный сетевой прокси-сервер, обеспечивающий безопасное, быстрое и надежное взаимодействие между службами, а также фактическое развертывание приложения, но прозрачный для приложения. Как инициатор службы, приложению нужно только отправить запрос локальному прокси-серверу службы самым простым способом, а затем прокси-сервер выполнит последующие операции, такие как обнаружение службы, балансировка нагрузки и, наконец, перенаправит запрос на целевой сервис.

Service MeshЦель состоит в том, чтобы решить проблему межсервисного взаимодействия и управления после микросервисной архитектуры системы.Сервисная сетка отSidecarСуть этого шаблона заключается в реализации разделения плоскости данных (бизнес-логики) и плоскости управления. В частности, в архитектуре микрослужб, то есть синхронно развертывайте для каждого экземпляра микрослужбы.Sidecar.

Service Mesh部署网络结构图

Рисунок 3.1.1: Структура сети развертывания Service Mesh

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

  • Средний уровень связи между приложениями
  • Легкий веб-прокси
  • приложение-агностик
  • Раздельные повторные попытки/тайм-ауты приложений, мониторинг, отслеживание и обнаружение служб

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

1. Функция сервисной сетки

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

  • Динамическая маршрутизация.Правила маршрутизации могут использоваться для динамического маршрутизации к запрошенному сервису, что удобно для динамической настройки маршрутизации в разных средах, разных версиях и т.д.
  • Инъекция ошибки.Вводя ошибки для имитации проблем при передаче по сети (таких как задержка) для проверки надежности системы, удобно выполнять различные тесты ошибок системы.
  • предохранитель.Устранение потенциальных ошибок корреляции путем понижения уровня обслуживания.
  • Безопасность. существуетService Meshреализовать механизмы безопасности (такие какTLS), а обновления механизма безопасности легко выполняются на уровне инфраструктуры.
  • Многоязычная поддержка.Работает независимо и прозрачно для бизнесаSidecar играет роль,Service MeshЛегко поддерживать разнородные системы на нескольких языках.
  • Поддержка нескольких протоколов.Как и многоязычность, также поддерживается многопротокольность.
  • Метрики и отслеживание распределенных ссылок.

В итоге,Service MeshВ основном это отражается в следующих четырех аспектах:

  • Видимость:Телеметрия метрик времени выполнения, распределенная трассировка.
  • Управляемость:Обнаружение сервисов, балансировка нагрузки, динамическая маршрутизация во время выполнения и т. д.
  • Надежность:Гибкие возможности, такие как тайм-аут, повторная попытка и автоматический выключатель.
  • безопасность:межсервисный контроль доступа,TLSЗашифрованное общение.

2. Проблемы, решаемые Service Mesh

из вышеперечисленногоService MeshСм. определение:

  • Слой инфраструктуры — этоService Meshпозиционирование, занимается решением проблем стандартизации, настройки, обслуживания и продуктизации микросервисной инфраструктуры.
  • Межсервисная связь естьService Meshтехнические проблемы, чтобы защитить сложность связи для микросервисов и решить проблему управления связью микросервисов.
  • Надежная доставка запросовService MeshЦель.
  • Легкий веб-проксиService Meshметод развертывания.
  • Прозрачность для приложения даService MeshОсновные моменты и функции системы не мешают бизнесу.

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

  • Полная микросервисная инфраструктура

    Перенося связь микросервисов на уровень инфраструктуры, сложность решения различных коммуникационных проблем микросервисов экранируется, и формируется абстрактный уровень протокола между микросервисами. Разработчикам не нужно заботиться о конкретной реализации коммуникационного уровня, а также им не нужно обращать внимание наRPCВсе детали связи (включая обнаружение сервисов, балансировку нагрузки, планирование трафика, деградацию трафика, мониторинг статистики и т. д.) действительно используют микросервисы, такие как локальные вызовы, и работают вместе, связанные со связью напрямую сService Mesh.

  • Независимая от языка коммуникация и управление ссылками

    Функционально,Service Meshне предоставляет каких-либо новых функций и возможностей,Service MeshВсе возможности связи и управления услугами, предоставляемые вService Meshможно найти в предыдущих методах, таких какSpring Cloudполные микросервисыRPCПоддержка связи и управления услугами.

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

    Service MeshЭто позволяет избежать дублирования построения многоязычного управления услугами.Service MeshВозможности независимого от языка общения и управления услугами помогают повысить эффективность многоязычных технологических стеков.

  • Стандартизация коммуникаций и управления услугами

    • Уровень управления микросервисом,Service MeshЭто стандартизированная, систематическая и ненавязчивая распределенная платформа управления.
    • Стандартизация,SidecarСтаньте обязательным стандартом для передачи трафика всех микросервисов, и в то же времяService MeshПлатформа данных и плоскость управления также взаимодействуют через стандартные протоколы.
    • Систематические аспекты, с глобальной точки зрения, чтобы обеспечить возможности наблюдения за многомерными и трехмерными микросервисами (Metric,Trace,Logging) и предоставлять возможности систематического управления услугами, такие как ограничение тока, объединение, безопасность, оттенки серого и т. д.

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

3. Принцип сервисной сетки

Ядром Service Mesh является плоскость данных.Sidecarс плоскостью управленияControl Plane,Как показано ниже:

Service Mesh架构图

Рисунок 3.1.2: Схема архитектуры Service Mesh

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

    Платформу данных можно рассматривать какSpring Cloud,DubboЭто несовместимый с языком процесс, который не зависит от возможностей связи и управления услугами в соответствующих средах микросервисов и уделяет больше внимания универсальности и масштабируемости. существует Service Mesh, вместо того, чтобы рассматривать прокси-серверы плоскости данных как отдельные компоненты, эти прокси-серверы соединяются вместе, образуя глобальную распределенную сетку.

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

    имеютSidecarПосле этого сервисный узел выполняет только функцию самой бизнес-логики, а вызовы между сервисами нужно только передать наSidecar,Зависит отSidecarПолные бизнес-функции, такие как службы регистрации, обнаружение служб, маршрутизация запросов, ограничение тока выключателя и статистика журналов.

    В этой новой микросервисной архитектуре всеSidecarВместе они образуют сервисную сетку. Тогда эта большая сервисная сетка не является полностью автономной, ей также нужен единый управляющий узел.Control Plane.

  • Плоскость управления:используется для управления с глобальной точки зренияSidecar, эквивалентноService MeshМозг архитектуры, контролирующийSidecarРеализовать функции управления услугами. Например, он отвечает за всеSidecarрегистрацию, хранить единую таблицу маршрутизации, помогать каждомуSidecarвыполняет балансировку нагрузки и планирование запросов; он собирает всеSidecarинформация о мониторинге и данные журнала.

\