Anti-Pattern: Edge-Ressourcen ohne Versionsverwaltung verwalten

Sie sehen sich die Dokumentation zu Apigee Edge an.
Sehen Sie sich die Apigee X-Dokumentation an.
info

Apigee Edge bietet viele verschiedene Arten von Ressourcen. Jeder davon dient einem anderen Zweck. Bestimmte Ressourcen können nur von Nutzern mit den erforderlichen Rollen und Berechtigungen über die Edge-Benutzeroberfläche, Verwaltungs-APIs oder Tools, die Verwaltungs-APIs verwenden, konfiguriert werden (d.h. erstellt, aktualisiert und/oder gelöscht). Beispiel: Nur Organisationsadministratoren, die zu einer bestimmten Organisation gehören, können diese Ressourcen konfigurieren. Das bedeutet, dass diese Ressourcen nicht von Endnutzern über Entwicklerportale oder auf irgendeine andere Weise konfiguriert werden können. Zu solchen Ressourcen gehören:

  • API-Proxys
  • Freigegebene Abläufe
  • API-Produkte
  • Caches
  • KVMs
  • Schlüsselspeicher und Truststores
  • Virtuelle Hosts
  • Zielserver
  • Ressourcendateien

Während diese Ressourcen eingeschränkten Zugriff haben, sollten sie, sofern sie von den autorisierten Nutzern geändert wurden, von den neuen Daten überschrieben werden. Das liegt daran, dass diese Ressourcen nur in ihrem aktuellen Status in Apigee Edge gespeichert werden. Die wichtigsten Ausnahmen von dieser Regel sind API-Proxys und freigegebene Abläufe.

API-Proxies und freigegebene Abläufe unter der Revisionskontrolle

API-Proxys und freigegebene Abläufe werden unter Einsatz von Revisionen verwaltet (also erstellt, aktualisiert und bereitgestellt). Revisionen werden fortlaufend nummeriert, sodass Sie Änderungen hinzufügen und dann als neue Revision speichern können. Um eine Änderungen zurückzunehmen, stellen Sie eine vorherige Revision des API-Proxys/freigegebenen Ablaufs bereit. Es kann immer nur eine Revision eines API-Proxy-/gemeinsamen Ablaufs in einer Umgebung bereitgestellt werden, außer, die Revisionen haben abweichende Basispfade.

API-Proxys und freigegebene Abläufe werden zwar über Revisionen verwaltet, wird aber eine bestehende Revision verändert, so gibt es keine Möglichkeit eines Rollbacks, da frühere Änderungen einfach überschrieben werden.

Audits und Verlauf

Apigee Edge bietet die Funktionen Audits und API-, Produkt- und Organisationsverlauf, die bei der Fehlerbehebung hilfreich sein können. Mit diesen Funktionen können Sie spezifische Informationen einsehen, beispielsweise wer bestimmte Vorgänge (Erstellen, Lesen, Aktualisieren, Löschen, Bereitstellen und Aufheben der Bereitstellung) wann für die Edge-Ressourcen ausführen ließ. Wurden aber Aktualisierungs- oder Löschvorgänge an einer der Edge-Ressourcen durchgeführt, so können Audits ältere Daten nicht bereitstellen.

Anti-Pattern

Direkte Verwaltung der Edge-Ressourcen (oben aufgeführt) über die Edge-Benutzeroberfläche oder Verwaltungs-APIs, ohne Verwendung des Versionskontrollsystems

Es wird oft fälschlicherweise angenommen, dass Apigee Edge Ressourcen nach Änderungen oder Löschungen auf ihren vorherigen Status zurücksetzen kann. Edge Cloud bietet das Zurücksetzen von Ressourcen auf ihren vorherigen Zustand jedoch nicht an. Daher ist der Nutzer dafür verantwortlich, dass alle Daten im Zusammenhang mit Edge-Ressourcen per SCM (Quellkontroll-Management) verwaltet werden, damit alte Daten schnell wiederhergestellt werden können, wenn sie versehentlich gelöscht wurden oder ein Rollback nötig wird. Dies ist insbesondere in Produktionsumgebungen wichtig, in denen diese Daten für den Laufzeit-Traffic erforderlich sind.

Wir erklären dies anhand einiger Beispiele und sehen uns an, was passieren könnte, würden nicht über ein Quellkontrollsystem verwaltete Daten bewusst oder unwissentlich geändert:

Beispiel 1: Löschen oder ändern eines API-Proxy

Wenn ein API-Proxy gelöscht oder eine Änderung an einer bestehenden Revision bereitgestellt wird, kann der vorherige Code nicht wiederhergestellt werden. Enthält der API-Proxy Java-, JavaScript-, Node.js- oder Python-Code, der nicht über ein SCM-System (Source Control Management) außerhalb von Apigee verwaltet wird, kann dies zu einem erheblichen Verlust an Entwicklungsarbeit führen.

Beispiel 2: Bestimmung der API-Proxys mithilfe bestimmter virtueller Hosts

Ein Zertifikat auf einem virtuellen Host läuft ab und der virtuelle Host muss aktualisiert werden. Die Ermittlung, welche API-Proxys den virtuellen Host zu Testzwecken verwenden, kann schwierig sein, falls viele API-Proxys vorhanden sind. Wenn die API-Proxys in einem SCM-System außerhalb von Apigee verwaltet werden, kann einfach das Repository durchsucht werden.

Beispiel 3: Löschen des Schlüsselspeicher/Truststore

Wird ein Schlüsselspeicher/Truststore, der von einem virtuellen Host oder einer Zielserverkonfiguration verwendet wird, gelöscht, so kann er nur wiederhergestellt werden, wenn die Konfigurationsdetails des Schlüsselspeichers/Truststores, einschließlich Zertifikate und/oder privater Schlüssel im SCM gespeichert sind.

Auswirkungen

  • Wird eine Edge-Ressource gelöscht, können die Ressource und deren Inhalte nicht von Apigee Edge wiederhergestellt werden.
  • API-Anfragen können aufgrund unerwarteter Fehler fehlschlagen, bis die Ressource wieder in den vorherigen Zustand zurückgesetzt wird.
  • Es ist schwierig, nach Interabhängigkeiten zwischen API-Proxys und anderen Ressourcen in Apigee Edge zu suchen.

Best Practice

  • Zur Verwaltung von API-Proxys und freigegebenen Abläufen können Sie ein beliebiges Standard-SCM mit einer CICD-Pipeline (Continuous Integration and Continuous Deployment) verwenden.
  • Verwenden Sie ein beliebiges Standard-SCM zur Verwaltung der anderen Edge-Ressourcen, darunter API-Produkte, Caches, KVMs, Zielserver, virtuelle Hosts und Schlüsselspeicher.
    • Wenn bereits Edge-Ressourcen vorhanden sind, verwenden Sie Verwaltungs-APIs, um die Konfigurationsdetails als JSON/XML-Nutzlast abzurufen und im SCM zu speichern.
    • Verwalten Sie neue Aktualisierungen dieser Ressourcen im SCM.
    • Wenn Sie neue Edge-Ressourcen erstellen oder vorhandene Edge-Ressourcen aktualisieren müssen, verwenden Sie die entsprechende im SCM gespeicherte JSON/XML-Nutzlast und aktualisieren Sie die Konfiguration in Edge mithilfe von Verwaltungs-APIs.

* Verschlüsselte KVMs können nicht im Nur-Text-Format aus der API exportiert werden. Es liegt in der Verantwortung des Nutzers, Aufzeichnungen darüber zu führen, welche Werte in verschlüsselte KVMs eingegeben werden.

Weitere Informationen