Skip to content

Commit 0ade8db

Browse files
authored
Merge pull request #266331 from hhunter-ms/hh-209559
[Dapr/AKS] Add section on support
2 parents 00df0f4 + dd14ae5 commit 0ade8db

File tree

5 files changed

+159
-80
lines changed

5 files changed

+159
-80
lines changed

articles/aks/dapr-migration.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ author: hhunter-ms
55
ms.author: hannahhunter
66
ms.reviewer: nigreenf
77
ms.topic: article
8-
ms.date: 09/26/2023
8+
ms.date: 02/14/2024
99
ms.subservice: aks-developer
1010
ms.custom: devx-track-azurecli
1111
---

articles/aks/dapr-overview.md

Lines changed: 126 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -3,21 +3,19 @@ title: Dapr extension for Azure Kubernetes Service (AKS) overview
33
description: Learn more about using Dapr on your Azure Kubernetes Service (AKS) cluster to develop applications.
44
ms.author: nickoman
55
ms.topic: article
6-
ms.date: 03/28/2024
6+
ms.date: 04/22/2024
77
---
88

99
# Dapr
1010

11-
[Distributed Application Runtime (Dapr)][dapr-docs] offers APIs that help you write and implement simple, portable, resilient, and secured microservices. Running as a sidecar process in tandem with your applications, Dapr APIs abstract away common complexities you may encounter when building distributed applications, such as:
11+
[Distributed Application Runtime (Dapr)][dapr-docs] offers APIs that help you write and implement simple, portable, resilient, and secured microservices. Dapr APIs run as a sidecar process in tandem with your applications and abstract away common complexities you may encounter when building distributed applications, such as:
1212
- Service discovery
1313
- Message broker integration
1414
- Encryption
1515
- Observability
1616
- Secret management
1717

