Service Mesh — это платформа PaaS на базе Istio, предоставляющая облачные решения для приложений и микросервисов.
Платформа предлагает возможности развертывания и обновления инфраструктуры в один клик, визуальное управление сервисами, эффективное управление производительностью приложений, а также высокую доступность и производительность для управления сервисным шлюзом. Она обеспечивает комплексное, стабильное, надежное и открытое решение для микросервисов для предприятий, проходящих цифровую трансформацию, помогая повысить эффективность управления сервисами и снизить затраты на сопровождение микросервисного фреймворка, минимизируя при этом зависимость разработчиков от фреймворка, что позволяет предприятиям сосредоточиться на развитии бизнеса и постоянно повышать свою ключевую конкурентоспособность.
Управление сервисной сеткой становится особенно сложным в мультикластерных средах. Полный жизненный цикл управления сервисной сеткой включает не только развертывание, обновление и удаление сервисной сетки, но и мониторинг её состояния в режиме реального времени, что позволяет операционному персоналу своевременно обнаруживать аномалии и устранять проблемы, обеспечивая тем самым стабильную и непрерывную поддержку бизнес-операций.
Особенность | Описание |
---|---|
Сервисная сетка с мульти-первичными кластерами | Функция управления сервисной сеткой с мульти-первичной архитектурой визуализирует процесс развертывания компонентов платформы управления микросервисами. |
Визуальное развертывание и управление Service Mesh | - Администраторы могут легко развернуть все компоненты платформы управления микросервисами, включая Istio, для каждого Kubernetes-кластера, требующего возможностей управления сервисами, используя визуальные формы для настройки ключевых параметров. При необходимости можно интегрировать внешние компоненты для обеспечения контейнеризированного управления микросервисами. - Администраторы могут настраивать конфигурацию ресурсов компонентов сетки в зависимости от фактического масштаба бизнеса. |
Мониторинг Service Mesh | Функция мониторинга сервисной сетки включает несколько встроенных панелей мониторинга, отображающих данные контроля и передачи данных с разных точек зрения и с разной степенью детализации, что облегчает администраторам запрос и просмотр данных в режиме реального времени. |
Особенность | Описание |
---|---|
Топология сервисов | Граф топологии сервисов наглядно отображает взаимосвязи между сервисами внутри сервисной сетки и между сервисами внутри и вне сетки (например, middleware, виртуальные машины с внедрённым OpenTelemetry Java Agent). Граф топологии помогает понять, какие компоненты взаимодействуют, и быстро определить точное место ошибки. - Возможность фокусировки с глобального уровня на локальный и просмотра подробной информации о конкретном сервисе, включая статус сервиса, условия запросов, информацию о трафике и др. - При настройке сервисов с политиками безопасности, circuit breaker и оповещениями эти элементы также отображаются на графе топологии специальными маркерами. - Определение состояния здоровья подов сервиса по цвету узла. - Определение состояния трафика между сервисами по цвету соединения. |
Трассировка | Функция трассировки платформы поддерживает поиск цепочек вызовов между сервисами в текущем namespace по имени сервиса или TraceID, мониторинг ключевых показателей, таких как статус вызова и длительность сервисов в цепочке вызовов. В сочетании с детальными логами это помогает разработчикам понять отклик каждого узла или конкретного API в цепочке бизнес-запроса для быстрой локализации и устранения проблем. - Обеспечивает глубокий анализ вызовов между сервисами для разработчиков и операционного персонала. - Отображает диаграмму рассеяния, абстрагированную от времени начала и длительности цепочки вызовов, для быстрого выявления узких мест с низкой производительностью. - Поддерживает полное отслеживание цепочки вызовов (сервисы в архитектуре Service Mesh, сервисы Java 8+). - Быстрый поиск цепочек вызовов по TraceID. - Запрос информации по ссылкам на основе сервиса или TraceID. |
Сервисный шлюз | Сервисный шлюз, включая egress и ingress шлюзы, работает на границе сервисной сетки, управляя трафиком, входящим и выходящим из сетки, позволяя задавать разрешённый трафик. - Конфигурация нескольких ingress или egress шлюзов для сервисной сетки, каждый из которых допускает доступ через несколько настраиваемых портов. - Ingress шлюз поддерживает маршрутизацию внешнего трафика к различным backend-ресурсам (группы API, сервисы) через различные сценарии маршрутизации; egress шлюз позволяет сервисам внутри сетки обращаться к внешним сервисам без влияния на опыт разработки и осуществляет мониторинг трафика. - Поддержка различных сценариев использования, таких как сетевой изоляция между бизнес-областями, выделенные шлюзы для конкретных бизнесов и изоляция портов. - Легкое снятие с эксплуатации ненужных шлюзов без потерь. - Аутентификация и авторизация клиентских запросов на основе JWT. - Настройка правил маршрутизации шлюза на основе пути запроса, заголовков запроса и переписывания URI. - Поддержка мониторинга шлюзов на уровне подов с несколькими встроенными стратегиями оповещений для своевременного обнаружения и устранения проблем. Данные мониторинга включают CPU, память, QPS, количество соединений, метрики входящего и исходящего трафика. |
Список нативных ресурсов | Позволяет пользователям, знакомым с Kubernetes, просматривать нативные ресурсы Istio (YAML-файлы), сгруппированные по типу ресурса. |
Интегрирован с Flagger, обеспечивает автоматизированный опыт выпуска сервисов, поддерживая несколько стратегий развертывания, таких как Canary, A/B Testing и Blue/Green.
Особенность | Описание |
---|---|
Конфигурация выпуска | Определение конфигураций выпуска сервисов для предоставления шаблонных параметров выполнения для будущих изменений, что позволяет автоматизировать развертывание и откат canary-версий Pod’ов. |
Стратегия маршрутизации трафика | Предлагает гибкие стратегии маршрутизации трафика. Сервисы могут автоматически направлять трафик на основе шаблонов конфигурации выпуска или настраивать правила маршрутизации трафика для конкретных задач выпуска. |
Управление выпуском | Поддерживает как ручные, так и автоматизированные варианты выпуска. Пользователи могут делегировать решения по выпуску автоматизированным системам или выбирать ручной выпуск. Процесс выпуска допускает ручное вмешательство и возможность отката задач в любое время. |
Наблюдаемость | Обеспечивает сравнение метрик и трассировку между основной версией и canary-версиями, что позволяет проводить анализ качества и локализацию ошибок при canary-релизах. |
В сценарии управления микросервисами вызовы сервисов переходят с локальных на вызовы по сетевому протоколу, что влечёт за собой риски безопасности.
Особенность | Описание |
---|---|
Стратегия безопасности | Обеспечивает шифрование трафика между сервисами. При настройке стратегий безопасности для сервисов трафик может быть зашифрован с помощью mTLS. |
При сбое сервиса обычный процесс устранения неполадок включает: отслеживание аномального трафика > определение места сбоя > сужение области > анализ конкретной причины. Исходя из этого процесса, платформа предоставляет полный путь устранения проблем сервиса, помогая быстро находить подозрительные места на основе аномального трафика и оперативно решать проблемы, минимизируя влияние на бизнес.
Особенность | Описание |
---|---|
Мониторинг трафика и JVM | Предоставляет многомерные панели мониторинга трафика для клиентских и серверных сервисов с детализацией до уровня API; - Мониторинг JVM поддерживает сбор и отображение данных по различным показателям, таким как CPU/память, потоки и классы. Позволяет просматривать данные одного пода или сравнивать данные двух подов, помогая разработчикам быстро локализовать показатели и временные точки возникновения конкретных проблем. |
Оповещения | - Обеспечивает функции оповещения на основе распространённых показателей мониторинга, поддерживая сбор показателей, управление стратегиями, срабатывание оповещений и уведомления. В сочетании с мониторингом трафика и JVM обеспечивает полный интеллектуальный опыт эксплуатации мониторинг-оповещение-уведомление. - Предоставляет шаблоны конфигурации стратегий оповещений, поддерживая настройку одной стратегии или быстрое создание стратегий через шаблоны. - Позволяет просматривать информацию о ресурсах, находящихся под оповещением, через панель реального времени, фильтровать данные по уровню оповещения и просматривать детали оповещений для понимания масштаба проблемы и быстрой локализации причины. |
Логи в реальном времени | Предоставляет панель логов в реальном времени на уровне сервиса, позволяя быстро находить и устранять проблемы с помощью логов (включая access логи) при возникновении аномалий сервиса. |
Быстрое устранение неполадок | При сбое сервиса можно комбинировать богатые визуальные данные (топология сервисов, трассировка) и данные мониторинга и эксплуатации (мониторинг, оповещения, логи) для отслеживания и локализации аномального трафика и оперативного решения проблем. |
В сценариях с несколькими регионами и дата-центрами, когда под сервиса в одном дата-центре выходит из строя и изолируется с помощью circuit breaking, платформа автоматически распределяет трафик клиента на поды сервиса в других дата-центрах, обеспечивая стабильное предоставление сервиса.
Особенность | Описание |
---|---|
Маршрутизация по близости | Все вызовы сервисов по умолчанию используют маршрутизацию по близости во всех дата-центрах. При длинных цепочках вызовов это эффективно обеспечивает приоритетную обработку аварийного трафика конечной точкой сервиса того же кластера. |
Пользовательский приоритет аварийного восстановления | Позволяет настраивать региональные нагрузки для индивидуальной настройки приоритета аварийного восстановления трафика между несколькими кластерами в зависимости от региона расположения кластеров. |