Dapr

Распределенная среда выполнения приложений (Dapr) предлагает API, которые помогают создавать и реализовывать простые, переносимые, устойчивые и защищенные микрослужбы. Выполнение в качестве процесса бокового автомобиля в тандеме с приложениями, API Dapr абстрагируют распространенные сложности, которые могут возникнуть при создании распределенных приложений, таких как:

  • Обнаружение служб
  • Интеграция брокера сообщений
  • Шифрование
  • Наблюдаемость
  • Управление секретами

Dapr постепенно применяется. При необходимости можно использовать любой из стандартных блоков API.

Diagram showing how many different code frameworks can interface with the various building blocks of Dapr via HTTP or gRPC.

Функции и возможности

Dapr предоставляет следующий набор возможностей, помогающих в разработке микрослужб на AKS:

  • Простая подготовка Dapr к работе в AKS с помощью расширений кластера.
  • Поддержка переносимости с помощью API-интерфейсов HTTP и gRPC, которые позволяют абстрагироваться от выбора базовых технологий
  • Надежные, безопасные и устойчивые вызовы между службами через API-интерфейсы HTTP и gRPC
  • Вы можете легко публиковать и подписывать сообщения с поддержкой фильтрации CloudEvent и семантики "как минимум один раз" для доставки сообщений.
  • Подключаемые функции наблюдаемости и мониторинга на базе сборщика API открытой телеметрии
  • Независимость от конкретного языка, а также наличие пакетов SDK для разных языков
  • Интеграция с VS Code с помощью расширения Dapr
  • Дополнительные API для решения задач распределенного приложения

Часто задаваемые вопросы

Как связаны сравнивать Dapr и сетки служб?

Ответ. В рамках определения, согласно которому сетка служб представляет собой сетку взаимосвязанных сетевых служб, Dapr не является сеткой служб. Хотя некоторые возможности Dapr и сетки служб совпадают, сетка служб решает задачи, связанные с сетевым взаимодействием, в то время как Dapr предлагает стандартные блоки, упрощающие разработчикам создание приложений в виде микрослужб. Dapr ориентируется на разработчиков, а сетки служб — на инфраструктуру.

Ниже перечислены некоторые общие возможности Dapr и сеток служб.

  • Безопасная связь между службами с шифрованием на базе mTLS
  • Сбор метрик между службами
  • Распределенная трассировка между службами
  • Устойчивость за счет повторных попыток

Кроме того, Dapr предоставляет другие стандартные блоки уровня приложения для управления состоянием, обмена сообщениями pub/sum, субъектов и т. д. Однако Dapr не предоставляет возможности для такой обработки трафика, как маршрутизация или разделение. Если в решении необходимо разделение трафика в рамках сетки служб, рассмотрите возможность использования Open Service Mesh.

Дополнительные сведения о Dapr и сетках служб, а также о том, как их использовать вместе, см. в документации по Dapr.

Как API секретов Dapr связан с драйвером CSI хранилища секретов?

Как API секретов Dapr, так и управляемый драйвер CSI хранилища секретов обеспечивают интеграцию секретов, хранящихся во внешнем хранилище, позволяя отделить технологию хранилища секретов от кода приложения. Драйвер CSI хранилища секретов подключает секреты, хранящиеся в Azure Key Vault, в качестве томов CSI для использования приложением. Dapr предоставляет секреты через API REST, который может вызываться кодом приложения и может быть настроен для работы с различными хранилищами секретов. В таблице ниже перечислены возможности каждого предложения.

API секретов Dapr Драйвер CSI хранилища секретов
Поддерживаемые хранилища секретов Локальные переменные среды (для разработки); локальный файл (для разработки); секреты Kubernetes; Диспетчер секретов AWS; хранилище секретов Azure Key Vault; Azure Key Vault с управляемыми удостоверениями в Kubernetes; Диспетчер секретов Azure Key Vault; хранилище HashiCorp Хранилище секретов Azure Key Vault
Доступ к секретам в коде приложения Вызов API секретов Dapr Доступ к подключенному тому или синхронизация подключенного содержимого в качестве секрета Kubernetes и установка переменной среды
Смена секретов Новые вызовы API получают обновленные секреты Опрос секретов и обновление подключения через настрaиваемый интервал
Ведение журнала и метрики Расширение Dapr создает журналы, которые можно настроить с помощью таких средства сбора, как Azure Monitor, выдает метрики через Prometheus и предоставляет конечную точку HTTP для проверок работоспособности. Выдает метрики поставщика и Azure Key Vault через Prometheus

Дополнительные сведения об управлении секретами в Dapr см. в статье Обзор стандартного блока управления секретами.

Дополнительные сведения о драйвере CSI хранилища секретов и поставщике Azure Key Vault см. в статье Общие сведения о драйвере CSI хранилища секретов.

Как управляемое расширение кластера Dapr связано с предложением Dapr с открытым кодом?

Управляемое расширение кластера Dapr является самым простым способом инициализации Dapr в кластере AKS. С помощью расширения вы можете снизить нагрузку, связанную с управлением версиями среды выполнения Dapr, включив автоматические обновления. Кроме того, расширение устанавливает Dapr с интеллектуальными значениями по умолчанию (например, подготавливая уровень управления Dapr в режиме высокой доступности).

При установке Dapr OSS через Helm или Dapr CLI за управление версиями среды выполнения и параметрами конфигурации отвечают разработчики и лица, обслуживающие кластеры.

Наконец, расширение Dapr является расширением AKS, поэтому в этом случае можно рассчитывать на ту же политику поддержки, что и для других компонентов AKS.

Дополнительные сведения о переходе с Dapr OSS на расширение Dapr для AKS.

Как проверить подлинность компонентов Dapr с помощью идентификатора Microsoft Entra с помощью управляемых удостоверений?

Как перейти на использование расширения Dapr, если мы уже установили Dapr тем или иным методом, например Helm?

Рекомендуется полностью удалить Dapr из кластера AKS и переустановить это решение через расширение кластера.

Если вы устанавливаете Dapr с помощью расширения AKS, мы рекомендуем продолжить использовать расширение (вместо интерфейса командной строки Dapr) для будущего управления Dapr. Параллельное использование этих двух инструментов может вызвать конфликты и привести к нежелательному поведению.

Дальнейшие действия

После изучения Dapr и некоторых проблем, решаемых этой системой, попробуйте развернуть приложение с расширением кластера Dapr.