Skip to content

Commit f655c40

Browse files
Merge pull request #204643 from dlepow/shgover
[APIM] Managed vs Self-hosted gateway overview - with feature comparison
2 parents 81b5577 + 7104b04 commit f655c40

File tree

6 files changed

+205
-30
lines changed

6 files changed

+205
-30
lines changed

articles/api-management/TOC.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,8 @@
6464
href: api-management-terminology.md
6565
- name: API Management policies
6666
href: api-management-howto-policies.md
67+
- name: API gateway
68+
href: api-management-gateways-overview.md
6769
- name: Self-hosted gateway
6870
href: self-hosted-gateway-overview.md
6971
- name: Networking

articles/api-management/api-management-features.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ Each API Management [pricing tier](https://aka.ms/apimpricing) offers a distinct
4343
| [Synthetic GraphQL APIs (preview)](graphql-schema-resolve-api.md) | No | Yes | Yes | Yes | Yes |
4444

4545
<sup>1</sup> Enables the use of Azure AD (and Azure AD B2C) as an identity provider for user sign in on the developer portal.<br/>
46-
<sup>2</sup> Including related functionality e.g. users, groups, issues, applications and email templates and notifications.<br/>
47-
<sup>3</sup> In the Developer tier self-hosted gateways are limited to single gateway node.<br/>
48-
<sup>4</sup> The following policies aren't available in the Consumption tier: rate limit by key and quota by key.<br/>
49-
<sup>5</sup> GraphQL subscriptions aren't supported in the Consumption tier.
46+
<sup>2</sup> Including related functionality such as users, groups, issues, applications, and email templates and notifications.<br/>
47+
<sup>3</sup> See [Gateway overview](api-management-gateways-overview.md#feature-comparison-managed-versus-self-hosted-gateways) for a feature comparison of managed versus self-hosted gateways. In the Developer tier self-hosted gateways are limited to a single gateway node. <br/>
48+
<sup>4</sup> The following policies aren't available in the Consumption tier: rate limit by key and quota by key. <br/>
49+
<sup>5</sup> GraphQL subscriptions aren't supported in the Consumption tier.
Lines changed: 159 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,159 @@
1+
---
2+
title: API gateway overview | Azure API Management
3+
description: Learn more about the features of the API gateway component of Azure API Management. API Management offers both Azure-managed and self-hosted gateways.
4+
services: api-management
5+
documentationcenter: ''
6+
author: dlepow
7+
8+
ms.service: api-management
9+
ms.topic: conceptual
10+
ms.date: 08/04/2022
11+
ms.author: danlep
12+
---
13+
14+
# API gateway in Azure API Management
15+
16+
This article provides information about the roles and features of the API Management *gateway* component and compares the gateways you can deploy.
17+
18+
Related information:
19+
20+
* For an overview of API Management scenarios, components, and concepts, see [What is Azure API Management?](api-management-key-concepts.md)
21+
22+
* For more information about the API Management service tiers and features, see [Feature-based comparison of the Azure API Management tiers](api-management-features.md).
23+
24+
## Role of the gateway
25+
26+
The API Management *gateway* (also called *data plane* or *runtime*) is the service component that's responsible for proxying API requests, applying policies, and collecting telemetry.
27+
28+
[!INCLUDE [api-management-gateway-role](../../includes/api-management-gateway-role.md)]
29+
30+
## Managed and self-hosted
31+
32+
API Management offers both managed and self-hosted gateways:
33+
34+
* **Managed** - The managed gateway is the default gateway component that is deployed in Azure for every API Management instance in every service tier. With the managed gateway, all API traffic flows through Azure regardless of where backends implementing the APIs are hosted.
35+
36+
> [!NOTE]
37+
> Because of differences in the underlying service architecture, the Consumption tier gateway currently lacks some capabilities of the dedicated gateway. For details, see the section [Feature comparison: Managed versus self-hosted gateways](#feature-comparison-managed-versus-self-hosted-gateways).
38+
>
39+
40+
41+
* **Self-hosted** - The [self-hosted gateway](self-hosted-gateway-overview.md) is an optional, containerized version of the default managed gateway. It's useful for hybrid and multi-cloud scenarios where there is a requirement to run the gateways off Azure in the same environments where API backends are hosted. The self-hosted gateway enables customers with hybrid IT infrastructure to manage APIs hosted on-premises and across clouds from a single API Management service in Azure.
42+
43+
* The self-hosted gateway is [packaged](self-hosted-gateway-overview.md#packaging) as a Linux-based Docker container and is commonly deployed to Kubernetes, including to [Azure Kubernetes Service](how-to-deploy-self-hosted-gateway-azure-kubernetes-service.md) and [Azure Arc-enabled Kubernetes](how-to-deploy-self-hosted-gateway-azure-arc.md).
44+
45+
* Each self-hosted gateway is associated with a **Gateway** resource in a cloud-based API Management instance from which it receives configuration updates and communicates status.
46+
47+
48+
## Feature comparison: Managed versus self-hosted gateways
49+
50+
The following table compares features available in the managed gateway versus those in the self-hosted gateway. Differences are also shown between the managed gateway for dedicated service tiers (Developer, Basic, Standard, Premium) and for the Consumption tier.
51+
52+
> [!NOTE]
53+
> * Some features of managed and self-hosted gateways are supported only in certain [service tiers](api-management-features.md) or with certain [deployment environments](self-hosted-gateway-overview.md#packaging) for self-hosted gateways.
54+
> * See also self-hosted gateway [limitations](self-hosted-gateway-overview.md#limitations).
55+
56+
57+
### Infrastructure
58+
59+
| Feature support | Managed (Dedicated) | Managed (Consumption) | Self-hosted |
60+
| --- | ----- | ----- | ---------- |
61+
| [Custom domains](configure-custom-domain.md) | ✔️ | ✔️ | ✔️ |
62+
| [Built-in cache](api-management-howto-cache.md) | ✔️ |||
63+
| [External Redis-compatible cache](api-management-howto-cache-external.md) | ✔️ | ✔️ | ✔️ |
64+
| [Virtual network injection](virtual-network-concepts.md) | Developer, Premium || ✔️<sup>1</sup> |
65+
| [Private endpoints](private-endpoint.md) | ✔️ | ✔️ ||
66+
| [Availability zones](zone-redundancy.md) | Premium || ✔️<sup>1</sup> |
67+
| [Multi-region deployment](api-management-howto-deploy-multi-region.md) | Premium || ✔️<sup>1</sup> |
68+
| [CA root certificates](api-management-howto-ca-certificates.md) for certificate validation | ✔️ || ✔️<sup>2</sup> |
69+
| [Managed domain certificates](configure-custom-domain.md?tabs=managed#domain-certificate-options) | ✔️ | ✔️ ||
70+
| [TLS settings](api-management-howto-manage-protocols-ciphers.md) | ✔️ | ✔️ | ✔️ |
71+
72+
<sup>1</sup> Depends on how the gateway is deployed, but is the responsibility of the customer.<br/>
73+
<sup>2</sup> Requires configuration of local CA certificates.<br/>
74+
75+
### Backend APIs
76+
77+
| API | Managed (Dedicated) | Managed (Consumption) | Self-hosted |
78+
| --- | ----- | ----- | ---------- |
79+
| [OpenAPI specification](import-api-from-oas.md) | ✔️ | ✔️ | ✔️ |
80+
| [WSDL specification)](import-soap-api.md) | ✔️ | ✔️ | ✔️ |
81+
| WADL specification | ✔️ | ✔️ | ✔️ |
82+
| [Logic App](import-logic-app-as-api.md) | ✔️ | ✔️ | ✔️ |
83+
| [App Service](import-app-service-as-api.md) | ✔️ | ✔️ | ✔️ |
84+
| [Function App](import-function-app-as-api.md) | ✔️ | ✔️ | ✔️ |
85+
| [Container App](import-container-app-with-oas.md) | ✔️ | ✔️ | ✔️ |
86+
| [Service Fabric](../service-fabric/service-fabric-api-management-overview.md) | Developer, Premium |||
87+
| [Passthrough GraphQL](graphql-api.md) | ✔️ | ✔️<sup>1</sup> ||
88+
| [Synthetic GraphQL](graphql-schema-resolve-api.md) | ✔️ |||
89+
| [Passthrough WebSocket](websocket-api.md) | ✔️ |||
90+
91+
<sup>1</sup> GraphQL subscriptions aren't supported in the Consumption tier.
92+
93+
### Policies
94+
95+
Managed and self-hosted gateways support all available [policies](api-management-howto-policies.md) in policy definitions with the following exceptions.
96+
97+
| Policy | Managed (Dedicated) | Managed (Consumption) | Self-hosted |
98+
| --- | ----- | ----- | ---------- |
99+
| [Dapr integration](api-management-dapr-policies.md) ||| ✔️ |
100+
| [Get authorization context](api-management-access-restriction-policies.md#GetAuthorizationContext) | ✔️ |||
101+
| [Quota and rate limit](api-management-access-restriction-policies.md) | ✔️ | ✔️<sup>1</sup> | ✔️<sup>2</sup>
102+
| [Set GraphQL resolver](graphql-policies.md#set-graphql-resolver) | ✔️ |||
103+
104+
<sup>1</sup> The rate limit by key and quota by key policies aren't available in the Consumption tier.<br/>
105+
<sup>2</sup> By default, rate limit counts in self-hosted gateways are per-gateway, per-node.
106+
107+
### Monitoring
108+
109+
For details about monitoring options, see [Observability in Azure API Management](observability.md).
110+
111+
| Feature | Managed (Dedicated) | Managed (Consumption) | Self-hosted |
112+
| --- | ----- | ----- | ---------- |
113+
| [API analytics](howto-use-analytics.md) | ✔️ |||
114+
| [Application Insights](api-management-howto-app-insights.md) | ✔️ | ✔️ | ✔️ |
115+
| [Logging through Event Hubs](api-management-howto-log-event-hubs.md) | ✔️ | ✔️ | ✔️ |
116+
| [Metrics in Azure Monitor](api-management-howto-use-azure-monitor.md#view-metrics-of-your-apis) | ✔️ || ✔️ |
117+
| [OpenTelemetry Collector](how-to-deploy-self-hosted-gateway-kubernetes-opentelemetry.md) ||| ✔️ |
118+
| [Request logs in Azure Monitor](api-management-howto-use-azure-monitor.md#resource-logs) | ✔️ || ❌<sup>1</sup> |
119+
| [Local metrics and logs](how-to-configure-local-metrics-logs.md) ||| ✔️ |
120+
| [Request tracing](api-management-howto-api-inspector.md) | ✔️ | ✔️ | ✔️ |
121+
122+
<sup>1</sup> The self-hosted gateway currently doesn't send resource logs (diagnostic logs) to Azure Monitor. Optionally [send metrics](how-to-configure-cloud-metrics-logs.md) to Azure Monitor, or [configure and persist logs locally](how-to-configure-local-metrics-logs.md) where the self-hosted gateway is deployed.
123+
124+
### Authentication and authorization
125+
126+
| Feature | Managed (Dedicated) | Managed (Consumption) | Self-hosted |
127+
| --- | ----- | ----- | ---------- |
128+
| [Authorizations](authorizations-overview.md) | ✔️ | ✔️ ||
129+
130+
131+
## Gateway throughput and scaling
132+
133+
> [!IMPORTANT]
134+
> Throughput is affected by the number and rate of concurrent client connections, the kind and number of configured policies, payload sizes, backend API performance, and other factors. Self-hosted gateway throughput is also dependent on the compute capacity (CPU and memory) of the host where it runs. Perform gateway load testing using anticipated production conditions to determine expected throughput accurately.
135+
136+
### Managed gateway
137+
138+
For estimated maximum gateway throughput in the API Management service tiers, see [API Management pricing](https://azure.microsoft.com/pricing/details/api-management/).
139+
140+
> [!IMPORTANT]
141+
> Throughput figures are presented for information only and must not be relied upon for capacity and budget planning. See [API Management pricing](https://azure.microsoft.com/pricing/details/api-management/) for details.
142+
143+
* **Dedicated service tiers**
144+
* Scale gateway capacity by adding and removing scale [units](upgrade-and-scale.md), or upgrade the service tier. (Scaling not available in the Developer tier.)
145+
* In the Standard and Premium tiers, optionally configure [Azure Monitor autoscale](api-management-howto-autoscale.md).
146+
* In the Premium tier, optionally add and distribute gateway capacity across multiple [regions](api-management-howto-deploy-multi-region.md).
147+
148+
* **Consumption tier**
149+
* API Management instances in the Consumption tier scale automatically based on the traffic.
150+
151+
### Self-hosted gateway
152+
* In environments such as [Kubernetes](how-to-self-hosted-gateway-on-kubernetes-in-production.md), add multiple gateway replicas to handle expected usage.
153+
* Optionally [configure autoscaling](how-to-self-hosted-gateway-on-kubernetes-in-production.md#autoscaling) to meet traffic demands.
154+
155+
## Next steps
156+
157+
- Learn more about [API Management in a Hybrid and Multi-Cloud World](https://aka.ms/hybrid-and-multi-cloud-api-management)
158+
- Learn more about using the [capacity metric](api-management-capacity.md) for scaling decisions
159+
- Learn about [observability capabilities](observability.md) in API Management

articles/api-management/api-management-key-concepts.md

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -50,18 +50,14 @@ Azure API Management is made up of an API *gateway*, a *management plane*, and a
5050

5151
All requests from client applications first reach the API gateway, which then forwards them to respective backend services. The API gateway acts as a facade to the backend services, allowing API providers to abstract API implementations and evolve backend architecture without impacting API consumers. The gateway enables consistent configuration of routing, security, throttling, caching, and observability.
5252

53-
The API gateway:
54-
55-
* Accepts API calls and routes them to configured backends
56-
* Verifies API keys, JWT tokens, certificates, and other credentials
57-
* Enforces usage quotas and rate limits
58-
* Optionally transforms requests and responses as specified in [policy statements](#policies)
59-
* If configured, caches responses to improve response latency and minimize the load on backend services
60-
* Emits logs, metrics, and traces for monitoring, reporting, and troubleshooting
53+
[!INCLUDE [api-management-gateway-role](../../includes/api-management-gateway-role.md)]
6154

6255
With the [self-hosted gateway](self-hosted-gateway-overview.md), customers can deploy the API gateway to the same environments where they host their APIs, to optimize API traffic and ensure compliance with local regulations and guidelines. The self-hosted gateway enables customers with hybrid IT infrastructure to manage APIs hosted on-premises and across clouds from a single API Management service in Azure.
6356

64-
The self-hosted gateway is packaged as a Linux-based Docker container and is commonly deployed to Kubernetes, including to Azure Kubernetes Service and [Azure Arc-enabled Kubernetes](how-to-deploy-self-hosted-gateway-azure-arc.md).
57+
The self-hosted gateway is packaged as a Linux-based Docker container and is commonly deployed to Kubernetes, including to Azure Kubernetes Service and [Azure Arc-enabled Kubernetes](how-to-deploy-self-hosted-gateway-azure-arc.md).
58+
59+
More information:
60+
* [API gateway in Azure API Management](api-management-gateways-overview.md)
6561

6662
### Management plane
6763

0 commit comments

Comments
 (0)