Dieser Artikel ist Teil einer Reihe über API Management in der weitere Open Source und kommerzielle Lösungen vorgestellt werden.
Lese auch die API Management Einführung
Von: Thomas Bayer
Datum: 9. Mai 2018
Aktualisiert: 19. März 2019
Tyk ist ein in der Programmiersprache Go geschriebenes Open Source API Gateway mit einer kommerziellen API Management Plattform. Die Lösung beinhaltet ein Gateway, ein Dashboard, ein Developer Portal sowie Auswertungen zur API Nutzung.
Die Funktionen von Tyk sind auf das Gateway und das Dashboard verteilt. Das Dashboard beinhaltet den Endpoint Designer, Analytics und das Developer Portal.
Mit dem Endpoint Designer des Dashboards kann ein Endpunkt angelegt und dessen Verhalten konfiguriert werden. Ein Endpunkt ist die Kombination aus Methode und Pfad. Die Abbildung unten zeigt den Designer mit einer Reihe von Endpunkten.
Abbildung 1:
Über Plugins können u.a. die folgenden Funktionen einem Endpunkt zugeordnet werden:
Die folgende Abbildung zeigt wie eine Validierung mit JSON Schema im Designer konfiguriert werden kann:
Abbildung 2:
Über eine Export-Funktion kann die Konfiguration eines APIs mit allen Einstellungen zu den Endpunkten als JSON Datei exportiert werden. Die einzelnen Konfigurationseinstellungen sind so nicht in dutzenden Formularen vergraben und können als Datei z.B. in einem Source Code Management System wie z.B. git verwaltet werden.
Für APIs kann eine Swagger/Open API Dokumentation hinterlegt werden, die im Katalog sichtbar ist. Leider wird die Dokumentation nicht im Endpoint Designer verwendet. Möchte man zum Beispiel eine Transformation oder einen Circuit Breaker im Endpoint Designer einrichten, so muss dort Methode und Pfad nochmals eingerichtet werden, obwohl dies bereits im Swagger Dokument beschrieben ist.
JSON und XML Nachrichten können mit golang Templates transformatiert werden. Im API Designer können die Transformationen konfiguriert und getestet werden. In der Abbildung unten sieht man links eine Testnachricht, die mit dem Template in der Mitte in den Output rechts umgewandelt wird.
Abbildung 3:
Eine weitere Möglichkeit Nachrichten zu transformieren sind eigene Middleware Komponenten, die in den Request- und Responseflow eingeklinkt werden können.
Tyk besitzt einen einfachen Katalog, der mit eigenen Seiten, Menus, Styles und HTML Templates gestaltet werden kann. Der Screenshot unten zeigt einen Eintrag für ein API im Katalog.
Abbildung 4:
Für ein API kann auch eine Swagger bzw. Open API Dokumentation hinterlegt werden. Wie die Abbildung unten zeigt, wurde der Inhalt einfach übernommen und mit der Swagger UI dargestellt. Die Endpunktadresse wurde nicht auf das Gateway umgestellt. Tyk kann auch keine Swagger Dokumentation aus den Beschreibungen der Endpunkte generieren.
Abbildung 5:
Nach der Auswahl eines APIs kann eine Subscription angelegt werden. Je nach Authentifizierung bekommt der Client Entwickler einen API Key, ein JSON Web Token (JWT) oder andere Credentials übergeben.
Abbildung 6:
Die Tyk Gateways schreiben Analytics Daten in eine Redis Datenbank, von dort werden sie über einen Pump Service in eine MongoDB übertragen. Das Dashboard kann dann die Daten der MongoDB visualisieren.
Abbildung 7:
Über Fehler gibt es ebenfalls Statistiken.
Abbildung 8:
Im Log Browser können alle Nachrichten, die durch die API Gateways verarbeitet wurden eingesehen werden. Bis im Log Browser eine Nachricht erscheint, können 2 bis 3 Minuten vergehen.
Abbildung 9:
Tyk Pump kann die Analysedaten neben der MongoDB auch anderen Systemen zur Verfügung stellen. Dazu gehören:
Tyk kann in der Cloud oder on-premise im eigenen Unternehmen installiert werden. Eine hybride Installation ist ebenfalls möglich.
Das Aufsetzen einer Tyk Instanz in der Cloud des Hersteller ist in zwei Minuten erledigt. Nach der Angabe von Username und Passwort steht eine Instanz dem Anwender zur Verfügung. Da die Angabe einer Kreditkarte nicht erforderlich ist, empfiehlt sich mit einer Cloud Installation erst mal die Funktionen von Tyk zu erkunden. Der kostenlose Tarif limitiert die Anzahl der Aufrufe pro Tag.
Für die on-premise Installation stehen die folgenden Optionen zur Verfügung:
Eine lokale Installation mit Docker gestalte sich aufwendig und zeitintensiv. Zunächst ist die Dokumentation zur Installation über die Webseite und github verteilt. Es gibt zur Installation verschiedene Quickstarts und Demos. Nach mehreren erfolglosen Installationsversuchen mußte ich feststellen, dass meine Dokumentation veraltet ist. Schließlich gelang mir die Docker Installation. Dazu mußte eine Redis und eine Mongo NoSQL Datenbank installiert, eine Konfiguration angepasst und in der /etc/hosts Datei Einträge vorgenommen werden. Danach wird ein Bootstrap Skript ausgeführt, das dem Dashboard initiale Benutzer hinzufügt. Dieses Skript findet man in einem separaten github Repository. Als letzte Hürde muss ein Lizenzkey angefordert und eingetragen werden.
Update (18. März 2019):
Der Hersteller tyk.io hat sich gemeldet und die Komplexität der Installation zurückgewiesen. Für eine unkomplizierte Installation gibt es eine Docker Compose Konfiguration. Mit dieser war ich tatsächlich in der Lage in 15 Minuten eine komplette Installation mit Gateway, Dashboard und MongoDB aufzusetzen. Die Installation ist laut tyk.io nicht für die Produktion oder Lasttests geeignet. Die Modification der Host-Datei, die Eingabe eines Lizenzschlüssels und das Ausführen eines Setup-Skriptes sind dennoch notwendig. Der Hersteller arbeitet momentan daran, den Benutzer bei der Installation besser zu unterstützen.
Für die Absicherung eines API stehen die folgenden Verfahren zur Authentifikation zur Verfügung:
Die Zugriffsrechte auf das Tyk Dashboard lassen sich feingranular einstellen. Beispielsweise kann der Zugriff auf die Analytics Funktion eingeschränkt werden.
Der Tyk Identitiy Provider ist ein separates Projekt, welches für die Token basierte Authentifizierung von Requests gegen die API Gateway Komponenten verwendet werden kann. Der Identity Provider kann dafür auf andere Identity Management Systeme wie LDAP oder OAuth2 zugreifen.
Mit Plugins kann Tyk erweitert werden. Für die Entwicklung der Plugins steht jede Sprache die Google RPC unterstützt wie z.B. JavaScript, Ruby oder Python zur Verfügung. Für das Produkt gibt es eine Handvoll Plugins vom Tyk Team und von Benutzern aus der Community. Es gibt u.a. Plugins für: Bot Detection, Queuing und CorrelationIDs.
Die Oberfläche des Dashboards ist mit ausführlichen Erklärungstexten versehen, die es ermöglichen Aufgaben wie z.B. das Einrichten eines Endpunktes ohne einen Blick in die Dokumentation durchzuführen.
Abbildung 10:
Neben dem limitierten kostenlosen Plan gibt es ab 450 US Dollar pro Monat weitere Tarife. Beispielsweise 1 Million API Calls pro Tag für 600 Dollar.
Beim tyk Produkt sollte man zunächst den Verwendungszweck mit der Lizenz abgleichen. Das API Gateway und die Pumpe für Analysedaten sind bei der Lösung von tyk Open Source. Eine kommerzielle Nutzung dieser Komponenten ist kostenlos möglich. Das Dashboard sowie das Developer Portal sind Closed Source und nur kostenpflichtig für kommerzielle Anwendungen nutzbar. Privatpersonen oder gemeinnützige Vereine können Dashboard und Developer Portal kostenlos nutzen.
Mit 4275 Sternen ( Stand 19.3.2019) ist das Gateway von tyk recht beliebt. Es steht unter der Open Source MPL 2 Lizenz und kann auch ohne das Dashboard über ein API angesprochen werden.
Das Dashboard ist komfortabel und bietet vielfältige Einstellungsmöglichkeiten. Über Policies läßt sich der Zugriff auf APIs feingranular und individuell einstellen.
Tyk bietet umfangreiche Security-Funktionen nicht nur für die Absicherung von APIs. Beispielsweise läßt sich der Zugriff auf das Dashboard über den Identity Broker mit einem LDAP Server verwalten.
Positiv ist der Kontakt bei Supportanfragen, die teilweise vom Tyk Gründer selbst beantwortet werden.
Dieser Artikel beschreibt Tyk Gateway v2.7.6 und Tyk Dashboard v1.7.5.
Dieser Artikel ist Teil einer Reihe über API Management in der weitere Open Source und kommerzielle Lösungen vorgestellt werden.
Lese auch die API Management Einführung