В процессе перехода корпоративных приложений на контейнеризацию и микросервисы формируется большая и сложная распределенная архитектура микросервисов. Необходимо иметь систему, которая может управлять и эксплуатировать эти сервисы, чтобы помочь разработчикам справляться с такими задачами, как обнаружение сервисов, балансировка нагрузки, восстановление после сбоев, сбор и мониторинг метрик, серый релиз, ограничение скорости, контроль доступа, аутентификация «от конца до конца» и т.д.
Istio предоставляет полное решение для микросервисов, чтобы удовлетворить разные потребности приложений микросервисов, предоставляя аналитическую информацию о поведении и операционный контроль для всей сервисной сетки. Платформа активно использует Istio, корпоративным пользователям нужно только получить доступ к сервисной платформе, и они могут неинвазивно использовать платформу для корпоративных приложений и услуг, чтобы предоставить полный спектр возможностей управления с комплексными функциями, охватывающими глобальную визуализацию сервисов, управление релизами сервисов, надежное управление подключениями сервисов, управление жизненным циклом сервисной сетки, устранение ошибок сервисов, сценарии управления безопасностью сервисов.
В сложных сценариях приложений микросервисов разработчики должны иметь возможность в реальном времени видеть общее состояние работы сервисов, включая отношения вызовов сервисов, трассировочные маршруты, информацию мониторинга и т.д., чтобы понять взаимодействие между компонентами. Это помогает быстро определить конкретное местоположение проблем, когда возникают сбои или проблемы с производительностью, улучшая операционную эффективность и снижая бизнес-риски.
Платформа интегрирует OpenTelemetry Java Agent и Jaeger на базе Istio, обеспечивая комплексные возможности наблюдаемости.
Сбор данных мониторинга неинвазивным способом, позволяющим разработчикам сосредоточиться на бизнес-разработке, не беспокоясь о том, как получить данные мониторинга.
Визуализация топологии вызовов сервисов и данных мониторинга трафика в виде графиков и поддержка запросов трассировочных данных.
Стратегии управления трафиком, маршрутизационные правила и политики безопасности для сервисов могут быть быстро настроены и управляемы через формы.
В процессе быстрого итерационного обновления и оптимизации приложений микросервисов, если новая версия будет напрямую выпущена для всех пользователей, в случае возникновения онлайн-аварии (например, сбоя или краха, вызванного изменениями трафика), будет сложно быстро решить проблему, что серьезно повлияет на пользовательский опыт.
При развертывании новой версии приложения в системе микросервисов важно минимизировать воздействие на бизнес, а также помочь разработчикам проверить функциональность, производительность и удовлетворенность пользователей новой версии.
Функция серого релиза реализована на основе маршрутизационных возможностей Istio и компонента с открытым кодом Flagger. Когда новая версия сервиса выпускается, она позволяет одной части пользователей продолжать использовать старую версию, в то время как другая часть использует новую версию. В процессе серого релиза, если новая версия стабильна и у пользователей нет к ней претензий, коэффициент распределения трафика может постепенно изменяться для расширения круга пользователей, использующих новую версию, пока все пользователи не будут переведены на новую версию.
В процессе серого релиза проблемы могут быть быстро выявлены, дефекты могут быть исправлены, а поведение трафика может контролироваться в реальном времени в процессе развертывания. Автоматический откат может быть реализован для аномальных ситуаций, чтобы минимизировать влияние.
В крупных системах микросервисов вызовов между сервисами сложен и запутан. Если какой-либо сервис выходит из строя и проблему нельзя решить в течение длительного времени, это может привести к каскадным сбоям и повлиять на другие сервисы, что приведет к сбою системы.
Поэтому для разработчиков и операторов систем микросервисов крайне важно мониторить состояние здоровья сервисов в реальном времени, чтобы предотвратить потенциальные риски. Также важно иметь возможность быстро устранять бизнес-сбои с помощью детальных данных мониторинга.
Платформа установила комплексный процесс устранения неисправностей сервиса. В случае сбоя сервиса платформа может отслеживать аномальный трафик для определения местоположения сбоя, сузить объём устранения неисправностей, а затем проанализировать конкретные причины, используя журналы и данные мониторинга, для быстрого решения проблемы.
Предоставить схему взаимосвязи, панель мониторинга трафика, трассировки и журналы для предоставления полного пути для устранения неисправностей.
Панель мониторинга трафика позволяет просматривать данные о трафике на уровнях Service, Pod и API.
В архитектуре микросервисов приложение состоит из нескольких сервисов, каждый из которых отвечает за одну бизнес-функцию. Взаимодействие данных между сервисами осуществляется через удаленные вызовы. Однако это создает проблему: когда сервис A вызывает сервис B, а сервис B вызывает другие сервисы, если время ответа других сервисов слишком долгое или они становятся недоступными, вызовы к сервису A будут потреблять все больше ресурсов, что в конечном итоге приведет к сбою системы, известному как эффект лавины.
Для предотвращения каскадных сбоев в системах микросервисов платформа предоставляет поддержку для настройки стратегий управления трафиком и маршрутизационных правил для сервисов. Эти механизмы могут устанавливать защитные механизмы и моделировать сбои для вызовов сервисов, обеспечивая надежность подключений сервисов и повышая общую стабильность системы микросервисов.
Поддержка стратегий балансировки нагрузки, предохранителей и настроек пула соединений.
Поддержка инъекций ошибок, задержанных ответов, таймаутов и повторных попыток, переработки запросов и дублирования трафика на основе маршрутизации.
После разбиения монолитного приложения на сервисы развивается эффективность разработки, повышается стабильность системы и увеличивается операционная эффективность. Взаимодействие между сервисами изменяется с локального вызова на вызов интерфейса сетевого протокола, что также влечет за собой риски безопасности. Поэтому в платформе управления микросервисами необходимо шифровать трафик, настраивать авторизацию для вызова сервисов и предоставлять функции проверки и аудита.
Платформа предоставляет возможность шифрования трафика между сервисами. Устанавливая политики безопасности для сервисов, трафик может быть зашифрован с помощью mTLS.
Устанавливая черные или белые списки для сервисов, вы можете контролировать права доступа от сервиса к сервису в рамках одной сетки.
Полная Service Mesh включает не только компоненты Istio, но также интегрированные компоненты расширения. В многокластерной среде управление service mesh становится особенно сложным. На протяжении жизненного цикла service mesh включает не только развертывание, обновление и удаление сервисной сетки, но и мониторинг и просмотр состояния здоровья сервисной сетки. Это позволяет операционному персоналу своевременно выявлять аномалии, устранять проблемы и гарантировать, что сервисная сетка обеспечивает стабильную и надежную поддержку бизнесу.
Обеспечивает возможности управления жизненным циклом сервисной сетки, от развертывания, обновления, удаления до мониторинга состояния здоровья.
:: Управление сервисной сеткой: включая развертывание основных компонентов сервисной сетки и компонентов расширения, обновление и удаление сервисной сетки и т.д.
Проверка состояния компонентов: проверка состояния основных компонентов и расширенных компонентов.
Проверка состояния функциональности: проверка состояния основной функциональности, встроенные элементы проверки, связанные с функциональностью.
Мониторинг: интеграция с Prometheus и Grafana для предоставления панелей мониторинга по умолчанию для мониторинга информации о компонентах и бизнесе.