Multi-Cloud-Bereitstellungen werden uns erhalten bleiben. Laut dem Bericht „State of Application Strategy in 2022“ von F5 betreiben 77 % der Unternehmen Anwendungen über mehrere Clouds hinweg. Die Einführung von Multi-Cloud- und Hybridarchitekturen bringt wichtige Vorteile mit sich, beispielsweise eine höhere Effizienz, ein geringeres Ausfallrisiko und die Vermeidung einer Abhängigkeit von einem bestimmten Anbieter. Allerdings stellen diese komplexen Architekturen auch einzigartige Herausforderungen dar.
Die von F5 befragten Software- und IT-Leiter nannten dies als ihre größten Multi-Cloud-Herausforderungen:
Die Verwaltung von APIs für Microservices in Multi-Cloud-Umgebungen ist besonders komplex. Ohne eine ganzheitliche API-Strategie verbreiten sich APIs in öffentlichen Clouds, lokalen Umgebungen und Edge-Umgebungen schneller, als Platform Ops-Teams sie sichern und verwalten können. Wir bezeichnen dieses Problem als „API-Wildwuchs“ und haben in einem früheren Beitrag erklärt, warum es eine so große Bedrohung darstellt.
Sie benötigen eine Multi-Cloud-API-Strategie, damit Sie einen durchdachten Ansatz zur Vereinheitlichung Ihrer Microservices (die jetzt über mehrere Clouds verteilt sind) implementieren und so eine durchgängige Konnektivität gewährleisten können. Zwei der häufigsten Szenarien für Multi-Cloud- und Hybridbereitstellungen sind:
Im folgenden Tutorial zeigen wir Schritt für Schritt, wie Sie den API Connectivity Manager , Teil der F5 NGINX Management Suite , im zweiten Szenario verwenden: Bereitstellung derselben Dienste in mehreren Umgebungen für hohe Verfügbarkeit. Dadurch wird ein einzelner Ausfallpunkt in Ihrer Multi-Cloud- oder Hybrid-Produktionsumgebung eliminiert: Wenn eine Gateway-Instanz ausfällt, übernimmt eine andere Gateway-Instanz und Ihre Kunden erleben keinen Ausfall, selbst wenn eine Cloud ausfällt.
API Connectivity Manager ist eine Cloud-native, laufzeitagnostische Lösung zum Bereitstellen, Verwalten und Sichern von APIs. Über eine einzige Oberfläche können Sie alle Ihre API-Vorgänge für NGINX Plus-API-Gateways und Entwicklerportale verwalten, die in öffentlichen Clouds, vor Ort und in Edge-Umgebungen bereitgestellt werden. Dadurch erhalten Ihre Platform-Ops-Teams vollständige Transparenz über den API-Verkehr und können problemlos für jede Umgebung einheitliche Governance- und Sicherheitsrichtlinien anwenden.
Wie in der Einleitung erwähnt, konfigurieren wir in diesem Tutorial den API Connectivity Manager für die Hochverfügbarkeit von Diensten, die in mehreren Bereitstellungsumgebungen ausgeführt werden. Konkret setzen wir NGINX Plus als API-Gateway ein, das den Datenverkehr an zwei Dienste weiterleitet, Dienst A und Dienst B , die in zwei öffentlichen Clouds ausgeführt werden, Google Cloud Platform (GCP) und Amazon Web Services (AWS). (Das Setup gilt gleichermaßen für jede beliebige Mischung aus Bereitstellungsumgebungen, einschließlich Microsoft Azure und lokalen Rechenzentren.)
Abbildung 1 zeigt die im Lernprogramm verwendete Topologie.
Befolgen Sie die Schritte in diesen Abschnitten, um das Tutorial abzuschließen:
Wählen Sie die Umgebungen aus, aus denen Ihre Multi-Cloud- oder Hybrid-Infrastruktur besteht. Für das Tutorial haben wir AWS und GCP ausgewählt und installieren in jeder Cloud eine NGINX Plus-Instanz. Führen Sie in jeder Umgebung diese Schritte auf jedem Data‑Plane‑Host aus, der als API‑Gateway fungieren soll:
Fügen Sie die folgenden Anweisungen im Hauptkontext (oberste Ebene) in /etc/nginx/nginx.conf hinzu:
lade_Modulmodule/ngx_http_js_module.so;lade_Modulmodule/ngx_stream_js_module.so;
Starten Sie NGINX Plus neu, beispielsweise indem Sie diesen Befehl ausführen:
$ nginx -s neu laden
Sie können im API Connectivity Manager mehrere Infrastrukturarbeitsbereiche erstellen (zum Zeitpunkt des Schreibens bis zu 10). Mit getrennten Arbeitsbereichen können Sie Richtlinien und Authentifizierungs-/Autorisierungsanforderungen anwenden, die für verschiedene Geschäftsbereiche, Entwicklerteams, externe Partner, Clouds usw. spezifisch sind.
Erstellen Sie in der GUI des API Connectivity Managers einen neuen Arbeitsbereich:
Klicken Sie auf die Schaltfläche + Erstellen , um einen neuen Arbeitsbereich zu erstellen, wie in Abbildung 2 dargestellt.
Füllen Sie im sich öffnenden Fenster „Arbeitsbereich erstellen“ das Feld „Name“ aus ( Demo in Abbildung 3). Füllen Sie optional das Feld „Beschreibung“ und die Felder im Abschnitt „Workspace-Kontaktinformationen“ aus. Der Infrastrukturadministrator (z. B. Ihr Platform Ops-Team) kann die Kontaktinformationen verwenden, um den Benutzern des Arbeitsbereichs Status- oder Problemaktualisierungen bereitzustellen.
Im API Connectivity Manager ist eine Umgebung eine logische Gruppierung dedizierter Ressourcen (wie API-Gateways oder API-Entwicklerportale). Sie können pro Arbeitsbereich mehrere Umgebungen erstellen (zum Zeitpunkt des Schreibens bis zu 25). Diese entsprechen normalerweise verschiedenen Phasen der App-Entwicklung und -Bereitstellung, z. B. Codierung, Test und Produktion, können jedoch jedem beliebigen Zweck dienen.
Innerhalb einer Umgebung ist ein API-Gateway-Cluster eine logische Gruppierung von NGINX Plus-Instanzen, die als API-Gateways fungieren. Eine einzelne Umgebung kann mehrere API-Gateway-Cluster haben, die denselben Hostnamen verwenden (z. B. api.nginx.com , wie in diesem Tutorial). Die NGINX Plus-Instanzen in einem API Gateway-Cluster können sich in mehr als einem Infrastrukturtyp befinden, beispielsweise in mehreren Clouds.
Es gibt zwei Möglichkeiten, eine Umgebung im API Connectivity Manager für die Aktiv-Aktiv-Hochverfügbarkeit von API-Gateways zu konfigurieren:
Der Hauptgrund für die Bereitstellung mehrerer API Gateway-Cluster besteht darin, dass Sie auf jeden Cluster einen anderen Satz von Sicherheitsrichtlinien anwenden können.
Beim Bereitstellen von NGINX Plus-Instanzen als API-Gateways haben wir zwei NGINX Plus-Instanzen bereitgestellt – eine in AWS und die andere in GCP. Das Tutorial verwendet dieselben Instanzen, um beide Umgebungstypen zu veranschaulichen (mit einem einzelnen API-Gateway-Cluster oder mit mehreren API-Gateway-Clustern). Wenn Sie beide Umgebungstypen in einem einzelnen Arbeitsbereich bereitstellen möchten, müssen Sie zusätzliche NGINX Plus-Instanzen für die zweite Umgebung erstellen.
Für eine Umgebung mit einem API-Gateway-Cluster gelten für alle NGINX Plus API-Gateway-Instanzen dieselben Sicherheitsrichtlinien, wie in Abbildung 4 dargestellt.
Navigieren Sie zu Ihrem Arbeitsbereich und klicken Sie auf die Schaltfläche „Umgebung erstellen“ , wie in Abbildung 5 gezeigt.
Füllen Sie im daraufhin geöffneten Fenster „Umgebung erstellen“ das Feld „Name“ ( prod in Abbildung 6) und optional das Feld „Beschreibung“ aus und wählen Sie den Umgebungstyp aus (hier wählen wir „Prod“ ).
Klicken Sie auf die Schaltfläche Erstellen .
Das Fenster „Umgebung erstellt“ wird geöffnet und zeigt den Befehl an, den Sie auf jeder NGINX Plus-Instanz ausführen müssen, um sie dem API Gateway-Cluster zuzuweisen. Der Einfachheit halber zeigen wir die Befehle unten in Schritt 7 .
Wiederholen Sie dies auf jeder NGINX Plus-Instanz:
SSH
, um eine Verbindung mit der Instanz herzustellen und sich anzumelden.Wenn der NGINX-Agent bereits ausgeführt wird, stoppen Sie ihn:
$ systemctl stop nginx-agent
Führen Sie den Befehl Ihrer Wahl (entweder curl
oder wget
) aus, um das NGINX-Agent-Paket herunterzuladen und zu installieren:
Wenn Sie mTLS unter „Installieren und Konfigurieren des API Connectivity Manager“ nicht aktiviert haben, fügen Sie Folgendes hinzu:
-k
für den curl
-Befehl--no-check-certificate
für den Befehl wget
<NMS_FQDN>
, ersetzen Sie die IP-Adresse oder den vollqualifizierten Domänennamen Ihres NGINX Management Suite-Servers.<Clustername>
, ersetzen Sie den Namen des API Gateway-Clusters (API-Cluster
in diesem Tutorial).$ locken [-k] https://<NMS_FQDN>/install/nginx-agent > install.sh und sudo sh -install.sh -g <Clustername> && sudo systemctl starte nginx-agent
oder
$ wget [--no-check-certificate] https://<NMS_FQDN>/install/nginx-agent --no-check-certificate -O install.sh und sudo sh install.sh -g <Clustername> && sudo systemctl starte nginx-agent
Die NGINX Plus-Instanzen werden jetzt im Abschnitt „Instanzen“ des Clusterfensters für den API-Cluster angezeigt, wie in Abbildung 7 dargestellt.
Für eine Umgebung mit mehreren API-Gateway-Clustern können für verschiedene NGINX Plus API-Gateway-Instanzen unterschiedliche Sicherheitsrichtlinien gelten, wie in Abbildung 8 dargestellt.
Navigieren Sie zu Ihrem Arbeitsbereich und klicken Sie auf die Schaltfläche „Umgebung erstellen“ , wie in Abbildung 9 gezeigt.
Füllen Sie im sich öffnenden Fenster „Umgebung erstellen“ das Feld „Name“ ( prod in Abbildung 10) und optional das Feld „Beschreibung“ aus und wählen Sie den Umgebungstyp aus (hier wählen wir „Prod“ ).
Klicken Sie auf die Schaltfläche Erstellen .
Das Fenster „Umgebung erstellt“ wird geöffnet und zeigt den Befehl an, den Sie auf jeder NGINX Plus-Instanz ausführen müssen, um sie dem API Gateway-Cluster zuzuweisen. Der Einfachheit halber zeigen wir die Befehle unten in Schritt 10 .
Navigieren Sie zurück zur Registerkarte „Umgebung“ und klicken Sie auf die Schaltfläche „+ Hinzufügen“ in der oberen rechten Ecke des Abschnitts „API Gateway-Cluster“ , wie in Abbildung 11 dargestellt.
Füllen Sie im Fenster „API-Gateway-Cluster erstellen“ das Feld „Name“ mit dem Namen des zweiten Clusters ( gcp-cluster in Abbildung 12) und das Feld „Hostname“ mit demselben Hostnamen wie für den ersten Cluster ( api.nginx.com ) aus.
Die beiden API-Gateway-Cluster werden jetzt in den API-Gateway-Clustern für die Produktionsumgebung angezeigt, wie in Abbildung 13 dargestellt.
Wiederholen Sie dies auf jeder NGINX Plus-Instanz:
SSH
, um eine Verbindung mit der Instanz herzustellen und sich anzumelden.Wenn der NGINX-Agent bereits ausgeführt wird, stoppen Sie ihn:
$ systemctl stop nginx-agent
Führen Sie den Befehl Ihrer Wahl (entweder curl
oder wget
) aus, um das NGINX-Agent-Paket herunterzuladen und zu installieren:
Wenn Sie mTLS unter „Installieren und Konfigurieren des API Connectivity Manager“ nicht aktiviert haben, fügen Sie Folgendes hinzu:
-k
für den curl
-Befehl--no-check-certificate
für den Befehl wget
<NMS_FQDN>
, ersetzen Sie die IP-Adresse oder den vollqualifizierten Domänennamen Ihres NGINX Management Suite-Servers.<Clustername>
, ersetzen Sie den Namen des entsprechenden API Gateway-Clusters (in diesem Tutorial aws‑cluster
für die in AWS bereitgestellte Instanz und gcp‑cluster
für die in GCP bereitgestellte Instanz).$ locken [-k] https://<NMS_FQDN>/install/nginx-agent > install.sh und sudo sh -install.sh -g <Clustername> && sudo systemctl starte nginx-agent
oder
$ wget [--no-check-certificate] https://<NMS_FQDN>/install/nginx-agent --no-check-certificate -O install.sh und sudo sh install.sh -g <Clustername> && sudo systemctl starte nginx-agent
Die entsprechende NGINX Plus-Instanz wird jetzt im Abschnitt „Instanzen“ der Cluster- Fenster für aws-cluster (Abbildung 14) und gcp-cluster (Abbildung 15) angezeigt.
Jetzt können Sie globale Richtlinien hinzufügen, die für alle NGINX Plus-Instanzen in einem API Gateway-Cluster gelten. Um beispielsweise den Clientzugriff auf Ihre APIs zu sichern, können Sie die OpenID Connect Relying Party- oder TLS Inbound -Richtlinie anwenden. Um die Verbindung zwischen einem API-Gateway und dem Backend-Dienst, der die API bereitstellt, zu sichern, wenden Sie die TLS-Backend -Richtlinie an. Weitere Informationen zu TLS-Richtlinien finden Sie in der API Connectivity Manager-Dokumentation .
Navigieren Sie zur Registerkarte „Cluster“ für das API-Gateway, auf das Sie eine Richtlinie anwenden möchten ( API-Cluster in Abbildung 16). Klicken Sie auf die Schaltfläche „Verwalten“ über der rechten Ecke der Richtlinientabelle .
Klicken Sie in der linken Navigationsspalte auf „Globale Richtlinien“ und dann auf das Symbol … in der äußersten rechten Spalte der Zeile für die Richtlinie ( TLS-Backend in Abbildung 17). Wählen Sie „+ Richtlinie hinzufügen“ aus dem Dropdownmenü aus.
Die Verwaltung von Multi-Cloud- und Hybridarchitekturen ist keine leichte Aufgabe. Es handelt sich dabei um komplexe Umgebungen mit sich schnell ändernden Anwendungen, die oft schwer zu überwachen und zu sichern sind.
Mit den richtigen Tools können Sie jedoch die Abhängigkeit von einem Anbieter vermeiden und gleichzeitig die Agilität und Flexibilität bewahren, die Sie benötigen, um neue Funktionen schneller auf den Markt zu bringen. Als Cloud-natives Tool bietet Ihnen der API Connectivity Manager von NGINX die Skalierbarkeit, Sichtbarkeit, Governance und Sicherheit, die Sie zum Verwalten von APIs in Multi-Cloud- und Hybridumgebungen benötigen.
Starten Sie eine 30-tägige kostenlose Testversion der NGINX Management Suite , die Zugriff auf API Connectivity Manager , NGINX Plus als API-Gateway und NGINX App Protect zum Sichern Ihrer APIs umfasst.
„Dieser Blogbeitrag kann auf Produkte verweisen, die nicht mehr verfügbar und/oder nicht mehr unterstützt werden. Die aktuellsten Informationen zu verfügbaren F5 NGINX-Produkten und -Lösungen finden Sie in unserer NGINX-Produktfamilie . NGINX ist jetzt Teil von F5. Alle vorherigen NGINX.com-Links werden auf ähnliche NGINX-Inhalte auf F5.com umgeleitet."