18-
Dapr is incrementally adoptable. You can use any of the API building blocks as needed.
19-
20-
:::image type="content" source="./media/dapr-overview/dapr-building-blocks.png" alt-text="Diagram showing how many different code frameworks can interface with the various building blocks of Dapr via HTTP or gRPC." lightbox="./media/dapr-overview/dapr-building-blocks.png":::
18+
Dapr is incrementally adoptable. You can use any of the API building blocks as needed. [Learn the support level Microsoft offers for each Dapr API and component.](#currently-supported)
2119

2220
## Capabilities and features
2321

@@ -36,15 +34,113 @@ Dapr provides the following set of capabilities to help with your microservice d
3634
- Reliable, secure, and resilient service-to-service calls through HTTP and gRPC APIs
3735
- Publish and subscribe messaging made easy with support for CloudEvent filtering and “at-least-once” semantics for message delivery
3836
- Pluggable observability and monitoring through Open Telemetry API collector
39-
- Works independent of language, while also offering language specific SDKs
40-
- Integration with VS Code through the Dapr extension
37+
- Works independent of language, while also offering language specific software development kits (SDKs)
38+
- Integration with Visual Studio Code through the Dapr extension
4139
- [More APIs for solving distributed application challenges][dapr-blocks]
4240

41+
## Currently supported
42+
43+
The Dapr extension is the only Microsoft-supported option for Dapr in AKS.
44+
45+
### Issue handling
46+
47+
Microsoft categorizes issues raised against the Dapr extension into two parts:
48+
- Extension operations
49+
- Dapr runtime (including APIs and components)
50+
51+
The following table breaks down support priority levels for each of these categories.
52+
53+
| | Description | Security risks/Regressions | Functional issues |
54+
| - | ----------- | -------------------------- | ----------------- |
55+
| **Extension operations** | Issues encountered during extension operations, such as installing/uninstalling or upgrading the Dapr extension. | Microsoft prioritizes for immediate resolution. | Microsoft investigates and addresses as needed. |
56+
| **Dapr runtime** | Issues encountered when using the Dapr runtime, APIs, and components via the extension. | Microsoft works with the open source community to investigate high priority issues. Depending on priority, severity, and size of the issue, Microsoft either resolves them directly in the extension, or works with the Dapr open source project to resolve in a hotfix or future Dapr open source release. Once fixes are released in Dapr open source, they are then made available in the Dapr extension. | Microsoft investigates new functional issues alongside the Dapr open source project and collaborates with them to resolve in a hotfix or future Dapr open source release. Known open source functional issues won't be investigated by Microsoft at this time. |
57+
58+
### Dapr versions
59+
60+
Microsoft provides best-effort support for [the latest version of Dapr and two previous versions (N-2)][dapr-supported-version]. The latest patch version is the only supported version of each minor version release. Currently, the Dapr extension for AKS or Arc-enabled Kubernetes supports the following Dapr versions:
61+
62+
- 1.13.x
63+
- 1.12.x
64+
- 1.11.x
65+
66+
The Dapr extension support varies depending on how you manage the runtime.
67+
68+
#### Self-managed
69+
Self-managed runtime requires manual upgrade to remain in the support window. To upgrade Dapr via the extension, follow the [Update extension instance](deploy-extensions-az-cli.md#update-extension-instance) instructions.
70+
71+
After a Dapr runtime version reaches end of Microsoft support, your applications continue to run unchanged. However, Microsoft can no longer provide security patches or related customer support for that runtime version. If your application encounters any problems past the end-of-support date for that version, we recommend upgrading to a supported version to receive the latest security patches and features.
72+
73+
#### Auto-upgrade
74+
Enabling auto-upgrade requires careful consideration. While auto-upgrade keeps your Dapr extension updated to the latest minor version, you may experience breaking changes between updates. Microsoft isn't responsible for any downtime caused due to breaking changes between auto-updates.
75+
76+
### Components and APIs
77+
78+
You can use all Dapr components and APIs via the Dapr extension, including those in [alpha and beta status][dapr-alpha-beta]. However, Microsoft only provides support to a subset of APIs and components, following the [defined issue handling policies](#issue-handling).
79+
80+
#### Stable Dapr APIs
81+
82+
The Dapr extension supports stable versions of Dapr APIs (building blocks).
83+
84+
| Dapr API | Status | Description |
85+
| ----------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- |
86+
| [**Service-to-service invocation**][dapr-serviceinvo] | Stable | Discover services and perform reliable, direct service-to-service calls with automatic mTLS authentication and encryption.(#limitations) |
87+
| [**State management**][dapr-statemgmt] | Stable | Provides state management capabilities for transactions and CRUD operations. |
88+
| [**Pub/sub**][dapr-pubsub] | Stable | Allows publisher and subscriber apps to intercommunicate via an intermediary message broker. You can also create [declarative subscriptions][dapr-subscriptions] to a topic using an external component JSON file. |
89+
| [**Bindings**][dapr-bindings] | Stable | Trigger your applications based on events. |
90+
| [**Actors**][dapr-actors] | Stable | Dapr actors are message-driven, single-threaded, units of work designed to quickly scale. For example, in burst-heavy workload situations. |
91+
| [**Observability**][dapr-observability] | Stable | Send tracing information to an Application Insights backend. |
92+
| [**Secrets**][dapr-secrets] | Stable | Access secrets from your application code or reference secure values in your Dapr components. |
93+
| [**Configuration**][dapr-config] | Stable | Retrieve and subscribe to application configuration items for supported configuration. stores. |
94+
95+
[!INCLUDE [component-support](../../includes/dapr-in-azure/dapr-support-policy.md)]
96+
97+
### Clouds/regions
98+
99+
Global Azure cloud is supported with AKS and Arc support on the following regions:
100+
101+
| Region | AKS support | Arc for Kubernetes support |
102+
| ------ | ----------- | -------------------------- |
103+
| `australiaeast` | :heavy_check_mark: | :heavy_check_mark: |
104+
| `australiasoutheast` | :heavy_check_mark: | :x: |
105+
| `brazilsouth` | :heavy_check_mark: | :x: |
106+
| `canadacentral` | :heavy_check_mark: | :heavy_check_mark: |
107+
| `canadaeast` | :heavy_check_mark: | :heavy_check_mark: |
108+
| `centralindia` | :heavy_check_mark: | :heavy_check_mark: |
109+
| `centralus` | :heavy_check_mark: | :heavy_check_mark: |
110+
| `eastasia` | :heavy_check_mark: | :heavy_check_mark: |
111+
| `eastus` | :heavy_check_mark: | :heavy_check_mark: |
112+
| `eastus2` | :heavy_check_mark: | :heavy_check_mark: |
113+
| `eastus2euap` | :x: | :heavy_check_mark: |
114+
| `francecentral` | :heavy_check_mark: | :heavy_check_mark: |
115+
| `francesouth` | :heavy_check_mark: | :x: |
116+
| `germanywestcentral` | :heavy_check_mark: | :heavy_check_mark: |
117+
| `japaneast` | :heavy_check_mark: | :heavy_check_mark: |
118+
| `japanwest` | :heavy_check_mark: | :x: |
119+
| `koreacentral` | :heavy_check_mark: | :heavy_check_mark: |
120+
| `koreasouth` | :heavy_check_mark: | :x: |
121+
| `northcentralus` | :heavy_check_mark: | :heavy_check_mark: |
122+
| `northeurope` | :heavy_check_mark: | :heavy_check_mark: |
123+
| `norwayeast` | :heavy_check_mark: | :x: |
124+
| `southafricanorth` | :heavy_check_mark: | :x: |
125+
| `southcentralus` | :heavy_check_mark: | :heavy_check_mark: |
126+
| `southeastasia` | :heavy_check_mark: | :heavy_check_mark: |
127+
| `southindia` | :heavy_check_mark: | :x: |
128+
| `swedencentral` | :heavy_check_mark: | :heavy_check_mark: |
129+
| `switzerlandnorth` | :heavy_check_mark: | :heavy_check_mark: |
130+
| `uaenorth` | :heavy_check_mark: | :x: |
131+
| `uksouth` | :heavy_check_mark: | :heavy_check_mark: |
132+
| `ukwest` | :heavy_check_mark: | :x: |
133+
| `westcentralus` | :heavy_check_mark: | :heavy_check_mark: |
134+
| `westeurope` | :heavy_check_mark: | :heavy_check_mark: |
135+
| `westus` | :heavy_check_mark: | :heavy_check_mark: |
136+
| `westus2` | :heavy_check_mark: | :heavy_check_mark: |
137+
| `westus3` | :heavy_check_mark: | :heavy_check_mark: |
138+
43139
## Frequently asked questions
44140

45141
### How do Dapr and Service meshes compare?
46142

47-
A: Where a service mesh is defined as a networking service mesh, Dapr is not a service mesh. While Dapr and service meshes do offer some overlapping capabilities, a service mesh is focused on networking concerns, whereas Dapr is focused on providing building blocks that make it easier for developers to build applications as microservices. Dapr is developer-centric, while service meshes are infrastructure-centric.
143+
A: Where a service mesh is defined as a networking service mesh, Dapr isn't a service mesh. While Dapr and service meshes do offer some overlapping capabilities, a service mesh is focused on networking concerns, whereas Dapr is focused on providing building blocks that make it easier for developers to build applications as microservices. Dapr is developer-centric, while service meshes are infrastructure-centric.
48144

49145
Some common capabilities that Dapr shares with service meshes include:
50146

@@ -53,13 +149,17 @@ Some common capabilities that Dapr shares with service meshes include:
53149
- Service-to-service distributed tracing
54150
- Resiliency through retries
55151

56-
In addition, Dapr provides other application-level building blocks for state management, pub/sub messaging, actors, and more. However, Dapr does not provide capabilities for traffic behavior such as routing or traffic splitting. If your solution would benefit from the traffic splitting a service mesh provides, consider using [Open Service Mesh][osm-docs].
152+
In addition, Dapr provides other application-level building blocks for state management, pub/sub messaging, actors, and more. However, Dapr doesn't provide capabilities for traffic behavior such as routing or traffic splitting. If your solution would benefit from the traffic splitting a service mesh provides, consider using [Open Service Mesh][osm-docs].
57153

58154
For more information on Dapr and service meshes, and how they can be used together, visit the [Dapr documentation][dapr-docs].
59155

60156
### How does the Dapr secrets API compare to the Secrets Store CSI driver?
61157

62-
Both the Dapr secrets API and the managed Secrets Store CSI driver allow for the integration of secrets held in an external store, abstracting secret store technology from application code. The Secrets Store CSI driver mounts secrets held in Azure Key Vault as a CSI volume for consumption by an application. Dapr exposes secrets via a RESTful API that can be called by application code and can be configured with assorted secret stores. The following table lists the capabilities of each offering:
158+
Both the Dapr secrets API and the managed Secrets Store CSI driver allow for the integration of secrets held in an external store, abstracting secret store technology from application code. The Secrets Store CSI driver mounts secrets held in Azure Key Vault as a CSI volume for consumption by an application. Dapr exposes secrets via a RESTful API that can be:
159+
- Called by application code
160+
- Configured with assorted secret stores
161+
162+
The following table lists the capabilities of each offering:
63163

64164
| | Dapr secrets API | Secrets Store CSI driver |
65165
| --- | --- | ---|
@@ -68,19 +168,19 @@ Both the Dapr secrets API and the managed Secrets Store CSI driver allow for the
68168
| **Secret rotation** | New API calls obtain the updated secrets | Polls for secrets and updates the mount at a configurable interval |
69169
| **Logging and metrics** | The Dapr sidecar generates logs, which can be configured with collectors such as Azure Monitor, emits metrics via Prometheus, and exposes an HTTP endpoint for health checks | Emits driver and Azure Key Vault provider metrics via Prometheus |
70170

71-
For more information on the secret management in Dapr, see the [secrets management building block overview][dapr-secrets-block].
171+
For more information on the secret management in Dapr, see the [secrets management overview][dapr-secrets].
72172

73173
For more information on the Secrets Store CSI driver and Azure Key Vault provider, see the [Secrets Store CSI driver overview][csi-secrets-store].
74174

75175
### How does the managed Dapr cluster extension compare to the open source Dapr offering?
76176

77177
The managed Dapr cluster extension is the easiest method to provision Dapr on an AKS cluster. With the extension, you're able to offload management of the Dapr runtime version by opting into automatic upgrades. Additionally, the extension installs Dapr with smart defaults (for example, provisioning the Dapr control plane in high availability mode).
78178

79-
When installing Dapr OSS via helm or the Dapr CLI, runtime versions and configuration options are the responsibility of developers and cluster maintainers.
179+
When installing Dapr open source via helm or the Dapr CLI, developers and cluster maintainers are also responsible for runtime versions and configuration options.
80180

81181
Lastly, the Dapr extension is an extension of AKS, therefore you can expect the same support policy as other AKS features.
82182

83-
[Learn more about migrating from Dapr OSS to the Dapr extension for AKS][dapr-migration].
183+
[Learn more about migrating from Dapr open source to the Dapr extension for AKS][dapr-migration].
84184

85185
<a name='how-can-i-authenticate-dapr-components-with-azure-ad-using-managed-identities'></a>
86186

@@ -111,5 +211,17 @@ After learning about Dapr and some of the challenges it solves, try [Deploying a
111211
<!-- Links External -->
112212
[dapr-docs]: https://docs.dapr.io/
113213
[dapr-blocks]: https://docs.dapr.io/concepts/building-blocks-concept/
114-
[dapr-secrets-block]: https://docs.dapr.io/developing-applications/building-blocks/secrets/secrets-overview/
115214
[dapr-msi]: https://docs.dapr.io/developing-applications/integrations/azure/azure-authentication
215+
[dapr-pubsub]: https://docs.dapr.io/developing-applications/building-blocks/pubsub/pubsub-overview
216+
[dapr-statemgmt]: https://docs.dapr.io/developing-applications/building-blocks/state-management/state-management-overview/
217+
[dapr-serviceinvo]: https://docs.dapr.io/developing-applications/building-blocks/service-invocation/service-invocation-overview/
218+
[dapr-bindings]: https://docs.dapr.io/developing-applications/building-blocks/bindings/bindings-overview/
219+
[dapr-actors]: https://docs.dapr.io/developing-applications/building-blocks/actors/actors-overview/
220+
[dapr-secrets]: https://docs.dapr.io/developing-applications/building-blocks/secrets/secrets-overview/
221+
[dapr-config]: https://docs.dapr.io/developing-applications/building-blocks/configuration/
222+
[dapr-distlock]: https://docs.dapr.io/developing-applications/building-blocks/distributed-lock/
223+
[dapr-crypto]: https://docs.dapr.io/developing-applications/building-blocks/cryptography/
224+
[dapr-subscriptions]: https://docs.dapr.io/developing-applications/building-blocks/pubsub/subscription-methods/#declarative-subscriptions
225+
[dapr-supported-version]: https://docs.dapr.io/operations/support/support-release-policy/
226+
[dapr-observability]: https://docs.dapr.io/operations/observability/
227+
[dapr-alpha-beta]: https://docs.dapr.io/operations/support/alpha-beta-apis/

0 commit comments

Comments
 (0)