Компании Google (https://cloudplatform.googleblog.com/2017/05/istio-modern-ap... IBM (https://developer.ibm.com/dwblog/2017/istio/) и Lyft представили новый открытый проект Istio (https://istio.io/), в рамках которого объединили свои наработки в области координации работы микросервисов. О намерении принять участие в развитии проекта также объявили (https://blog.openshift.com/red-hat-istio-launch/) компании Red Hat, Datawire, Pivotal и Tigera. Код компонентов проекта открыт (https://github.com/istio/) под лицензией Apache 2.0.
Концепция микросервисов подразумевает разбиение сложных монолитных приложений на набор обособленных микросервисов, каждый из которых берёт на себя определённую функциональность приложения. Микросервисы могут работать параллельно, адаптируясь к изменению нагрузки. Таким образом приложение реализуется в виде сети из связанных между собой микросервисов, каждый из которых запускается в отдельном контейнере. Для управления контейнерами предлагается использовать средства оркестровки, подобные Kubernetes (https://www.opennet.ru/opennews/art.shtml?num=46278), Cloud Foundry и Mesos.
Istio представляет собой слой абстракции, работающий поверх средств оркестровки контейнеров, и выполняет задачи по распределению нагрузки по микросервисам, организации аутентификации, разграничению доступа к микросервисам, защищённого взаимодействия между микросервисами, мониторинга и балансировки нагрузки. При помощи Istio набор запущенных в разных контейнерах микросервисов обретает слаженную функциональность и может работать как единое целое.
Основные составные части Istio:
- Envoy - прокси для обработки входящго и исходящего трафика между сервисами в кластере, а также обращений к внешним сервисам. Envoy позволяет организовать взаимодействие между микросервисами, составляющими приложение, поверх сети, предоставляемой нижележащей платформой для управления контейнерами. Прокси образуют mesh-сеть из микросервисов, предоставляя такие функции, как обнаружение новых сервисов, маршрутизация потоков данных, построение цепочки обработки запроса и сбор данных телеметрии;
- Mixer - представляет средства для централизованного управления прокси и микросервисами, обеспечивая применение ACL, ограничений пропускной способности, квот, аутентификации, трассировки запросов и накопления сведений о телеметрии.
- Manager - управляющий интерфейс, позволяет на лету изменять настройки и управлять работой компонентов Envoy и Mixer.
Особенности платформы:
- Автоматическая балансировка трафика HTTP, gRPC и TCP;
- Тонкое управление поведением трафика в зависимости от правил маршрутизации, обеспечения отказоустойчивости и возникновения/симулирования (https://ru.wikipedia.org/wiki/%D0%92%D0%... сбоев;
- Подключаемый слой для применения политик и API для управления доступом, ограничением пропускной способности и квотами;
- Автоматический сбор метрик, логов и трассировок для всего входящего и исходящего трафика в кластере;
- Организация защищённых каналов связи между сервисами с аутентификацией каждого сервиса в кластере.
В отличие от недавно представленной похожей платформы Linkerd (https://linkerd.io/), Istio не ограничивается организацией сетевого взавимодействия и дополнительно предоставляет такие возможности, как аутентификация и обеспечение правил доступа (policy control (https://istio.io/docs/concepts/policy-and-control/mixer.html)). При этом Istio пока поддерживает только Kubernetes, в то время как Linkerd доступен для Kubernetes, DC/OS (https://www.opennet.ru/opennews/art.shtml?num=44276), Mesos и Docker.
URL: https://cloudplatform.googleblog.com/2017/05/istio-modern-ap...
Новость: http://www.opennet.ru/opennews/art.shtml?num=46598