8 лучших менеджеров сервисных сеток для создания современных приложений
Опубликовано: 2022-05-31При работе с микрослужбами ваши приложения состоят из множества различных небольших служб, которые должны взаимодействовать друг с другом, чтобы функционировать вместе как система.
Микросервисы взаимодействуют друг с другом во многих случаях непосредственно между отдельными сервисами, что делает их неэффективными и подверженными сбоям, но именно в этом может помочь сервисная сетка.

Что такое сервисная сетка?
Термин сервисная сетка изначально описывает способ управления обменом данными между различными микросервисами приложения. В частности, речь идет об использовании программного обеспечения, которое обеспечивает связь между микросервисами:
- Идентификация приложения
- Балансировки нагрузки
- Аутентификация
- Шифрование
Ячеистая сеть взаимосвязанных микросервисов создается параллельными соединениями, которые выполняются через их прокси. Для этого сетевая сеть микросервисов интегрируется в систему сетевого управления центра обработки данных более высокого уровня. В этом случае проще оптимизировать коммуникации, не подвергаясь простоям в процессе развития приложения. В действительности каждой прикладной службе нужны другие службы для удовлетворения потребностей пользователей.
Например, в приложении для онлайн-продаж перед любой покупкой пользователь узнает, действительно ли соответствующий товар доступен. Для этого должна быть установлена связь между сервисом в отношении базы данных и веб-страницей продукта. Затем последний должен связаться с онлайн-корзиной пользователя.
Кроме того, торговый посредник может настроить службу предложения продуктов в приложении, чтобы лучше ориентировать пользователей. В этом случае этот новый сервис должен обмениваться не только с базой данных тегов продуктов для выдачи предложений, но и с базой данных инвентаря, которая должна заранее связываться со страницей продукта. На самом деле это набор продуктов многократного использования.
Современные приложения обычно настраиваются таким образом как сеть сервисов, целью которых является выполнение определенной бизнес-функции.
Как работает сервисная сетка и в чем ее преимущества?
Следует отметить, что Service Mesh не создает других функций в рабочей среде приложения. Service Mesh, созданный в приложении, имеет форму группы сетевых прокси, что остается привычным понятием в секторе корпоративных вычислений.
Вероятно, вы используете прокси каждый раз, когда посещаете веб-страницы с рабочего компьютера. Прокси, основанные на инфраструктурном уровне микросервисов, помогают маршрутизировать запросы между ними. Следовательно, слово «сайдкар» обозначает прокси, содержащиеся в сервисной сетке, и это потому, что их выполнение выполняется рядом с сервисами, а не внутри них. Прокси-серверы различных сервисов создают ячеистую сеть.
Кроме того, в отсутствие сервисной сетки разработчикам приходится кодировать каждый микросервис в соответствии со стратегией связи между сервисами. Поскольку логика связи между отделами скрыта в каждом отделе, разработчики изо всех сил пытаются достичь целей компании.
Кроме того, они испытывают трудности при диагностике коммуникативных проблем. Наконец, сетка сервисов позволяет найти решения некоторых проблем, связанных с управлением связью между сервисами.
С сервисной сеткой вы можете автоматизировать эту коммуникацию, поскольку необходимые данные и идеи легко доступны в аутсорсинговой инфраструктуре ячеистой сети. Это облегчает локализацию и устранение любых проблем и неисправностей. Кроме того, это позволяет ИТ-отделам компании разгрузиться и посвятить себя другим задачам, создающим добавленную стоимость.
Из-за абстрагирования связи неисправные службы также могут быть автоматически обойдены и не нарушать обмен данными между функционирующими частями приложения. Легкодоступные данные системы сервисной сетки также могут быть легко проанализированы и, таким образом, позволяют улучшить работу и повысить производительность приложения.
Мы рассмотрели, как работает сервисная сетка; Теперь давайте посмотрим на некоторые из лучших менеджеров сервисных сеток:
Мешери

Meshery — это диспетчер сервисов ячеистой сети, который позволяет вам запускать различные решения для ячеистых сервисов. Его можно развернуть на Kubernetes и Docker. Mastery предоставляет пользовательский интерфейс и интерфейс командной строки, чтобы установить эталон для всех основных решений для ячеистых сервисов, включая Linkerd и Istio. Meshery можно развернуть непосредственно в кластере или локально.
Сетка приложений Amazon
AWS App Mesh — это сетевая ячеистая служба для платформы Amazon Kubernetes (EKS). Он обеспечивает управление на уровне приложения через прокси-сервер envoy для входящего и исходящего трафика и использует разрыв цепи для обеспечения показателей наблюдаемости с помощью AWS X-Ray. Сетку приложений AWS также можно использовать вместе с другими сервисами, такими как Amazon EC2 и AWS Fargate.

Линкерд
Linkerd — это менеджер сетевой сетки с открытым исходным кодом, который использует специально созданный прокси-сервер на основе Rust для управления микросервисами. Он поставляется с предустановленной Grafana для обеспечения показателей наблюдаемости. Linkerd, в отличие от других менеджеров сетки с открытым исходным кодом, предлагает графический интерфейс и не только поддерживает Prometheus, но также поддерживает входные контроллеры, такие как Traefik, Kong и Gloo. Linkerd также поддерживает автоматическое развертывание обновлений в кластерах.
Истио

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

Kuma — это сервисная сетка, созданная Kong, которая используется для расширения работы существующих сервисов через прокси-сервер Envoy. Kuma поддерживает различные микросервисы и обеспечивает повышенную безопасность и мониторинг сетей. Он поставляется с рядом предустановленных политик для маршрутизации, mTLS, управления трафиком и различных функций безопасности. С Kuma вы можете легко управлять различными изолированными сетками через единую плоскость управления и данных.
Сетка Nginx

Nginx — это сервисная сетка для Kubernetes, которая шифрует трафик между контейнерами, используя плоскость данных на базе Nginx Plus. Nginx использует ограничение скорости и автоматические выключатели для управления трафиком между сервисами и поставляется с панелью управления Grafana для наблюдения за метриками сервисной сетки.
Консул

Consul от HashiCorp — это сервисная сетка, которая предоставляет встроенный прокси-уровень, а также поддерживает дополнительный прокси-сервер Envoy. Он предлагает маршрутизацию на основе пути, переключение трафика и балансировку нагрузки. Consul интегрирован с HashiCorp Vault, а также поддерживает mTLS. Его можно интегрировать с Prometheus и Grafana для просмотра показателей наблюдаемости.
Глухая сетка

Gloo Mesh — это сервисная сетка, построенная поверх сетки Istio и использующая прокси-сервер Envoy, который позволяет реализовать модель безопасности Zero Trust. Gloo поддерживает мультитенантность Kubernetes, виртуальные машины и другие микросервисы. Он совместим как с CI/CD, так и с GitOps, что упрощает развертывание.
Заключительные слова
Сервисная сетка решает проблему связи между различными микросервисами и обеспечивает различные преимущества безопасности; однако из-за того, что на рынке доступны сотни различных ячеистых решений, становится важным выбрать ячеистую услугу, которая лучше всего соответствует вашим требованиям и проста в управлении.