Das self-hosted Gateway besitzt lokale Funktionalitäten, die nicht „out of the box“ funktionieren. Hierzu zählen das Caching, lokale Metriken sowie lokale Backups der Konfigurationen, die das self-hosted aus der Azure API Management Instanz bezieht.
Das lokale Caching ermöglicht das Zwischenspeichern von Daten aus den APIs, die oft aufgerufen werden, um schnellere Datenabrufzeiten zu erreichen. Das Caching kann somit bereits abgerufene oder berechnete Daten effizient wiederverwenden. Die Verwendung von lokalen Metriken ermöglicht eine lückenlose Aufzeichnung von Statistiken über z.B. Zugriffsdauer auf APIs, selbst wenn die Azure APIM Instanz temporär nicht erreichbar ist. Während eines Ausfalls der Azure APIM Instanz ist auch das self-hosted Gateway nicht in der Lage, gestartet zu werden, weil es seine Konfiguration von der Azure APIM Instanz bezieht. Wird die lokale Backup-Funktionalität ermöglicht, wird die Konfiguration lokal gespeichert und im Falle eines Ausfalls der Cloud-Komponente herangezogen, um das self-hosted Gateway zu starten. Diese Zusatz-Funktionalitäten ermöglichen dem self-hosted Gateway somit ein effizienteres und gegen Cloud-Ausfälle beständigeres Arbeiten.
Wird für die Bereitstellung des self-hosted Gateway wie von Microsoft empfohlen Kubernetes verwendet, können die lokalen Funktionalitäten wie folgt aktiviert werden.
Caching
Um die Zwischenspeicherung von Daten, die wiederholt abgerufen werden, zu ermöglichen, muss ein externer Cache bereitgestellt werden. Der Cache sollte sich ebenfalls in derselben Umgebung wie das self-hosted Gateway befinden, um ein effizientes Look up der Daten zu ermöglichen. Hierfür wird mittels einer yaml Datei ein Container mit einem Redis Image im Kubernetes Cluster sowie der dazugehörige Service bereitgestellt.
Im Azure Portal kann der APIM Instanz der externe Cache mittels eines Verbindungszeichenfolge hinzugefügt werden. Die dazugehörige Verbindungszeichenfolge setzt sich aus dem Servicenamen, dem Namespace und dem Cluster zusammen: redis-leader.default.svc.cluster.local:6379
Das Zwischenspeichern kann durch die Caching Policy in den einzelnen APIs aktiviert werden.
Lokale Metriken
Die Bereitstellung von lokalen Metriken erfordert die Verwendung von StatsD, einem Hintergrundprozess für das Sammeln und zur Verfügung stellen von Statistiken. Diese Statistiken werden mittels Prometheus überwacht und dem Benutzer dargestellt. Über eine yaml Datei können ein StatsD Exporter und Prometheus, sowie die nötigen Services bereitgestellt werden.
In der yaml Datei, welche für die Bereitstellung des Self hosted Gateways verwendet wurde, kann durch die folgende Ergänzung in der ConfigMap das Senden der Metriken durch StatsD gestartet werden.
Nach einem Redeployment des Self hosted Gateways können unter der Externen IP und Ports des Prometheus Services die folgenden Metriken betrachtet werden.
Lokale Backups
Das lokale Backup der Konfigurationsdatei, ermöglicht das Starten des Self hosted Gateways, selbst wenn die Azure Cloud nicht in Betrieb ist. Statt die Konfigurationsdatei aus der Azure APIM Instanz zu beziehen, greift das Self hosted Gateway auf die lokale Konfigurationsdatei zurück. Ist die Azure APIM Instanz allerdings erreichbar wird immer die Konfigurationsdatei aus der Cloud bevorzugt.
Für das Speichern der Konfigurationsdatei muss dem Self hosted Gateway in Kubernetes ein Speichervolumen und ein VolumeClaim zugewiesen werden.
Das self-hosted Gateway bringt wie bereits erwähnt einige Vorteile mit sich. Mit grundlegenden Kubernetes Kenntnissen kann es um nützliche Funktionen ergänzt werden.
Dieser quiTeq-Tipp kommt aus Stuttgart.