Google и IBM представили Istio, платформу для управления микросервисами
Компании Google, IBM и Lyft представили новый открытый проект Istio, в рамках которого развивается платформа для координации работы микросервисв. О намерении принять участие в развитии проекта также объявили компании Red Hat, Datawire, Pivotal и Tigera. Код компонентов проекта открыт под лицензией Apache 2.0.
Концепция микросервисов подразумевает разбиение сложных монолитных приложений на набор обособленных микросервисов, каждый из которых берет на себя определенную функциональность приложения. Микросервисы могут работать параллельно, адаптируясь к изменению нагрузки. Таким образом приложение реализуется в виде сети из связанных между собой микросервисов, каждый из которых запускается в отдельном контейнере. Для управления контейнерами предлагается использовать средства оркестровки, подобные Kubernetes, Cloud Foundry и Mesos.
Первый выпуск Istio работает поверх кластера Kubernetes и выполняет задачи по распределению нагрузки по микросервисам, организацию аутентификации при доступе к микросервисам, организацию защищенного взаимодействия между микросервисами, мониторинга и балансировки нагрузки. При помощи 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.