Поделиться через


Dapr

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

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

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

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

Использование расширения Dapr для подготовки Dapr в кластере Kubernetes с поддержкой Arc или AKS устраняет затраты:

  • Скачивание инструментов Dapr
  • Установка и управление средой выполнения Dapr вручную в кластере AKS

Вы можете установить, развернуть и настроить расширение Dapr в кластере с помощью Azure CLI или шаблона Bicep.

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

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

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

Поддерживается в настоящее время

Расширение Dapr является единственным поддерживаемым корпорацией Майкрософт вариантом dapr в AKS.

Обработка проблем

Корпорация Майкрософт классифицирует проблемы, связанные с расширением Dapr, на две части:

  • Операции расширения
  • Среда выполнения Dapr (включая API и компоненты)

В следующей таблице описаны уровни приоритета поддержки для каждой из этих категорий.

Description Риски безопасности и регрессии Функциональные проблемы
Операции расширения Проблемы, возникающие во время операций расширения, например установка и удаление или обновление расширения Dapr. Корпорация Майкрософт определяет приоритеты для немедленного разрешения. Корпорация Майкрософт изучает и адреса по мере необходимости.
Среда выполнения Dapr Проблемы, возникающие при использовании среды выполнения Dapr, API и компонентов через расширение. Корпорация Майкрософт работает с сообществом открытый код для изучения проблем с высоким приоритетом. В зависимости от приоритета, серьезности и размера проблемы корпорация Майкрософт либо разрешает их непосредственно в расширении, либо работает с проектом Dapr открытый код для разрешения в исправлении или будущем выпуске Dapr открытый код. После выпуска исправлений в Dapr открытый код они будут доступны в расширении Dapr. Корпорация Майкрософт изучает новые функциональные проблемы вместе с проектом Dapr открытый код и сотрудничает с ними, чтобы устранить проблемы в исправлении или будущем выпуске Dapr открытый код. Известные открытый код функциональные проблемы не будут расследованы корпорацией Майкрософт в настоящее время.

Версии Dapr

Корпорация Майкрософт обеспечивает поддержку последней версии Dapr и двух предыдущих версий (N-2). Последняя версия исправления является единственной поддерживаемой версией каждого дополнительного выпуска версии. В настоящее время расширение Dapr для AKS или Kubernetes с поддержкой Arc поддерживает следующие версии Dapr:

  • 1.13.x;
  • 1.12.x
  • 1.11.x

Команды Azure CLI можно запустить для повторного просмотра списка доступных версий в кластере или в расположении.

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

az k8s-extension extension-types list-versions-by-cluster --resource-group myResourceGroup --cluster-name myCluster --cluster-type managedClusters --extension-type microsoft.dapr --release-train stable

Чтобы просмотреть последнюю стабильную версию Dapr, доступную для управляемого кластера AKS, выполните следующую команду:

az k8s-extension extension-types list-versions-by-cluster --resource-group myResourceGroup --cluster-name myCluster --cluster-type managedClusters --extension-type microsoft.dapr  --release-train stable --show-latest

Чтобы просмотреть список стабильных версий Dapr, доступных по расположению:

  1. Убедитесь, что вы зарегистрировали функцию в подписке ExtenstionTypes Azure.
  2. Выполните следующую команду.
az k8s-extension extension-types list-versions-by-location --location westus --extension-type microsoft.dapr

Поддержка времени выполнения

Поддержка расширения Dapr зависит от способа управления средой выполнения.

Самоуправление

Самоуправляемую среду выполнения требуется обновлять вручную в окне поддержки. Чтобы обновить Dapr с помощью расширения, выполните инструкции по обновлению экземпляра расширения.

Когда версия среды выполнения Dapr завершится поддержкой Майкрософт, ваши приложения продолжают работать без изменений. Однако корпорация Майкрософт больше не может предоставлять исправления безопасности или связанную поддержку клиентов для этой версии среды выполнения. Если приложение сталкивается с любыми проблемами после даты окончания поддержки для этой версии, рекомендуется обновить до поддерживаемой версии, чтобы получить последние исправления и функции системы безопасности.

Автообновление

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

Компоненты и API

Все компоненты и API Dapr можно использовать с помощью расширения Dapr, в том числе в альфа-и бета-состоянии. Однако корпорация Майкрософт предоставляет поддержку только подмножества API и компонентов, следуя определенным политикам обработки проблем.

Стабильные API Dapr

Расширение Dapr поддерживает стабильные версии API Dapr (стандартные блоки).

