In diesem Szenario konsolidiert eine Organisation mehrere APIs intern mithilfe der Azure-API-Verwaltung, die in einem virtuellen Netzwerk bereitgestellt wird.
Aufbau
Laden Sie eine Visio-Datei dieser Architektur herunter.
Das vorangegangene Szenario umfasst einen kompletten Lebenszyklus interner APIs, die von den externen Benutzern genutzt werden.
Datenfluss
Die Daten fließen wie folgt:
- Entwickler checken Code in ein GitHub-Repository ein, das mit dem CI/CD-Pipeline-Agent verbunden ist, der auf einer Azure-VM installiert ist.
- Der Agent überträgt den Build an die API-Anwendung, die auf ILB-App Service-Umgebung gehostet wird.
- Azure API Management nutzt die vorangegangenen APIs über HOST-Header, die in der API Management-Richtlinie angegeben sind.
- Die API-Verwaltung verwendet den App Service-Umgebung DNS-Namen für alle APIs.
- Das Anwendungsgateway macht das API-Verwaltungsentwickler- und API-Portal verfügbar.
- Azure Privates DNS wird verwendet, um den Datenverkehr intern zwischen App Service-Umgebung, API-Verwaltung und Anwendungsgateway weiterzuleiten.
- Externe Benutzer nutzen das verfügbar gemachte Entwicklerportal, um die APIs über die öffentliche IP-Adresse des Anwendungsgateways zu nutzen.
Komponenten
- Mit Azure Virtual Network können Azure-Ressourcen sicher untereinander sowie mit dem Internet und mit lokalen Netzwerken kommunizieren.
- Mit privatem Azure-DNS können Domänennamen in einem virtuellen Netzwerk aufgelöst werden, ohne dass eine benutzerdefinierte DNS-Lösung hinzugefügt werden muss.
- Azure API Management unterstützt Organisationen beim Veröffentlichen von APIs für externe, Partner- und interne Entwickler, um ihre Daten und Dienste nutzen zu können.
- Application Gateway ist ein Lastenausgleich für Web-Datenverkehr, das Ihnen dabei hilft, eingehenden Datenverkehr für Ihre Web-Anwendungen zu verwalten.
- Der interne Lastenausgleich App Service-Umgebung ist ein Azure-App Dienstfeature, das eine vollständig isolierte und dedizierte Umgebung für sicheres Ausführen von App Service-Apps im großen Maßstab bereitstellt.
- Azure DevOps ist ein Dienst für die Verwaltung Ihres Entwicklungslebenszyklus und umfasst Features für Planung und Projektmanagement, Codeverwaltung, Build und Release.
- Application Insights ist ein erweiterbarer, für Webentwickler konzipierter Dienst zur Verwaltung der Anwendungsleistung (Application Performance Management, APM) auf mehreren Plattformen.
- Azure Cosmos DB ist ein global verteilter Datenbankdienst von Microsoft mit mehreren Modellen.
Alternativen
- In einem Azure-Lift- und -Schichtszenario , das in einem virtuellen Azure-Netzwerk bereitgestellt wird, könnten Back-End-Server direkt über private IP-Adressen adressiert werden.
- Wenn Sie lokale Ressourcen verwenden, kann die API-Verwaltungsinstanz privat über ein Azure VPN-Gateway und eine IPSec-VPN-Verbindung (Site-to-Site Internet Protocol Security) oder ExpressRoute , die ein hybrides Azure- und lokales Szenario erstellt, zurück zum internen Dienst gelangen.
- Vorhandene oder Open-Source-DNS-Anbieter können anstelle des Azure-basierten DNS-Diensts verwendet werden.
- Interne APIs, die außerhalb von Azure bereitgestellt werden, können dennoch davon profitieren, wenn die APIs über den API Management-Dienst bereitgestellt werden.
Szenariodetails
In diesem Szenario hostt eine Organisation mehrere APIs mit Azure-App lication Service Environment (ILB App Service-Umgebung), und sie möchten diese APIs intern mithilfe von Azure API Management (APIM) konsolidieren, die in einem virtuellen Netzwerk bereitgestellt werden. Die interne API Management-Instanz könnte auch externen Benutzern zur Verfügung gestellt werden, um das volle Potenzial der APIs nutzen zu können. Diese externe Belichtung kann mithilfe von Azure-App lication Gateway-Weiterleitungsanforderungen an den internen API-Verwaltungsdienst erreicht werden, der wiederum die im App Service-Umgebung bereitgestellten APIs nutzt.
- Die Web-APIs werden über ein gesichertes HTTPS-Protokoll gehostet und verwenden ein TLS-Zertifikat.
- Das Anwendungsgateway ist auch über Port 443 für gesicherte und zuverlässige ausgehende Anrufe konfiguriert.
- Der API Management-Dienst ist so konfiguriert, dass er benutzerdefinierte Domänen mit TLS-Zertifikaten verwendet.
- Überprüfen der vorgeschlagenen Netzwerkkonfiguration für App Service-Umgebungen
- Es muss ausdrücklich erwähnt werden, dass Port 3443 es API Management ermöglicht, die Verwaltung über das Azure-Portal oder PowerShell durchzuführen.
- Verwenden Sie Richtlinien innerhalb von APIM, um einen HOST-Header für die auf App Service-Umgebung gehostete API hinzuzufügen. Dadurch wird sichergestellt, dass der App Service-Umgebung Lastenausgleich die Anforderung ordnungsgemäß weiterleitet.
- Die API-Verwaltung akzeptiert den App Service-Umgebung DNS-Eintrag für alle unter App Service-Umgebung gehosteten Apps. Fügen Sie eine APIM-Richtlinie hinzu, um den HOST-Header explizit festzulegen, damit der App Service-Umgebung Lastenausgleich zwischen Apps unter dem App Service-Umgebung unterscheiden kann.
- Erwägen Sie die Integration in Azure Application Insights. Dadurch stehen Ihnen über Azure Monitor auch Metriken für die Überwachung zur Verfügung.
- Wenn Sie CI/CD-Pipelines für die Bereitstellung interner APIs verwenden, sollten Sie ihren eigenen gehosteten Agent auf einer VM innerhalb des virtuellen Netzwerks erstellen.
Mögliche Anwendungsfälle
- Synchronisieren Sie Kundenadresseninformationen intern, nachdem der Kunde eine Änderung vorgenommen hat.
- Gewinnen von Entwicklern für Ihre Plattform, indem eindeutige Datenressourcen verfügbar gemacht werden
Überlegungen
Diese Überlegungen beruhen auf den Säulen des Azure Well-Architected Frameworks, d. h. einer Reihe von Grundsätzen, mit denen die Qualität von Workloads verbessert werden kann. Weitere Informationen finden Sie unter Microsoft Azure Well-Architected Framework.
Zuverlässigkeit
Zuverlässigkeit stellt sicher, dass Ihre Anwendung Ihre Verpflichtungen gegenüber den Kunden erfüllen kann. Weitere Informationen finden Sie in der Übersicht über die Säule „Zuverlässigkeit“.
Verfügbarkeit
Sie können den Azure API Management-Dienst als Bereitstellung in mehreren Regionen für eine höhere Verfügbarkeit und auch zur Reduzierung von Wartezeiten bereitstellen. Diese Funktion ist nur im Premium-Modus verfügbar. Der API Management-Dienst in diesem speziellen Szenario nutzt APIs aus App Service-Umgebungen. Sie können auch APIM für APIs verwenden, die in der internen lokalen Infrastruktur gehostet werden.
App Service-Umgebungen könnten Traffic Manager-Profile verwenden, um den in App Service-Umgebungen gehosteten Datenverkehr für eine höhere Skalierung und Verfügbarkeit zu verteilen.
Resilienz
Auch wenn es in diesem Beispielszenario zwar eher um die Konfiguration geht, sollten die in den App Service-Umgebungen gehosteten APIs ausreichend resilient sein, um Fehler in den Anforderungen zu behandeln, die schließlich vom API Management-Dienst und Application Gateway verwaltet werden. Berücksichtigen Sie Muster für Wiederholungen und Trennschalter im API-Design. Allgemeine Informationen zur Entwicklung robuster Lösungen finden Sie unter Entwerfen robuster Anwendungen für Azure.
Sicherheit
Sicherheit bietet Schutz vor vorsätzlichen Angriffen und dem Missbrauch Ihrer wertvollen Daten und Systeme. Weitere Informationen finden Sie unter Übersicht über die Säule „Sicherheit“.
Da das vorherige Beispielszenario vollständig in einem internen Netzwerk gehostet wird, werden API-Verwaltung und App Service-Umgebung bereits in gesicherter Infrastruktur (Azure Virtual Network) bereitgestellt. Sie können Application Gateway-Instanzen in Microsoft Defender for Cloud integrieren, um eine reibungslose Möglichkeit zur Vermeidung, Erkennung und Reaktion auf Bedrohungen für die Umgebung bereitzustellen. Allgemeine Informationen zum Entwerfen sicherer Lösungen finden Sie in der Dokumentation zur Azure-Sicherheit.
Kostenoptimierung
Bei der Kostenoptimierung geht es um die Suche nach Möglichkeiten, unnötige Ausgaben zu reduzieren und die Betriebseffizienz zu verbessern. Weitere Informationen finden Sie unter Übersicht über die Säule „Kostenoptimierung“.
API Management ist in vier Tarifen erhältlich: Developer, Basic, Standard und Premium. Ausführliche Informationen zu den Unterschieden zwischen den einzelnen Tarifen finden Sie in der API Management-Preisübersicht.
Kunden können API Management skalieren, indem sie Einheiten hinzufügen und entfernen. Die Kapazität jeder Einheit ist vom Tarif abhängig.
Hinweis
Sie können den Developer-Tarif zur Evaluierung der API Management-Features verwenden. Sie sollten den „Developer“-Tarif nicht für die Produktion verwenden.
Im Azure-Preisrechner können Sie die voraussichtlichen Kosten für Ihre speziellen Bereitstellungsanforderungen ermitteln, indem Sie die Anzahl von Skalierungseinheiten und App Service-Instanzen ändern.
Ebenso finden Sie hier die Preisübersicht der App Service-Umgebungen.
Sie können die Application Gateway-Preise in Abhängigkeit von dem erforderlichen Tarif und den Ressourcen konfigurieren.
Effiziente Leistung
Leistungseffizienz ist die Fähigkeit Ihrer Workload, auf effiziente Weise eine den Anforderungen der Benutzer entsprechende Skalierung auszuführen. Weitere Informationen finden Sie unter Übersicht über die Säule „Leistungseffizienz“.
Skalierbarkeit
Sie können API Management-Instanzen in Abhängigkeit von einer Reihe von Faktoren aufskalieren, z. B. die Anzahl und Übertragungsrate von gleichzeitigen Verbindungen, Art und Anzahl von konfigurierten Richtlinien, Umfang von Anforderungen und Antworten sowie Backend-Latenzzeiten für die APIs. Die Optionen für das Aufskalieren von Instanzen sind in den Tarifen „Basic“, „Standard“ und „Premium“ verfügbar, werden aber in den Tarifen „Basic“ und „Standard“ durch einen oberen Grenzwert für die Skalierung begrenzt. Die Instanzen werden als Einheiten bezeichnet und können auf bis zu maximal zwei Einheiten im Tarif „Basic“, vier Einheiten im Tarif „Standard“ und eine beliebige Anzahl von Einheiten im Tarif „Premium“ skaliert werden. Die Optionen für die automatische Skalierung sind ebenfalls verfügbar, um das Aufskalieren auf Basis von Regeln zu aktivieren.
App Service-Umgebungen sind für die Skalierung mit Grenzwerten basierend auf dem Tarif konzipiert. Sie können die unter den App Service-Umgebungen gehosteten Anwendungen in Abhängigkeit von den Anforderungen der Anwendung konfigurieren, um aufzuskalieren (Anzahl der Instanzen) oder hochzuskalieren (Größe der Instanz).
Die automatische Skalierung von Azure Application Gateway ist im Rahmen der zonenredundanten SKU in allen globalen Azure-Regionen verfügbar. Informationen zur automatischen Skalierung des App-Gateways finden Sie in der öffentlichen Previewfunktion.
Bereitstellen dieses Szenarios
Voraussetzungen und Annahmen
- Sie müssen einen benutzerdefinierten Domänennamen erwerben.
- Sie benötigen ein TLS-Zertifikat für alle benutzerdefinierten Domänen (im Beispiel wird ein Platzhalterzertifikat des Azure-Zertifikatdiensts verwendet). Sie können auch ein selbstsigniertes Zertifikat für Testszenarien der Entwickler erwerben.
- Für diese spezifische Bereitstellung werden der Domänenname „contoso.org“ und ein TLS-Platzhalterzertifikat für die Domäne verwendet.
- Die Bereitstellung verwendet die im Bereitstellungsabschnitt genannten Ressourcennamen und Adressräume. Sie können die Ressourcennamen und Adressräume konfigurieren.
Bereitstellung und Zusammenstellung der Komponenten
Sie müssen die mithilfe der vorherigen Resource Manager-Vorlage bereitgestellten Komponenten wie folgt konfigurieren:
Virtuelles Netzwerk mit den folgenden Konfigurationen:
- Name:
ase-internal-vnet
- Adressraum für virtuelles Netzwerk: 10.0.0.0/16
- Vier Subnetze
backendSubnet
für DNS-Dienst: 10.0.0.0/24apimsubnet
für internen API Management-Dienst: 10.0.1.0/28asesubnet
für ILB App Service-Umgebung: 10.0.2.0/24- VMSubnet für virtuelle Testcomputer und intern gehostete DevOps-Agent-VM: 10.0.3.0/24
- Name:
Privates DNS Dienst (Public Preview), da das Hinzufügen eines DNS-Diensts erfordert, dass das virtuelle Netzwerk leer ist.
- Weitere Informationen finden Sie in den Bereitstellungsrichtlinien.
App Service-Umgebung mit ILB-Option
aseinternal
(Internal Load Balancer): (DNS:aseinternal.contoso.org
). Nachdem die Bereitstellung abgeschlossen ist, laden Sie das Platzhalterzertifikat für den ILB hoch.App Service Plan mit App Service-Umgebung als Standort
Eine API-App (App Service aus Gründen der Einfachheit) –
srasprest
(URL:https://srasprest.contoso.org
) – ASP.NET Model-View-Controller (MVC)-basierte Web-API. Nach der Bereitstellung konfigurieren Sie Folgendes:- Web-App, die das TLS-Zertifikat verwenden soll
- Application Insights für die vorangegangenen Apps:
api-insights
- Erstellen Sie einen Azure Cosmos DB-Dienst für Web-APIs, die intern in virtuellem Netzwerk gehostet werden:
noderestapidb
- Erstellen von DNS-Einträgen in der azure Privates DNS Zone erstellt
- Sie können Azure Pipelines verwenden, um die Agents auf virtuellen Computern zu konfigurieren, sodass der Code für die Web-App im internen Netzwerk bereitgestellt wird
- Erstellen Sie zum internen Testen der API-App einen virtuellen Testcomputer im Subnetz des virtuellen Netzwerks.
Erstellen des API Management-Diensts:
apim-internal
Konfigurieren Sie den Dienst für die Verbindung mit dem internen virtuellen Netzwerk in Subnetz:
apimsubnet
. Nachdem die Bereitstellung abgeschlossen ist, führen Sie die folgenden zusätzlichen Schritte aus:- Konfigurieren Sie benutzerdefinierte Domänen für APIM-Dienste mit TLS:
- API-Portal (
api.contoso.org
) - Entwicklerportal (
portal.contoso.org
) - Konfigurieren Sie im Abschnitt "APIs" die App Service-Umgebung Apps mithilfe des App Service-Umgebung DNS-Namens hinzugefügte Richtlinie für HOST-Header für die Web-App.
- Verwenden Sie den vorhergehenden virtuellen Test-Computer, um den API Management-Dienst intern im virtuellen Netzwerk zu testen
- API-Portal (
Hinweis
Das Testen der APIM-APIs über das Azure-Portal funktioniert nicht, da
api.contoso.org
nicht öffentlich aufgelöst werden kann.*- Konfigurieren Sie benutzerdefinierte Domänen für APIM-Dienste mit TLS:
Konfigurieren Sie das Anwendungsgateway für den Zugriff auf den API-Dienst:
apim-gateway
auf Port 80. Fügen Sie DEM Anwendungsgateway TLS-Zertifikate und entsprechende Integritätssonden und HTTP-Einstellungen hinzu. Konfigurieren Sie außerdem die Regeln und Listener für die Verwendung des TLS-Zertifikats.
Nachdem die vorstehenden Schritte erfolgreich abgeschlossen wurden, konfigurieren Sie die DNS-Einträge in den CNAME-Einträgen der Webregistrierungsstelle und api.contoso.org
portal.contoso.org
mit dem öffentlichen DNS-Namen des Anwendungsgateways: ase-appgtwy.westus.cloudapp.azure.com
. Überprüfen Sie, ob das Entwicklerportal öffentlich zugänglich ist und Sie in der Lage sind, die APIM-Dienst-APIs über das Azure-Portal zu testen.
Hinweis
Es ist nicht empfehlenswert, für die APIM-Dienste dieselbe URL für interne und externe Endpunkte zu verwenden.
Beitragende
Dieser Artikel wird von Microsoft gepflegt. Er wurde ursprünglich von folgenden Mitwirkenden geschrieben.
Hauptautor:
- Srikant Sarwa | Senior Customer Engineer
Andere Mitwirkende:
- Shawn Kupfer | Technical Writer
Melden Sie sich bei LinkedIn an, um nicht öffentliche LinkedIn-Profile anzuzeigen.
Nächste Schritte
- Tutorial: Importieren und Veröffentlichen Ihrer ersten API
- Tutorial: Erstellen und Veröffentlichen eines Produkts
- Tutorial: Veröffentlichen mehrerer Versionen Ihrer API