Delen via


Dapr

Distributed Application Runtime (Dapr) biedt API's waarmee u eenvoudige, draagbare, flexibele en beveiligde microservices kunt schrijven en implementeren. Dapr-API's worden uitgevoerd als sidecar-proces in combinatie met uw toepassingen en abstraheren veelvoorkomende complexiteiten die u kunt tegenkomen bij het bouwen van gedistribueerde toepassingen, zoals:

  • Servicedetectie
  • Berichtbrokerintegratie
  • Versleuteling
  • Waarneembaarheid
  • Geheimenbeheer

Dapr kan incrementeel worden gebruikt. U kunt indien nodig een van de API-bouwstenen gebruiken. Meer informatie over het ondersteuningsniveau dat Microsoft biedt voor elke Dapr-API en elk onderdeel.

Mogelijkheden en functies

Als u de Dapr-extensie gebruikt om Dapr in te richten op uw AKS- of Kubernetes-cluster met Arc, wordt de overhead van:

  • Dapr-hulpprogramma's downloaden
  • De Dapr-runtime handmatig installeren en beheren op uw AKS-cluster

U kunt de Dapr-extensie op uw cluster installeren, implementeren en configureren met behulp van de Azure CLI of een Bicep-sjabloon.

Daarnaast biedt de extensie ondersteuning voor alle systeemeigen Dapr-configuratiemogelijkheden via eenvoudige opdrachtregelargumenten .

Dapr biedt de volgende set mogelijkheden om u te helpen bij het ontwikkelen van microservices op AKS:

  • Eenvoudig inrichten van Dapr op AKS via clusterextensies.
  • Portability enabled through HTTP and gRPC API's which abstract onderliggende technologieën choices (Portability enabled through HTTP and gRPC API's) die onderliggende technologieën abstract maken
  • Betrouwbare, veilige en flexibele service-naar-service-aanroepen via HTTP- en gRPC-API's
  • Het publiceren en abonneren van berichten is eenvoudig gemaakt met ondersteuning voor CloudEvent-filtering en semantiek 'ten minste één keer' voor berichtbezorging
  • Waarneembare waarneembaarheid en bewaking via open telemetrie-API-collector
  • Werkt onafhankelijk van taal, en biedt ook taalspecifieke SDK's (Software Development Kits) aan
  • Integratie met Visual Studio Code via de Dapr-extensie
  • Meer API's voor het oplossen van problemen met gedistribueerde toepassingen

Momenteel ondersteund

De Dapr-extensie is de enige door Microsoft ondersteunde optie voor Dapr in AKS.

Afhandeling van problemen

