In diesem Szenario migriert ein E-Commerce-Unternehmen in der Reisebranche eine Legacy-Webanwendung mithilfe von Azure API Management. Die neue Benutzeroberfläche wird als PaaS-Anwendung (Platform as a Service) in Azure gehostet und ist sowohl von vorhandenen als auch neuen HTTP-APIs abhängig. Diese APIs werden einen besseren Satz von Schnittstellen enthalten, die die Leistung verbessern, die Integration vereinfachen und zukünftige Erweiterbarkeit unterstützen.
Architektur
Laden Sie eine Visio-Datei dieser Architektur herunter.
Workflow
- Die vorhandene lokale Webanwendung nutzt die vorhandenen lokalen Webdienste weiterhin direkt.
- Aufrufe von der vorhandenen Web-App an die vorhandenen HTTP-Dienste bleiben unverändert. Diese Aufrufe erfolgen intern im Unternehmensnetzwerk.
- Eingehende Aufrufe werden von Azure an die vorhandenen internen Dienste gesendet:
- Das Sicherheitsteam verwendet den sicheren Transport (HTTPS/SSL), um zuzulassen, dass Datenverkehr von der API Management-Instanz durch die Unternehmensfirewall zu den vorhandenen lokalen Diensten geleitet wird.
- Das operative Team lässt eingehende Aufrufe der Dienste nur von der API Management-Instanz zu. Innerhalb der Unternehmensnetzwerkumgebung wird die IP-Adresse der API Management-Instanz der Positivliste hinzugefügt, um diese Anforderung zu erfüllen.
- Ein neues Modul wird in der lokalen Anforderungspipeline für HTTP-Dienste konfiguriert (nur für Verbindungen mit externem Ursprung). Die Pipeline überprüft ein Zertifikat, das von API Management bereitgestellt wird.
- Für die neue API gilt Folgendes:
- Die neue API wird nur über die API Management-Instanz verfügbar gemacht, die die API-Fassade bereitstellt. Auf die neue API wird nicht direkt zugegriffen.
- Die neue API wird als eine Azure-PaaS-Web-API-App entwickelt und veröffentlicht.
- Sie wird (über Einstellungen für die Web-Apps-Funktion von Azure App Service) so konfiguriert, dass nur die VIP (Virtual IP, virtuelle IP-Adresse) von API Management akzeptiert wird.
- Die neue API wird mit aktiviertem sicheren Transportprotokoll (HTTPS oder SSL) in Azure-Web-Apps gehostet.
- Autorisierung ist aktiviert. Diese wird von Azure App Service bereitgestellt, und zwar mithilfe von Microsoft Entra ID und OAuth 2 (Open Authorization).
- Die neue browserbasierte Webanwendung ist für die vorhandene HTTP-API und die neue API von der Azure API Management-Instanz abhängig.
- Das Reise-E-Commerce-Unternehmen kann nun einige Benutzer auf die neue Benutzeroberfläche leiten (als Vorschau oder zum Testen), während die alte Benutzeroberfläche und die bestehenden Funktionen nebeneinander bestehen bleiben.
Die API Management-Instanz ist so konfiguriert, dass sie die älteren HTTP-Dienste einem neuen API-Vertrag zuordnet. In dieser Konfiguration ist der neuen Webbenutzeroberfläche die Integration einer Gruppe von älteren Diensten/APIs und neuen APIs daher nicht bekannt.
Das Projektteam wird in der Zukunft schrittweise Funktionen zu den neuen APIs portieren und die ursprünglichen Dienste außer Betrieb setzen. Das Team nimmt diese Änderungen in der API Management-Konfiguration vor, sodass die Front-End-Benutzeroberfläche davon nicht betroffen ist und Neuentwicklungen vermieden werden.
Komponenten
- Azure API Management abstrahiert Back-End-APIs und fügt übergreifende Funktionen und Erkennungsfunktionen für Entwickler und Anwendungen hinzu. In diesem Szenario wird die Neukomposition bestehender Back-End-APIs und die Hinzufügung neuer API-Funktionen durch die Verwendung von API Management als Fassade für die neue Clientanwendung ermöglicht, die konsistent und unter Verwendung moderner Standards genutzt werden kann. Da API Management sowohl die bestehenden als auch die neuen APIs abdeckt, können die Entwickler die Legacy-Back-Ends hinter der API Management-Fassade iterativ und mit minimalen bis gar keinen Auswirkungen auf die neue Front-End-Entwicklung modernisieren.
- Azure App Service ist ein schlüsselfertiger PaaS-Dienst (Platform-as-a-Service) für das Webhosting, der standardmäßig Funktionen wie Sicherheit, Lastausgleich, automatische Skalierung und automatisierte Verwaltung bietet. Azure App Service ist eine gute Wahl für die neuen APIs, die für diese Lösung entwickelt werden, da es ein flexibles, schlüsselfertiges Hosting bietet. So kann sich das DevOps-Team auf die Bereitstellung von Funktionen konzentrieren.
Alternativen
Wenn die Organisation eine Migration ihrer vollständigen Infrastruktur – einschließlich der virtuellen Computer (VMs), die Legacy-Anwendungen hosten – zu Azure plant, ist API Management dennoch eine gute Option, da der Dienst als Fassade für alle adressierbaren HTTP-Endpunkte fungieren kann.
Wenn sich die Organisation dafür entschieden hat, die vorhandenen Endpunkte privat zu halten und nicht öffentlich verfügbar zu machen, kann die API Management-Instanz mit einem Azure Virtual Network verknüpft werden:
- Wenn API Management mit einem virtuellen Azure-Netzwerk verknüpft ist, kann das Unternehmen den Back-End-Dienst direkt über private IP-Adressen adressieren.
- Im lokalen Szenario könnte die API Management-Instanz den internen Dienst ihrerseits privat über ein Azure-VPN Gateway und eine Site-to-Site-IPSec-VPN-Verbindung oder Azure ExpressRoute erreichen. Dieses Szenario würde dadurch zu einem Hybrid aus Azure und der lokalen Umgebung werden.
Die Organisation kann die API Management-Instanz privat halten, indem sie sie im internen Modus bereitstellt. Die Organisation kann dann eine Bereitstellung mit Azure Application Gateway verwenden, um den öffentlichen Zugriff für einige APIs zu ermöglichen, während andere APIs weiterhin nur intern zugänglich sind. Weitere Informationen findest Du unter Integrieren von API Management in ein internes virtuelles Netzwerk mit Application Gateway.
Die Organisation entscheidet sich möglicherweise, ihre APIs lokal zu hosten. Ein Grund für diese Änderung kann sein, dass die Organisation Downstream-Datenbankabhängigkeiten, die im Bereich dieses Projekts liegen, sonst nicht in die Cloud verschieben kann. Wenn dies der Fall ist, kann die Organisation API Management weiterhin lokal nutzen, indem sie ein selbstgehostetes Gateway verwendet.
Das selbstgehostete Gateway ist eine Containerbereitstellung des API Management Gateways, das eine Verbindung mit Azure über einen ausgehenden Socket herstellt. Die erste Voraussetzung ist, dass selbstgehostete Gateways nicht ohne eine übergeordnete Ressource in Azure bereitgestellt werden können, was mit einer zusätzlichen Gebühr verbunden ist. Zweitens ist der Premium-Tarif von API Management erforderlich.
Szenariodetails
Ein E-Commerce-Unternehmen in der Reisebranche modernisiert seinen browserbasierten Legacy-Softwarebestand. Zwar ist der vorhandene Bestand größtenteils monolithisch, jedoch sind einige SOAP-basierte (Simple Object Access Protocol) HTTP-Dienste aus einem aktuellen Projekt vorhanden. Das Unternehmen erwägt, zusätzliche Einnahmequellen zu erschließen, um Teile des von ihm entwickelten internen geistigen Eigentums gewinnbringend zu nutzen.
Zu den Zielen für das Projekt zählen der Abbau technischer Schulden, die Verbesserung der laufenden Wartung und die Beschleunigung der Featureentwicklung mit weniger Regressionsfehlern. Bei dem Projekt wird zur Vermeidung von Risiken ein iterativer Prozess eingesetzt, und einige Schritte werden parallel ausgeführt:
- Das Entwicklungsteam soll das Back-End der Anwendung modernisieren, das aus relationalen Datenbanken besteht, die auf VMs gehostet werden.
- Das interne Entwicklungsteam wird neue Geschäftsfunktionen entwickeln, die über neue HTTP-APIs verfügbar gemacht werden.
- Ein externes Entwicklungsteam wird eine neue browserbasierte Benutzeroberfläche erstellen, die in Azure gehostet wird.
Neue Anwendungsfeatures werden in mehreren Phasen bereitgestellt. Diese Features sollen die vorhandene (lokal gehostete) browserbasierte Client/Server-Benutzeroberfläche, die gegenwärtig für das E-Commerce-Geschäft des Unternehmens genutzt wird, schrittweise ersetzen.
Mitglieder des Managementteams möchten unnötige Modernisierungen vermeiden. Außerdem möchte es die Kontrolle über den Umfang und die Kosten des Projekts behalten. Aus diesem Grund hat sich das Unternehmen entschieden, die vorhandenen SOAP-HTTP-Dienste beizubehalten. Zudem sollen Änderungen an der vorhandenen Benutzeroberfläche auf ein Minimum beschränkt werden. Viele der Anforderungen und Auflagen des Projekts können mit Azure API Management erfüllt werden.
Mögliche Anwendungsfälle
In diesem Szenario werden veraltete browserbasierte Softwarestapel modernisiert.
Sie können dieses Szenario für Folgendes verwenden:
- Erfahren Sie, wie Ihr Unternehmen von der Nutzung des Azure-Ökosystems profitieren kann.
- Planen der Migration von Diensten zu Azure.
- Erfahren Sie, wie sich eine Umstellung auf Azure auf vorhandene APIs auswirkt.
Überlegungen
Diese Überlegungen bilden die Säulen des Azure Well-Architected Framework, einer Reihe von Leitprinzipien, die zur Steigerung der Qualität eines Workloads verwendet werden können. 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 unter Erstellen einer Checkliste zur Überprüfung der Zuverlässigkeit.
- Ziehen Sie in Erwägung, Ihre Azure API Management-Instanz mit aktivierten Verfügbarkeitszonen bereitzustellen. Die Option zur Bereitstellung von API Management in Verfügbarkeitszonen ist nur in der Dienstebene „Premium“ verfügbar.
- Verfügbarkeitszonen können in Verbindung mit zusätzlichen Gateway-Instanzen verwendet werden, die in verschiedenen Regionen bereitgestellt werden. Dies verbessert die Dienstverfügbarkeit, wenn eine Region offline geht. Die Bereitstellung über mehrere Regionen hinweg ist ebenfalls nur in der Premium-Dienstebene verfügbar.
- Erwägen Sie die Integration in Azure Application Insights. Dadurch stehen Ihnen über Azure Monitor auch Metriken für die Überwachung zur Verfügung. Die Metrik für die Kapazität kann beispielsweise verwendet werden, um die Gesamtauslastung der API Management-Ressource zu ermitteln und festzustellen, ob zusätzliche Einheiten für die horizontale Skalierung erforderlich sind. Durch die Nachverfolgung der Kapazität und des Zustands der Ressourcen wird die Zuverlässigkeit verbessert.
- Achten Sie darauf, dass nachgelagerte Abhängigkeiten, z. B. die Back-End-Dienste, die die von API Management abgedeckten APIs hosten, ebenfalls resilient sind.
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 Erstellen einer Checkliste zur Überprüfung der 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.
API Management lässt sich durch Hinzufügen und Entfernen von Einheiten skalieren. Die Kapazität jeder Einheit ist vom Tarif abhängig.
Hinweis
Sie können den Developer-Tarif zur Evaluierung der API Management-Features verwenden. Verwenden Sie ihn nicht für die Produktion.
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.
Beitragende
Dieser Artikel wird von Microsoft gepflegt. Er wurde ursprünglich von folgenden Mitwirkenden geschrieben:
Hauptautor:
- Ben Gimblett | Senior Customer Engineer
Melden Sie sich bei LinkedIn an, um nicht öffentliche LinkedIn-Profile anzuzeigen.
Nächste Schritte
Produktdokumentation:
Learn-Module:
- Erkunden von Azure App Service
- Bereitstellen einer Website in Azure mit Azure App Service
- Schützen von APIs in Azure API Management