API Umbrella

Von: Thomas Bayer
Datum: 21. Juni 2018
Aktualisiert: 27. Jan. 2019

API Umbrella wird vom National Renewable Energy Laboratory, einer Organisation der US Regierung in Golden Colorado entwickelt. Die schlanke API Management Lösung bietet eine Web Konsole für die Konfiguration mit Analytics Modul, ein API für die Administration und ein einfaches Developer Portal.

1 Installation

Für die Linux Distributionen Debian, RHEL und Ubuntu gibt es Packages für die Installation. Für den Betrieb in der Cloud oder auf anderen Betriebssystemen gibt es ein Docker Image. In nicht mehr als 10 Minuten kann eine einfache Installation durchgeführt werden.

2 Komponenten

API Umbrella besteht aus den folgenden Komponenten:

  • Eine Mongo Datenbank für die Konfiguration
  • Elasticsearch Database Engine für Logging und Analytics
  • Einem reverse Proxy auf der Basis von NGINX
  • Einer Web Oberfläche für die Administration
  • Einem API für die Admin-Funktionen (Ist in die Web UI integriert)

Aus mindestens 3 Knoten kann ein Cluster mit Failover Funktion aufgebaut werden. Die Ausfallsicherheit wird über einen MongoDB Cluster realisiert.

2.1 API Gateway

Die API Gateways Komponente von API Umbrella basiert auf dem NGINX Web Server und der OpenResty® Web Plattform.

Ein Cache kann den Zugriff auf APIs effizient bedienen. Realisiert wird der Cache des API Umbrella mit dem Apache Traffic Server™.

2.2 Management Konsole

Ein API verwaltet im Umbrella immer ein Backend, welches mehrere Pfade umfassen kann. Für ein API lassen sich globale Einstellungen treffen, die dann für jeden Pfad wieder verfeinert werden können. Der nächste Screenshot zeigt die Konfiguration für ein API das den Zugriff auf ein Backend mit der Adresse api.predic8.de dekoriert. Anfragen an die Adresse localhost/shop/ werden an das Backend weitergeleitet.


Abbildung 1: API Editor mit Einstellungen für POST Anfragen an /shop/vendors/

Neben den globalen Einstellungen eines APIs können für einzelne Pfade und HTTP Methoden individulle Einstellungen vorgenommen werden. Der Screenshot unten zeigt Einstellungen für POST Aufrufe an den Pfad /shop/vendors/. Für einen Aufruf ist ein API Key notwendig.


Abbildung 2: Path Editor

Änderungen der Konfiguration eines APIs werden in einigen API Management Lösungen nicht sofort auf den API Gateways wirksam. Die Änderungen werden zunächst in der Datenbank des Management Systems hinterlegt. Erst nachdem der Benutzer die Änderungen veröffentlicht, werden diese an die API Gateways übertragen und wirksam. Bei API Umbrella ist dies auch der Fall. Im Gegensatz zu anderen Tools, zeigt API Umbrella alle APIs an, die von einer Änderung betroffen sind. Der Benutzer kann entscheiden, welche APIs geändert werden und welche erst mal keine Änderungen erfahren. API Umbrella kann sogar die Unterschiede zur alten Konfiguration anzeigen. Im Screenshot unten sieht man, dass der Backend-Prefix von "/" auf "/store/" geändert wurde.


Abbildung 3: API Umbrella Publish Changes

Die Berechtigungen für die APIs können über Rollen festgelegt werden. API Umbrella ist hier einfacher und etwas limitierter als andere Produkte.

Der Zugriff auf die Funktionen der Adminkonsole und des Admin APIs können feingranular festgelegt werden. So kann ein Administrator APIs verwalten und ein anderer Benutzer die Analyse Funktion nutzen.

2.3 Analytics

Die API Gateways loggen jeden API Zugriff zunächst in den Rsyslog des Linux Systems. Von dort werden die Logs in die Elasticsearch Datenbank abgezogen. Die Analytics Oberfläche im der Management Konsole greift dann auf Elasticsearch zu.


Abbildung 4: Analytics der Logs

Mit der UI können einfache Filter zum Eingrenzen der in der Analyse berücksichtigten Requests erstellt werden. Poweruser können auch Lucene Filter verwenden, die direkt von der Elasticsearch DB ausgewertet werden.

2.4 API Catalogue

Der API Katalog ist sicher das schwächste Feature von API Umbrella. Momentan werden nur statische Seiten angezeigt, die auf ein Formular zur Registation verweisen. Nach der Registrierung bekommt der Benutzer einen API Key für alle APIs, für die er berechtigt ist. Im Gegensatz zu anderen Produkten bekommt ein Benutzer nur einen API Key für alle APIs. Bei anderen Produkten verwalteten die Benutzer mit einem Developer Account mehrere Applikationen, die jeweils einen API besitzen und den Zugriff auf mehrere APIs zusammenfassen.

3 Documentation

Die Installation und die ersten Schritte sind in der Dokumentation kompakt, übersichtlich und gut verständlich beschrieben. Für speziellere Themen wie z.B. Analytics gibt es momentan noch Lücken in der Dokumentation. Die Bedienung von API Umbrella ist aber so übersichtlich, dass man für diese Funktionen auch ohne eine Dokumentation gut zurecht kommt.

4 Fazit

Die Stärken von API Umbrella liegen in der liberalen Lizenz, die selbst eine kostenlose kommerzielle Nutzung ermöglicht sowie in der schlanken Architektur. Die Ablage der Analyse Daten in Elasticsearch ermöglich trotz der einfachen Lösungen komplexe Auswertungen.

Vorteile

  • Echtes Open Source ohne Einschränkungen in der kommerzielle Nutzung.
  • Konfigurationsänderungen können vor dem Wirksamwerden eingesehen werden.
  • Diff-Anzeige für Änderungen
  • Übersichtliche schlanke Lösung
  • Für die Authentifikation des Developer Portals und des Admin Bereiches können externe Login Provider wie Google, Facebook oder LDAP verwendet werden.
  • Einfache Konfiguration und Installation

Nachteile

  • Geringer Funktionsumfang
  • Praktisch nicht vorhandener API Catalogue
API Umbrella Key Features
  • Einfache Installation
  • Anzeige von Konfigurationsänderungen
  • Clustering und Failover
  • Schlanke Architektur
Weitere Produkte

Dieser Artikel ist Teil einer Reihe über API Management in der Open Source und kommerzielle Lösungen vorgestellt werden.

Lese auch die API Management Einführung