Anti-Pattern: Edge-Ressourcen ohne Versionsverwaltung verwalten

Sie sehen die Dokumentation zu Apigee Edge.
Zur Apigee X-Dokumentation
weitere Informationen

Apigee Edge bietet viele verschiedene Arten von Ressourcen, die jeweils einem anderen Zweck dienen. Bestimmte Ressourcen können nur über die Edge-Benutzeroberfläche, Management-APIs oder Tools, die Verwaltungs-APIs verwenden, und von Nutzern mit den erforderlichen Rollen und Berechtigungen konfiguriert (d.h. erstellt, aktualisiert und/oder gelöscht) werden. 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. Dies liegt daran, dass diese Ressourcen nur gemäß 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 Features Audits sowie API-, Produkt- und Organisationsverlauf, die bei der Fehlerbehebung hilfreich sein können. Mit diesen Features können Sie Informationen darüber aufrufen, wer bestimmte Vorgänge (Erstellen, Lesen, Aktualisieren, Löschen, Bereitstellen und Aufheben der Bereitstellung) ausgeführt hat und wann die Vorgänge auf den Edge-Ressourcen ausgeführt wurden. Wenn jedoch Aktualisierungs- oder Löschvorgänge für eine der Edge-Ressourcen ausgeführt werden, können die Audits keine älteren Daten bereitstellen.

Anti-Pattern

Verwalten der (oben aufgeführten) Edge-Ressourcen direkt über die Edge-Benutzeroberfläche oder Management APIs, ohne das Versionsverwaltungssystem zu verwenden

Es besteht die Annahme, dass Apigee Edge Ressourcen nach Änderungen oder Löschungen in ihrem vorherigen Zustand wiederherstellen kann. Edge Cloud bietet jedoch keine Wiederherstellung der Ressourcen in ihrem vorherigen Zustand. Daher liegt es in der Verantwortung des Benutzers, dafür zu sorgen, dass alle Daten, die sich auf Edge-Ressourcen beziehen, über die Versionsverwaltung verwaltet werden, damit alte Daten bei versehentlichem Löschen oder in Situationen, in denen Änderungen rückgängig gemacht werden müssen, schnell wiederhergestellt werden können. 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. Wenn der API-Proxy Java-, JavaScript-, Node.js- oder Python-Code enthält, der nicht in einem SCM-System (Source Control Management, SCM) außerhalb von Apigee verwaltet wird, gehen möglicherweise eine Menge Entwicklungsarbeit und Aufwand verloren.

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

  • Wenn eine der Edge-Ressourcen gelöscht wird, ist es nicht möglich, die Ressource und ihren Inhalt von Apigee Edge wiederherzustellen.
  • API-Anfragen können mit unerwarteten Fehlern fehlschlagen, die zu Ausfällen führen, bis die Ressource in ihren vorherigen Zustand zurückgesetzt wurde.
  • Es ist schwierig, nach gegenseitigen Abhängigkeiten zwischen API-Proxys und anderen Ressourcen in Apigee Edge zu suchen.

Best Practices

  • Verwenden Sie eine beliebige Standard-SCM, die mit einer CICD-Pipeline (Continuous Integration and Continuous Deployment) gekoppelt ist, um API-Proxys und freigegebene Abläufe zu verwalten.
  • Verwenden Sie ein beliebiges Standard-SCM zur Verwaltung der anderen Edge-Ressourcen, einschließlich API-Produkte, Caches, KVMs, Zielserver, virtueller Hosts und Schlüsselspeicher.
    • Wenn Edge-Ressourcen vorhanden sind, verwenden Sie Verwaltungs-APIs, um die Konfigurationsdetails für diese als JSON/XML-Nutzlast abzurufen und in der Versionsverwaltungsverwaltung zu speichern.
    • Alle neuen Aktualisierungen dieser Ressourcen können Sie in der Versionsverwaltung verwalten.
    • Wenn neue Edge-Ressourcen erstellt oder vorhandene Edge-Ressourcen aktualisiert werden müssen, verwenden Sie die entsprechende JSON/XML-Nutzlast, die in der Versionsverwaltung gespeichert ist, und aktualisieren Sie die Konfiguration in Edge mithilfe von Management-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