Компании Google, IBM и Lyft представили новый открытый проект Istio, в рамках которого объединили свои наработки в области координации работы микросервисов. О намерении принять участие в развитии проекта также объявили компании Red Hat, Datawire, Pivotal и Tigera. Код компонентов проекта написан на языках Go и C++, исходные тексты распространяются под лицензией Apache 2.0.

Концепция микросервисов подразумевает разбиение сложных монолитных приложений на набор обособленных микросервисов, каждый из которых берёт на себя определённую функциональность приложения. Микросервисы могут работать параллельно, адаптируясь к изменению нагрузки. Таким образом приложение реализуется в виде сети из связанных между собой микросервисов, каждый из которых запускается в отдельном контейнере. Для управления контейнерами предлагается использовать средства оркестровки, подобные Kubernetes, Cloud Foundry и Mesos.

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

Основные составные части Istio:

  • Envoy - прокси для обработки входящего и исходящего трафика между сервисами в кластере, а также обращений к внешним сервисам. Envoy позволяет организовать взаимодействие между микросервисами, составляющими приложение, поверх сети, предоставляемой нижележащей платформой для управления контейнерами. Прокси образуют mesh-сеть из микросервисов, предоставляя такие функции, как обнаружение новых сервисов, маршрутизация потоков данных, построение цепочки обработки запроса и сбор данных телеметрии;
  • Mixer - представляет средства для централизованного управления прокси и микросервисами, обеспечивая применение ACL, ограничений пропускной способности, квот, аутентификации, трассировки запросов и накопления сведений о телеметрии.
  • Manager - управляющий интерфейс, позволяет на лету изменять настройки и управлять работой компонентов Envoy и Mixer.

Особенности платформы:

  • Автоматическая балансировка трафика HTTP, gRPC и TCP;
  • Тонкое управление поведением трафика в зависимости от правил маршрутизации, обеспечения отказоустойчивости и возникновения/симулирования сбоев;
  • Подключаемый слой для применения политик и API для управления доступом, ограничением пропускной способности и квотами;
  • Автоматический сбор метрик, логов и трассировок для всего входящего и исходящего трафика в кластере;
  • Организация защищённых каналов связи между сервисами с аутентификацией каждого сервиса в кластере.

В отличие от недавно представленной похожей платформы Linkerd, Istio не ограничивается организацией сетевого взаимодействия и дополнительно предоставляет такие возможности, как аутентификация и обеспечение правил доступа (policy control). При этом Istio пока поддерживает только Kubernetes, в то время как Linkerd доступен для Kubernetes, DC/OS, Mesos и Docker.

Источник: http://www.opennet.ru/opennews/art.shtml?num=46598