Open Service Mesh — новая service mesh для Kubernetes от Microsoft

p-yraenjetgnbu13o1cznkfpx3k.png

Вчера состоялся анонс очередного Open Source-решения класса service mesh — Open Service Mesh (OSM). Проект был представлен Michelle Noorali, занимающей должность Senior Software Engineer в команде Azure Cloud Native Compute компании Microsoft.

Open Service Mesh позиционируется как «легковесная и расширяемая «сервисная сетка», запускаемая поверх Kubernetes», которая (как, в общем-то, и другие решения этой категории) позволяет «унифицировано управлять межсервисным взаимодействием, обеспечивать для него безопасность и мониторить его в динамичных микросервисных окружениях».

Microsoft уже была замечена в активной работе над спецификацией SMI (Service Mesh Interface), призванной стандартизировать service mesh-решения для Kubernetes и недавно принятой в состав проектов организации CNCF (пока лишь в рамках «песочницы» — sandbox).

Open Service Mesh следует этой спецификации и призван стать проектом, руководимым Open Source-сообществом и, в частности, способствующим развитию типовых API в SMI. Буквально 10 часов назад была подана заявка и на включение Open Service Mesh в состав проектов CNCF, тоже как sandbox. (К слову, в фонде уже значатся такие service mesh-решения, как Linkerd и Kuma.)

Технические детали и архитектура


Исходный код Open Service Mesh написан на языке Go, доступен в GitHub и распространяется на условиях свободной лицензии MIT.

Анонс проекта приурочен к первому публичному релизу OSM — v0.1.0, — представленному менее суток назад. Отдельно отмечается, что OSM не готов к использованию в production.

Open Service Mesh архитектурно базируется на прокси Envoy и реализует go-control-plane xDS v3 API этого проекта. Однако, несмотря на то, что Envoy входит в поставку OSM по умолчанию, использование стандартных интерфейсов позволяет интегрировать его и с другими реверсными прокси (совместимыми с xDS). Безопасность обеспечивается автоматическим mTLS для взаимодействия сервисов.

Open Service Mesh образуется 5 компонентами:

utl_luyx1qzgv58hk7_7ee1se6c.png

  • Proxy control plane обрабатывает gRPC-соединения от sidecar-прокси service mesh’а;
  • Certificate manager обеспечивает выпуск сертификатов и управление ими (возможно использование внешних решений для этих задач);
  • Endpoints providers отвечают за получение IP-адресов всех платформ, участвующих во взаимодействии (таковыми могут являться кластеры Kubernetes, машины on-prem, виртуальные машины облачных провайдеров);
  • Mesh specification — обёртка вокруг спецификации SMI на Go SDK, обеспечивающая простые методы получения ресурсов по этой спецификации, абстрагируясь от специфики устройства кластера и хранилища;
  • Mesh catalog — центральное звено service mesh’а, собирающее данные со всех других компонентов и передающее конфигурацию для proxy control plane.


Более подробное представление об архитектуре OSM можно получить из этой расширенной схемы:

opyh9b_pqyf9ezoi9rjrrtw9xsu.png

…, а также из достаточно подробного документа DESIGN.md.

Проект Open Service Mesh будет представлен на грядущей виртуальной конференции по Kubernetes — KubeCon EU Virtual 2020, —, а также в рамках вебинара партнеров CNCF 14 августа.

P.S.


Читайте также в нашем блоге:

© Habrahabr.ru