Microsoft categoriseert problemen met de Dapr-extensie in twee delen:

  • Extensiebewerkingen
  • Dapr-runtime (inclusief API's en onderdelen)

In de volgende tabel worden prioriteitsniveaus voor ondersteuning voor elk van deze categorieën onderverdeeld.

Beschrijving Beveiligingsrisico's/regressies Functionele problemen
Extensiebewerkingen Problemen die zijn opgetreden tijdens extensiebewerkingen, zoals het installeren/verwijderen of upgraden van de Dapr-extensie. Microsoft geeft prioriteit aan onmiddellijke oplossing. Microsoft onderzoekt en adressen indien nodig.
Dapr-runtime Problemen die optreden bij het gebruik van de Dapr-runtime, API's en onderdelen via de extensie. Microsoft werkt met de opensource-community om problemen met hoge prioriteit te onderzoeken. Afhankelijk van prioriteit, ernst en grootte van het probleem, lost Microsoft deze rechtstreeks op in de extensie of werkt microsoft met het Open Source-project Dapr om op te lossen in een hotfix of toekomstige Open Source-release van Dapr. Zodra oplossingen zijn uitgebracht in open source van Dapr, worden ze vervolgens beschikbaar gesteld in de Dapr-extensie. Microsoft onderzoekt nieuwe functionele problemen naast het opensource-project Dapr en werkt ermee samen om op te lossen in een hotfix of toekomstige open source-release van Dapr. Bekende opensource-functionele problemen worden momenteel niet door Microsoft onderzocht.

Dapr-versies

Microsoft biedt best effort-ondersteuning voor de nieuwste versie van Dapr en twee eerdere versies (N-2). De nieuwste patchversie is de enige ondersteunde versie van elke secundaire versie. Momenteel ondersteunt de Dapr-extensie voor AKS of Kubernetes met Arc de volgende Dapr-versies:

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

De ondersteuning voor de Dapr-extensie is afhankelijk van hoe u de runtime beheert.

Zelfbeheerd

Voor zelfbeheerde runtime moet handmatige upgrade worden uitgevoerd om in het ondersteuningsvenster te blijven. Als u Dapr wilt upgraden via de extensie, volgt u de instructies voor het update-extensie-exemplaar .

Nadat een Dapr-runtimeversie het einde van microsoft-ondersteuning bereikt, blijven uw toepassingen ongewijzigd. Microsoft kan echter geen beveiligingspatches of gerelateerde klantondersteuning meer bieden voor die runtimeversie. Als uw toepassing problemen ondervindt na de einddatum van de ondersteuning voor die versie, raden we u aan een upgrade uit te voeren naar een ondersteunde versie om de meest recente beveiligingspatches en -functies te ontvangen.

Automatische upgrade

Het inschakelen van automatische upgrade vereist zorgvuldige overwegingen. Terwijl uw Dapr-extensie automatisch wordt bijgewerkt naar de nieuwste secundaire versie, kan het zijn dat er wijzigingen optreden die fouten veroorzaken tussen updates. Microsoft is niet verantwoordelijk voor downtime die wordt veroorzaakt door wijzigingen die fouten veroorzaken tussen automatische updates.

Onderdelen en API's

U kunt alle Dapr-onderdelen en API's gebruiken via de Dapr-extensie, inclusief die in alfa- en bètastatus. Microsoft biedt echter alleen ondersteuning voor een subset van API's en onderdelen, volgens het gedefinieerde beleid voor het afhandelen van problemen.

Stabiele Dapr-API's

De Dapr-extensie ondersteunt stabiele versies van Dapr-API's (bouwstenen).

Dapr-API -Status Beschrijving
Aanroep van service-naar-service Stabiel Ontdek services en voer betrouwbare, directe service-naar-service-aanroepen uit met automatische mTLS-verificatie en -versleuteling. (#limitations)
Statusbeheer Stabiel Biedt mogelijkheden voor statusbeheer voor transacties en CRUD-bewerkingen.
Pub/sub Stabiel Hiermee kunnen uitgevers- en abonnee-apps communiceren via een tussenliggende berichtenbroker. U kunt ook declaratieve abonnementen voor een onderwerp maken met behulp van een JSON-bestand met een extern onderdeel.
Bindings Stabiel Activeer uw toepassingen op basis van gebeurtenissen.
Acteurs Stabiel Dapr-actoren zijn berichtengestuurde, één threaded, werkeenheden die zijn ontworpen om snel te schalen. Bijvoorbeeld in burst-zware workloadsituaties.
Observability Stabiel Traceringsgegevens verzenden naar een Application Insights-back-end.
Geheimen Stabiel Krijg toegang tot geheimen vanuit uw toepassingscode of verwijs naar beveiligde waarden in uw Dapr-onderdelen.
Configuratie Stabiel Ophalen en abonneren op toepassingsconfiguratie-items voor ondersteunde configuratie. Winkels.

Laag 1 versus laag 2-onderdelen

Een subset van Dapr-onderdelen wordt ondersteund. Binnen die subset worden Dapr-onderdelen onderverdeeld in twee ondersteuningscategorieën: Laag 1 of Laag 2.

  • Laag 1-onderdelen: stabiele onderdelen die onmiddellijk onderzoek ontvangen in kritieke (beveiligings- of ernstige regressie)-scenario's. Anders werkt Microsoft samen met open source om te reageren in een hotfix of de volgende reguliere release.
  • Laag 2-onderdelen: Onderdelen die worden onderzocht op een lagere prioriteit, omdat ze niet in een stabiele staat of bij een externe provider zijn.
Onderdelen van laag 1
API Onderdeel Type
Statusbeheer Azure Blob Storage v1
Azure-tabelopslag
Microsoft SQL Server
state.azure.blobstorage
state.azure.tablestorage
state.sqlserver
Publiceren en abonneren Azure Service Bus-wachtrijen
Azure Service Bus-onderwerpen
Azure Event Hubs
pubsub.azure.servicebus.queues
pubsub.azure.servicebus.topics
pubsub.azure.eventhubs
Binding Azure Storage-wachtrijen
Azure Service Bus-wachtrijen
Azure Blob-opslag
Azure Event Hubs
bindings.azure.storagequeues
bindings.azure.servicebusqueues
bindings.azure.blobstorage
bindings.azure.eventhubs
Geheimenbeheer Azure Key Vault secrets.azure.keyvault
Laag 2-onderdelen
API Onderdeel Type
Statusbeheer Azure Cosmos DB
PostgreSQL
MySQL & MariaDB
Redis
state.azure.cosmosdb
state.postgresql
state.mysql
state.redis
Publiceren en abonneren Apache Kafka
Redis Streams
pubsub.kafka
pubsub.redis
Binding Azure Event Grid
Azure Cosmos DB
Apache Kafka
PostgreSQL
Redis
Cron
bindings.azure.eventgrid
bindings.azure.cosmosdb
bindings.kafka
bindings.postgresql
bindings.redis
bindings.cron
Configuratie PostgreSQL
Redis
configuration.postgresql
configuration.redis

Clouds/regio's

Wereldwijde Azure-cloud wordt ondersteund met AKS- en Arc-ondersteuning voor de volgende regio's:

Regio AKS-ondersteuning Ondersteuning voor Arc voor 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 ✔️ ✔️

Veelgestelde vragen

Hoe vergelijken Dapr- en Service-meshes?

A: Waar een service-mesh wordt gedefinieerd als een netwerkservice-mesh, is Dapr geen service-mesh. Hoewel Dapr en service-meshes wel overlappende mogelijkheden bieden, is een service-mesh gericht op netwerkproblemen, terwijl Dapr zich richt op het bieden van bouwstenen waarmee ontwikkelaars eenvoudiger toepassingen als microservices kunnen bouwen. Dapr is op ontwikkelaars gericht, terwijl service-meshes infrastructuurgericht zijn.

Enkele algemene mogelijkheden die Dapr deelt met service-meshes zijn:

  • Communicatie tussen services beveiligen met mTLS-versleuteling
  • Metrische verzameling service-naar-servicegegevens
  • Service-naar-service gedistribueerde tracering
  • Tolerantie via nieuwe pogingen

Daarnaast biedt Dapr andere bouwstenen op toepassingsniveau voor statusbeheer, pub/subberichten, actoren en meer. Dapr biedt echter geen mogelijkheden voor verkeergedrag, zoals routering of het splitsen van verkeer. Als uw oplossing profiteert van het verkeer dat een service-mesh splitst, kunt u overwegen Open Service Mesh te gebruiken.

Raadpleeg de Dapr-documentatie voor meer informatie over Dapr en service-meshes en hoe ze samen kunnen worden gebruikt.

Hoe verhoudt de Dapr secrets-API zich tot het stuurprogramma Secrets Store CSI?

Zowel de Dapr-geheimen-API als het beheerde stuurprogramma Secrets Store CSI maken de integratie van geheimen in een externe winkel mogelijk, waarbij technologie voor het geheimarchief wordt geabstraheerd vanuit toepassingscode. Het stuurprogramma Secrets Store CSI koppelt geheimen in Azure Key Vault als een CSI-volume voor gebruik door een toepassing. Dapr maakt geheimen beschikbaar via een RESTful-API die het volgende kan zijn:

  • Aangeroepen door toepassingscode
  • Geconfigureerd met gesorteerde geheime archieven

De volgende tabel bevat de mogelijkheden van elk aanbod:

Dapr-geheimen-API Secrets Store CSI-stuurprogramma
Ondersteunde geheimenarchieven Lokale omgevingsvariabelen (voor ontwikkeling); Lokaal bestand (voor ontwikkeling); Kubernetes-geheimen; AWS Secrets Manager; Azure Key Vault-geheimarchief; Azure Key Vault met beheerde identiteiten in Kubernetes; GCP Secret Manager; HashiCorp Vault Azure Key Vault-geheimarchief
Toegang tot geheimen in toepassingscode De Dapr-geheimen-API aanroepen Toegang krijgen tot het gekoppelde volume of de gekoppelde inhoud synchroniseren als een Kubernetes-geheim en een omgevingsvariabele instellen
Geheime draaiing Nieuwe API-aanroepen verkrijgen de bijgewerkte geheimen Polls voor geheimen en werkt de koppeling bij met een configureerbaar interval
Logboekregistratie en metrische gegevens De Dapr-sidecar genereert logboeken, die kunnen worden geconfigureerd met collectors zoals Azure Monitor, metrische gegevens verzendt via Prometheus en een HTTP-eindpunt beschikbaar maakt voor statuscontroles Verzendt metrische gegevens van stuurprogramma's en Azure Key Vault-providers via Prometheus

Zie het overzicht van geheimenbeheer voor meer informatie over het geheimbeheer in Dapr.

Zie het stuurprogramma Secrets Store CSI en de Azure Key Vault-provider voor meer informatie over het stuurprogramma Secrets Store CSI.

Hoe vergelijkt de beheerde Dapr-clusterextensie zich met de open source Dapr-aanbieding?

De beheerde Dapr-clusterextensie is de eenvoudigste methode om Dapr in te richten op een AKS-cluster. Met de extensie kunt u het beheer van de Dapr-runtimeversie offloaden door ervoor te kiezen om automatische upgrades uit te voeren. Daarnaast installeert de extensie Dapr met slimme standaardinstellingen (bijvoorbeeld het inrichten van het Dapr-besturingsvlak in de modus voor hoge beschikbaarheid).

Wanneer u Dapr open source installeert via Helm of de Dapr CLI, zijn ontwikkelaars en clusteronderhouders ook verantwoordelijk voor runtimeversies en configuratieopties.

Ten slotte is de Dapr-extensie een uitbreiding van AKS, dus u kunt hetzelfde ondersteuningsbeleid verwachten als andere AKS-functies.

Meer informatie over het migreren van dapr open source naar de Dapr-extensie voor AKS.

Hoe kan ik Dapr-onderdelen verifiëren met Microsoft Entra ID met behulp van beheerde identiteiten?

Hoe kan ik overschakelen naar de Dapr-extensie als ik Dapr al heb geïnstalleerd via een methode, zoals Helm?

Aanbevolen richtlijnen zijn het volledig verwijderen van Dapr uit het AKS-cluster en het opnieuw installeren via de clusterextensie.

Als u Dapr installeert via de AKS-extensie, is het raadzaam om de extensie te blijven gebruiken voor toekomstig beheer van Dapr in plaats van de Dapr CLI. Het combineren van de twee hulpprogramma's kan conflicten veroorzaken en leiden tot ongewenst gedrag.

Volgende stappen

Nadat u meer hebt geleerd over Dapr en een aantal van de uitdagingen die het oplost, kunt u een toepassing implementeren met de Dapr-clusterextensie.