Dapr API Состояние Description
Вызов между службами Стабильный Обнаружение служб и выполнение надежных прямых вызовов между службами с помощью автоматической проверки подлинности и шифрования mTLS. (#limitations)
Управление данными о состоянии Стабильный Предоставляет возможности управления состоянием для транзакций и операций CRUD.
Публикация и подписка Стабильный Позволяет приложениям издателя и подписчика взаимодействовать через посредника сообщений брокера. Вы также можете создать декларативные подписки в раздел с помощью JSON-файла внешнего компонента.
Bindings Стабильный Активируйте приложения на основе событий.
Актеры Стабильный Субъекты Dapr — это управляемые сообщениями однопоточные единицы работы, предназначенные для быстрого масштабирования. Например, в ситуациях с высокой нагрузкой.
Наблюдаемость Стабильный Отправка сведений о трассировке в серверную часть Application Insights.
Секреты Стабильный Доступ к секретам из кода приложения или ссылки на безопасные значения в компонентах Dapr.
Конфигурация Стабильный Получение и подписка на элементы конфигурации приложения для поддерживаемой конфигурации. данных.

Компоненты уровня 1 и уровня 2

Поддерживается подмножество компонентов Dapr. В этом подмножестве компоненты Dapr разбиваются на две категории поддержки: уровень 1 или уровень 2.

  • Компоненты уровня 1: стабильные компоненты, которые получают немедленное исследование в критических сценариях (безопасности или серьезной регрессии). В противном случае корпорация Майкрософт сотрудничает с открытый код для обращения к исправлению или следующему регулярному выпуску.
  • Компоненты уровня 2. Компоненты, которые исследуются по меньшему приоритету, так как они не находятся в стабильном состоянии или находятся в стороннем поставщике.
Компоненты уровня 1
API Компонент Тип
Управление данными о состоянии Хранилище BLOB-объектов Azure версии 1
Хранилище таблиц Azure
Microsoft SQL Server
state.azure.blobstorage
state.azure.tablestorage
state.sqlserver
Публикация и подписка Очереди служебной шины Azure
Разделы служебной шины Azure
Центры событий Azure
pubsub.azure.servicebus.queues
pubsub.azure.servicebus.topics
pubsub.azure.eventhubs
Привязка Очереди службы хранилища Azure
Очереди служебной шины Azure
Хранилище BLOB-объектов Azure
Центры событий Azure
bindings.azure.storagequeues
bindings.azure.servicebusqueues
bindings.azure.blobstorage
bindings.azure.eventhubs
Управление секретами Azure Key Vault secrets.azure.keyvault
Компоненты уровня 2
API Компонент Тип
Управление данными о состоянии Azure Cosmos DB
PostgreSQL
MySQL и MariaDB
Redis
state.azure.cosmosdb
state.postgresql
state.mysql
state.redis
Публикация и подписка Apache Kafka
Redis: потоки
pubsub.kafka
pubsub.redis
Привязка Сетку событий Azure
Azure Cosmos DB
Apache Kafka
PostgreSQL
Redis
Cron
bindings.azure.eventgrid
bindings.azure.cosmosdb
bindings.kafka
bindings.postgresql
bindings.redis
bindings.cron
Настройка PostgreSQL
Redis
configuration.postgresql
configuration.redis

Облака и регионы

Глобальное облако Azure поддерживается с поддержкой AKS и Arc в следующих регионах:

Область/регион Поддержка AKS Поддержка Arc для Kubernetes
australiaeast ✔️ ✔️
australiasoutheast ✔️
brazilsouth ✔️
canadacentral ✔️ ✔️
canadaeast ✔️ ✔️
centralindia ✔️ ✔️
centralus ✔️ ✔️
eastasia ✔️ ✔️
eastus ✔️ ✔️
eastus2 ✔️ ✔️
eastus2euap ✔️
francecentral ✔️ ✔️
francesouth ✔️
germanywestcentral ✔️ ✔️
japaneast ✔️ ✔️
japanwest ✔️
koreacentral ✔️ ✔️
koreasouth ✔️
northcentralus ✔️ ✔️
northeurope ✔️ ✔️
norwayeast ✔️
southafricanorth ✔️
southcentralus ✔️ ✔️
southeastasia ✔️ ✔️
southindia ✔️
swedencentral ✔️ ✔️
switzerlandnorth ✔️ ✔️
uaenorth ✔️
uksouth ✔️ ✔️
ukwest ✔️
westcentralus ✔️ ✔️
westeurope ✔️ ✔️
westus ✔️ ✔️
westus2 ✔️ ✔️
westus3 ✔️ ✔️

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

Как связаны сравнивать 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 RESTful, который может быть следующим:

  • Вызывается кодом приложения
  • Настроено с хранилищами секретов assorted

В таблице ниже перечислены возможности каждого предложения.

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 открытый код через helm или Dapr CLI разработчики и службы поддержки кластеров также отвечают за версии среды выполнения и параметры конфигурации.

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

Дополнительные сведения о миграции из Dapr открытый код в расширение Dapr для AKS.

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

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

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

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

Next Steps

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