Dapr
Распределенная среда выполнения приложений (Dapr) предлагает API, которые помогают создавать и реализовывать простые, переносимые, устойчивые и защищенные микрослужбы. Выполнение в качестве процесса бокового автомобиля в тандеме с приложениями, API Dapr абстрагируют распространенные сложности, которые могут возникнуть при создании распределенных приложений, таких как:
- Обнаружение служб
- Интеграция брокера сообщений
- Шифрование
- Наблюдаемость
- Управление секретами
Dapr постепенно применяется. При необходимости можно использовать любой из стандартных блоков API.
Функции и возможности
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 проходят проверку подлинности с помощью идентификатора Microsoft Entra.
- Узнайте об использовании управляемых удостоверений с AKS.
Как перейти на использование расширения Dapr, если мы уже установили Dapr тем или иным методом, например Helm?
Рекомендуется полностью удалить Dapr из кластера AKS и переустановить это решение через расширение кластера.
Если вы устанавливаете Dapr с помощью расширения AKS, мы рекомендуем продолжить использовать расширение (вместо интерфейса командной строки Dapr) для будущего управления Dapr. Параллельное использование этих двух инструментов может вызвать конфликты и привести к нежелательному поведению.
Дальнейшие действия
После изучения Dapr и некоторых проблем, решаемых этой системой, попробуйте развернуть приложение с расширением кластера Dapr.